{"version":3,"sources":["webpack://escid.espp.showcase.service/./Content/components/common/scs-html-helper.tsx","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/bind.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/utils.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/core/AxiosError.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/null.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/toFormData.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/buildURL.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/core/InterceptorManager.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/defaults/transitional.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/platform/browser/index.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/platform/common/utils.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/platform/index.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/defaults/index.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/core/transformData.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/cancel/isCancel.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/cancel/CanceledError.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/core/settle.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/speedometer.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/throttle.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/cookies.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/combineURLs.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/core/buildFullPath.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/core/mergeConfig.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/adapters/xhr.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/composeSignals.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/trackStream.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/adapters/fetch.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/adapters/adapters.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/core/dispatchRequest.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/env/data.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/validator.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/core/Axios.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/cancel/CancelToken.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/spread.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://escid.espp.showcase.service/./node_modules/axios/lib/axios.js","webpack://escid.espp.showcase.service/./Content/components/common/Fetch.ts","webpack://escid.espp.showcase.service/./Content/components/common/threeSixtyViewDataController.ts","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/warning.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/common/Track.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/Dom/addEventListener.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/common/Steps.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/common/Marks.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/Handle.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/KeyCode.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/utils.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/common/createSlider.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/Slider.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/Range.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/raf.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/Dom/contains.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/Dom/findDOMNode.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/hooks/useMemo.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/ref.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/Dom/canUseDom.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/Portal.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/utils/alignUtil.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/isMobile.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/context.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/DomWrapper.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/hooks/useEvent.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/hooks/useLayoutEffect.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/hooks/useState.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/hooks/useMergedState.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/utils/set.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/interface.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/util/motion.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/hooks/useDomMotionEvents.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/hooks/useNextFrame.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/hooks/useStepQueue.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/hooks/useStatus.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/CSSMotion.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/util/diff.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/CSSMotionList.js","webpack://escid.espp.showcase.service/./node_modules/rc-motion/es/index.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/utils/legacyUtil.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/Popup/Mask.js","webpack://escid.espp.showcase.service/./node_modules/dom-align/dist-web/index.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/isEqual.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/es/Dom/isVisible.js","webpack://escid.espp.showcase.service/./node_modules/rc-align/es/hooks/useBuffer.js","webpack://escid.espp.showcase.service/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://escid.espp.showcase.service/./node_modules/rc-align/es/util.js","webpack://escid.espp.showcase.service/./node_modules/rc-align/es/Align.js","webpack://escid.espp.showcase.service/./node_modules/rc-align/es/index.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack://escid.espp.showcase.service/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/Popup/useVisibleStatus.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/Popup/useStretchStyle.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/Popup/PopupInner.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/Popup/MobilePopupInner.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/Popup/index.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/context.js","webpack://escid.espp.showcase.service/./node_modules/rc-trigger/es/index.js","webpack://escid.espp.showcase.service/./node_modules/rc-tooltip/es/placements.js","webpack://escid.espp.showcase.service/./node_modules/rc-tooltip/es/Popup.js","webpack://escid.espp.showcase.service/./node_modules/rc-tooltip/es/Tooltip.js","webpack://escid.espp.showcase.service/./node_modules/rc-tooltip/es/index.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/common/SliderTooltip.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/createSliderWithTooltip.js","webpack://escid.espp.showcase.service/./node_modules/rc-slider/es/index.js","webpack://escid.espp.showcase.service/./Content/components/productFeatureAnimation/productFeatureAnimation.scss?7542","webpack://escid.espp.showcase.service/./Content/Assets/svg/icon_pause_3d.tsx","webpack://escid.espp.showcase.service/./Content/Assets/svg/icon_play_3d.tsx","webpack://escid.espp.showcase.service/./Content/components/productFeatureAnimation/productFeatureAnimation.tsx","webpack://escid.espp.showcase.service/./Content/components/productFeatureAnimation-expose.js","webpack://escid.espp.showcase.service/./Content/Assets/svg/icon_zoom_out.tsx","webpack://escid.espp.showcase.service/./Content/Assets/svg/icon_zoom_in.tsx","webpack://escid.espp.showcase.service/./Content/components/threeSixtyAnimation/threeSixtyAnimation.scss?4a8f","webpack://escid.espp.showcase.service/./Content/components/common/scs-scrollLock.ts","webpack://escid.espp.showcase.service/./Content/components/common/loadingSpinner/loadingSpinner.scss?8e37","webpack://escid.espp.showcase.service/./Content/components/common/loadingSpinner/loadingSpinner.tsx","webpack://escid.espp.showcase.service/./Content/Assets/svg/icon_play_stop.tsx","webpack://escid.espp.showcase.service/./node_modules/react-zoom-pan-pinch/dist/index.esm.js","webpack://escid.espp.showcase.service/./Content/components/common/imageController.ts","webpack://escid.espp.showcase.service/./Content/components/threeSixtyAnimation/threeSixtyAnimation.tsx","webpack://escid.espp.showcase.service/./Content/styles/defaults.scss?499b","webpack://escid.espp.showcase.service/./node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","webpack://escid.espp.showcase.service/./node_modules/rc-util/node_modules/react-is/index.js","webpack://escid.espp.showcase.service/./node_modules/react-device-detect/dist/lib.js","webpack://escid.espp.showcase.service/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://escid.espp.showcase.service/./node_modules/scheduler/index.js","webpack://escid.espp.showcase.service/./node_modules/ua-parser-js/dist/ua-parser.min.js","webpack://escid.espp.showcase.service/./node_modules/classnames/index.js"],"names":["isMobileShop","document","getElementsByTagName","classList","contains","isTabletView","isTablet","isDeskTopView","width","parseInt","defaultStyles","breakpointDesktopMinWidth","window","innerWidth","decodeHTML","value","replace","match","dec","String","fromCharCode","isKioskPc","bind","fn","thisArg","wrap","apply","arguments","toString","Object","prototype","getPrototypeOf","kindOf","cache","thing","str","call","slice","toLowerCase","create","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isBoolean","isPlainObject","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isStream","pipe","isFormData","kind","FormData","append","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","map","trim","forEach","obj","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","global","isContextDefined","context","merge","caseless","this","assignValue","targetKey","extend","a","b","stripBOM","content","charCodeAt","inherits","superConstructor","props","descriptors","defineProperty","assign","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","undefined","lastIndex","indexOf","toArray","arr","isTypedArray","TypedArray","Uint8Array","forEachEntry","generator","next","done","pair","matchAll","regExp","matches","exec","push","isHTMLForm","toCamelCase","replacer","m","p1","p2","toUpperCase","hasOwnProperty","isRegExp","reduceDescriptors","reducer","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","noop","toFiniteNumber","defaultValue","Number","isFinite","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","then","catch","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","token","callbacks","addEventListener","data","shift","cb","postMessage","setTimeout","asap","queueMicrotask","process","nextTick","hasOwnProp","AxiosError","message","code","config","request","response","captureStackTrace","status","utils","toJSON","description","number","fileName","lineNumber","columnNumber","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","each","join","isFlatArray","some","predicates","test","toFormData","formData","options","TypeError","metaTokens","indexes","defined","option","visitor","defaultVisitor","_Blob","Blob","useBlob","convertValue","toISOString","Buffer","JSON","stringify","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","serializeFn","serialize","serializedParams","hashmarkIndex","InterceptorManager","handlers","fulfilled","rejected","synchronous","runWhen","id","forEachHandler","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","isBrowser","classes","protocols","hasBrowserEnv","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","toURLEncodedForm","platform","helpers","isNode","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","entries","stringifySafely","rawValue","parser","parse","e","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","_FormData","env","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","rawHeaders","parsed","line","substring","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","configurable","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","get","first","computed","internals","accessors","defineAccessor","accessor","mapped","headerValue","transformData","fns","transform","normalize","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","resolve","reject","ERR_BAD_REQUEST","floor","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","Date","startedAt","bytesCount","passed","round","throttle","freq","timestamp","threshold","lastArgs","timer","invoke","args","clearTimeout","throttled","flush","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","inRange","progress","estimated","event","progressEventDecorator","asyncDecorator","standardBrowserEnv","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","isURLSameOrigin","requestURL","nonStandardBrowserEnv","expires","domain","secure","cookie","toGMTString","RegExp","decodeURIComponent","write","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","computeConfigValue","configValue","newConfig","auth","btoa","username","password","unescape","Boolean","xsrfValue","cookies","read","isXHRAdapterSupported","XMLHttpRequest","Promise","dispatchXhrRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","open","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","_resolve","_reject","err","onreadystatechange","handleLoad","readyState","responseURL","onabort","handleAbort","ECONNABORTED","onerror","handleError","ERR_NETWORK","ontimeout","handleTimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","send","composeSignals","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","pos","end","readBytes","async","iterable","readStream","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","_onFinish","ReadableStream","close","loadedBytes","enqueue","return","highWaterMark","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","body","has","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","res","_","ERR_NOT_SUPPORT","getBodyLength","_request","resolveBodyLength","getContentLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","duplex","contentTypeHeader","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","knownAdapters","http","xhr","renderReason","isResolvedHandle","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","onAdapterResolution","onAdapterRejection","VERSION","validators","validator","deprecatedWarnings","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","unshift","responseInterceptorChain","pushResponseInterceptors","promise","chain","onFulfilled","onRejected","fullPath","forEachMethodNoData","forEachMethodWithData","generateHTTPMethod","isForm","httpMethod","CancelToken","executor","resolvePromise","promiseExecutor","_listeners","onfulfilled","splice","c","spread","callback","isAxiosError","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","instance","axios","Cancel","all","promises","formToJSON","default","Fetch","_classCallCheck","_createClass","apiUrl","masterArticleNo","colorCode","showCase","_this","requestUrl","URL","searchParams","errorMsg","errorStack","ThreeSixtyViewDataController","magicLink","_defineProperty","getThreeSixtyViewData","shell","publishTo","_instance","_ThreeSixtyViewDataController","o","toPrimitive","t","r","toPropertyKey","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","_objectSpread2","n","_defineProperties","_setPrototypeOf","setPrototypeOf","__proto__","_inherits","_getPrototypeOf","_isNativeReflectConstruct","valueOf","Reflect","construct","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","warned","preWarningFns","preMessage","warning","valid","note","resetWarned","warningOnce","noteOnce","Track","_ref","_ref2","className","included","vertical","style","offset","reverse","abs","positonStyle","elStyle","_extends","_objectWithoutPropertiesLoose","propertyIsEnumerable","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_superPropBase","_get","p","addEventListenerWrap","eventType","run","remove","calcPoints","marks","step","max","points","parseFloat","sort","Steps","prefixCls","lowerBound","upperBound","dotStyle","activeDotStyle","range","elements","point","_classNames","isActived","pointClassName","Marks","onClickLabel","marksKeys","markPoint","markPointIsObject","markLabel","label","isActive","markClassName","bottomStyle","marginBottom","leftStyle","msTransform","markStyle","onMouseDown","onTouchStart","Handle","_React$Component","_super","clickFocused","setHandleRef","node","handle","handleMouseUp","activeElement","setClickFocus","handleMouseDown","preventDefault","focus","handleBlur","handleKeyDown","componentDidMount","onMouseUpListener","componentWillUnmount","focused","setState","clickFocus","blur","render","_this$props","disabled","tabIndex","ariaLabel","ariaLabelledBy","ariaValueTextFormatter","restProps","positionStyle","mergedTabIndex","ariaValueText","ref","onBlur","onKeyDown","role","KeyCode","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","SPACE","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","keyCode","altKey","ctrlKey","metaKey","isCharacterKey","isEventFromHandle","handles","findDOMNode","isValueOutOfRange","isNotTouchEvent","touches","getClosestPoint","baseNum","pow","getPrecision","maxSteps","steps","closestStep","diffs","stepString","precision","getMousePosition","clientY","pageX","getTouchPosition","getHandleCenterPosition","coords","getBoundingClientRect","top","height","pageXOffset","left","ensureValueInRange","_ref3","ensureValuePrecision","closestPoint","toFixed","pauseEvent","stopPropagation","calculateNextValue","func","operations","increase","decrease","indexToGet","keyToGet","getKeyboardValueMutator","createSlider","Component","_a","_Component","ComponentEnhancer","onDown","draggableTrack","isVertical","bounds","positionGetValue","inPoint","handlesRefs","dragTrack","v","dragOffset","startBounds","handlePosition","onStart","button","removeDocumentEvents","addDocumentMouseEvents","addDocumentTouchEvents","onFocus","_this$props2","onEnd","onMouseUp","prevMovedHandleIndex","onMouseMove","sliderRef","onMove","onTouchMove","onKeyboard","onClickMarkLabel","onChange","saveSlider","slider","isPointDiffEven","ownerDocument","_this$props3","autoFocus","getSliderStart","_this$props4","rect","bottom","right","getSliderLength","onTouchMoveListener","onTouchUpListener","onMouseMoveListener","_this$handlesRefs$","_this2","_this2$handlesRefs$ke","_this2$handlesRefs$ke2","calcValue","_this$props5","ratio","calcValueByPos","sign","pixelOffset","nextValue","trimAlignValue","calcOffset","_this$props6","saveHandle","_this$props7","children","maximumTrackStyle","railStyle","_get$call","tracks","sliderClassName","getLowerBound","getUpperBound","displayName","defaultProps","dragging","onBeforeChange","onAfterChange","trackStyle","handleStyle","Slider","force","getValue","componentDidUpdate","prevProps","prevState","theValue","isNotControlled","nextState","changedValue","prevValue","startValue","startPosition","oldValue","valueMutator","mutatedValue","minPoint","startPoint","nextProps","mergedProps","minimumTrackStyle","ariaLabelForHandle","ariaLabelledByForHandle","ariaValueTextFormatterForHandle","handleGenerator","_this$state","trackOffset","mergedTrackStyle","track","_trimAlignValue","allowCross","pushable","thershold","valInRange","valNotConflict","Range","closestBound","getClosestBound","getBoundNeedMoving","nextBounds","count","initialValue","recent","currentValue","newValues","controlledState","item","maxValue","minValue","moveTo","isFromKeyboardEvent","boundNeedMoving","isAtTheSamePoint","getPoints","internalPointsCache","pointsObject","_this3","nextHandle","pushSurroundingHandles","direction","diffToNext","pushHandle","amount","originalValue","pushHandleOnePoint","pointIndex","nextPointIndex","_this$state2","_this4","_this$state3","ariaLabelGroupForHandles","ariaLabelledByGroupForHandles","ariaValueTextFormatterGroupForHandles","offsets","handleClassName","_classNames2","trackClassName","getDerivedStateFromProps","every","raf","caf","num","requestAnimationFrame","cancelAnimationFrame","rafUUID","rafIds","Map","cleanup","delete","wrapperRaf","times","callRef","leftTimes","realId","root","parentNode","isDOM","HTMLElement","SVGElement","getDOM","nativeElement","domNode","_ReactDOM$findDOMNode","condition","shouldUpdate","cacheRef","React","useRef","current","fillRef","composeRef","_len","refs","refList","useComposeRef","_len2","_key2","useMemo","prev","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isMemo","$$typeof","ForwardRef","isReactElement","isValidElement","isFragment","supportNodeRef","getNodeRef","canUseDom","Portal","forwardRef","didUpdate","getContainer","parentRef","containerRef","useImperativeHandle","initRef","useEffect","appendChild","_containerRef$current","removeChild","isPointsEq","a1","a2","isAlignPoint","getAlignFromPlacement","builtinPlacements","placementStr","align","baseAlign","getAlignPopupClassName","placements","placement","_arrayWithHoles","_iterableToArrayLimit","u","f","_nonIterableRest","agent","vendor","opera","substr","_excluded","Context","MotionProvider","_objectWithoutProperties","Provider","DomWrapper","fnRef","memoFn","_fnRef$current","useInternalLayoutEffect","useLayoutEffect","deps","firstMountRef","useLayoutUpdateEffect","firstMount","useSafeState","destroyRef","_React$useState","_React$useState2","setValue","safeSetState","updater","ignoreDestroy","hasValue","useMergedState","defaultStateValue","postState","_useState","useState","_useState2","_slicedToArray","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","useEvent","_useState3","_useState4","setPrevValue","triggerChange","internalSet","entity","paths","removeIfUndefined","_paths","_toArray","restPath","clone","_toConsumableArray","_objectSpread","_typeof","createEmpty","sources","src","internalMerge","parentLoopSet","loopSet","Set","isArr","add","originValue","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","STEP_PREPARED","makePrefixMap","styleProp","eventName","prefixes","getVendorPrefixes","domSupport","win","animationend","transitionend","animation","transition","vendorPrefixes","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","onInternalMotionEnd","cacheElementRef","removeMotionEvents","element","patchMotionEvents","useIsomorphicLayoutEffect","nextFrameRef","cancelNextFrame","nextFrame","delay","nextFrameId","isCanceled","FULL_STEP_QUEUE","SIMPLE_STEP_QUEUE","SkipStep","DoStep","prepareOnly","setStep","_useNextFrame","useNextFrame","_useNextFrame2","startQueue","STEP_QUEUE","nextStep","info","doNext","useStatus","supportMotion","visible","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","setStatus","_useState5","_useState6","setStyle","mountedRef","deadlineRef","getDomElement","activeRef","updateMotionEndStatus","deadline","currentActive","canEnd","_useDomMotionEvents","useDomMotionEvents","_useDomMotionEvents2","getEventHandlers","targetStatus","eventHandlers","_useStepQueue","useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","active","isMounted","nextStatus","nextEventHandlers","firstMountChangeRef","mergedStyle","genCSSMotion","transitionSupport","isSupportTransition","contextMotion","motionName","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","forceRender","leavedClassName","eventProps","_React$useContext","motion","nodeRef","wrapperNodeRef","_useStatus","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","setNodeRef","motionChildren","display","statusSuffix","motionCls","originNodeRef","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","diffKeys","prevKeys","currentKeys","list","currentIndex","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","_excluded2","MOTION_PROP_NAMES","genCSSMotionList","CSSMotionList","keyEntities","removeKey","nextKeyEntities","component","_onVisibleChanged","onAllRemoved","motionProps","changedVisible","restKeysCount","_ref4","parsedKeyObjects","mixedKeyEntities","prevEntity","find","_ref5","getMotion","Mask","zIndex","mask","maskMotion","maskAnimation","maskTransitionName","object","enumerableOnly","symbols","sym","vendorPrefix","jsCssMap","Webkit","Moz","ms","getVendorPrefix","testProp","getTransformName","setTransitionProperty","transitionProperty","setTransform","getTransitionProperty","getTransformXY","getComputedStyle","getPropertyValue","matrix","x","y","matrix2d","matrix3d","setTransformXY","xy","match2d","match3d","RE_NUM","getComputedStyleX","forceRelayout","elem","originalStyle","offsetHeight","css","getClientPosition","box","doc","docElem","documentElement","clientLeft","clientTop","getScroll","d","getScrollLeft","getScrollTop","getOffset","defaultView","parentWindow","isWindow","getDocument","nodeType","_getComputedStyle","cs","computedStyle","_RE_NUM_NO_PX","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","PX","_getComputedStyleIE","rsLeft","pixelLeft","getOffsetDirection","dir","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","off","_dir","_off","setTransform$1","originalXY","resultXY","setOffset","ignoreShake","oriOffset","oLeft","oTop","tLeft","tTop","useCssTransform","isBorderBoxFn","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","MARGIN_INDEX","swap","getPBMWidth","which","j","cssProp","domUtils","getParent","parent","refWin","documentElementProp","compatMode","getWH","ex","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","isBorderBox","cssBoxValue","borderBoxValueOrIsBorderBox","cssShow","visibility","getWHIgnoreDisplay","offsetWidth","includeMargin","mix","to","getWindow","overflow","getWindowScrollLeft","getWindowScrollTop","getOffsetParent","skipStatic","nodeName","getParent$1","isAncestorFixed","getVisibleRectForElement","alwaysByViewport","visibleRect","Infinity","clientWidth","clientHeight","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","scrollHeight","bodyStyle","overflowX","overflowY","innerHeight","maxVisibleWidth","maxVisibleHeight","adjustForViewport","elFuturePos","elRegion","adjustX","resizeWidth","adjustY","resizeHeight","getRegion","outerWidth","outerHeight","getAlignOffset","region","getElFuturePos","refNodeRegion","targetOffset","diff","isFailX","isFailY","isCompleteFailX","isCompleteFailY","flip","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","newOffset","newTargetOffset","newElFuturePos","_newPoints","_newOffset","_newTargetOffset","_newElFuturePos","isStillFailX","isStillFailY","_newPoints2","isOutOfVisibleRect","targetRegion","alignElement","refNode","isTargetNotOutOfVisible","__getOffsetParent","__getVisibleRectForElement","alignPoint","tgtPoint","pageY","clientX","pointInView","isEqual","obj1","obj2","shallow","refSet","deepEqual","level","circular","newLevel","Element","offsetParent","getBBox","_getBBox","_element$getBoundingC","_width","_height","calledRef","timeoutRef","cancelTrigger","trigger","MapShim","getIndex","entry","class_1","__entries__","clear","ctx","_i","global$1","g","Function","requestAnimationFrame$1","trailingTimeout","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","addObserver","observer","connect_","removeObserver","observers","disconnect_","changesDetected","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","observe","attributes","childList","characterData","subtree","disconnect","_b","propertyName","isReflowProperty","getInstance","instance_","defineConfigurable","getWindowOf","ownerGlobal","emptyRect","createRectInit","toFloat","getBordersSize","styles","positions","reduce","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getHTMLElementContentRect","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","getContentRect","createReadOnlyRect","Constr","DOMRectReadOnly","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","isSamePoint","restoreFocus","container","monitorResize","prevWidth","prevHeight","onResize","_target$getBoundingCl","fixedWidth","fixedHeight","resizeObserver","getPoint","Align","onAlign","monitorWindowResize","_ref$monitorBufferTim","monitorBufferTime","childNode","only","forceAlignPropsRef","_useBuffer","useBuffer","_forceAlignPropsRef$c","latestDisabled","latestTarget","latestAlign","latestOnAlign","_result","_element","_point","_document","isVisible","_useBuffer2","_forceAlign","cancelForceAlign","setElement","_React$useState3","_React$useState4","setPoint","cancelFn","forceAlign","RcAlign","_regeneratorRuntime","Generator","makeInvokeMethod","tryCatch","arg","GeneratorFunction","GeneratorFunctionPrototype","values","defineIteratorMethods","_invoke","AsyncIterator","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","isGeneratorFunction","mark","awrap","stop","rval","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","_next","_throw","StatusQueue","doMeasure","setInternalStatus","rafRef","cancelRaf","goNextStatus","_callee","_callee$","_context","stretch","targetSize","setTargetSize","measureStretch","tgtWidth","tgtHeight","sizeStyle","minHeight","minWidth","PopupInner","destroyPopupOnHide","getRootDomNode","getClassNameFromAlign","onMouseEnter","onMouseLeave","onClick","alignRef","elementRef","alignedClassName","setAlignedClassName","_useStretchStyle","useStretchStyle","_useStretchStyle2","stretchStyle","measureStretchStyle","_useVisibleStatus","useVisibleStatus","_useVisibleStatus2","alignTimes","setAlignTimes","prepareResolveRef","getAlignTarget","_alignRef$current","onInternalAlign","popupDomNode","matchAlign","nextAlignedClassName","_prepareResolveRef$cu","originHandler","onShowPrepare","opacity","pointerEvents","alignDisabled","motionRef","motionClassName","motionStyle","mergedClassName","onMouseDownCapture","onTouchStartCapture","MobilePopupInner","_props$mobile","mobile","popupClassName","popupStyle","_props$mobile$popupMo","popupMotion","popupRender","Popup","innerVisible","serInnerVisible","inMobile","setInMobile","cloneProps","isMobile","popupNode","TriggerContext","returnEmptyString","returnDocument","ALL_HANDLERS","generateTrigger","PortalComponent","Trigger","mouseEnterDelay","fireEvents","delaySetPopupVisible","mouseLeaveDelay","clearDelayTimer","_this$popupRef$curren","relatedTarget","popupRef","isFocusToShow","focusTime","focusDelay","preClickTime","preTouchTime","isBlurToHide","blurDelay","setPopupVisible","isContextMenuToShow","preTime","isClickToShow","isClickToHide","nextVisible","popupVisible","hasPopupMouseDown","mouseDownTimeout","_this$context","onPopupMouseDown","maskClosable","getPopupDomNode","isContextMenuOnly","getTriggerDOMNode","triggerRef","popupPlacement","getPopupClassNameFromAlign","onPopupAlign","popupAnimation","popupTransitionName","popup","onPopupClick","getPopupAlign","mouseProps","isMouseEnterToShow","onPopupMouseEnter","isMouseLeaveToHide","onPopupMouseLeave","popupContainer","attachId","getPopupContainer","mountNode","attachParent","portalContainer","prevPopupVisible","afterPopupVisibleChange","_popupVisible","defaultPopupVisible","currentDocument","clickOutsideHandler","onDocumentClick","touchOutsideHandler","contextMenuOutsideHandler1","onContextMenuClose","contextMenuOutsideHandler2","clearOutsideHandler","_this$popupRef$curren2","popupAlign","onPopupVisibleChange","delayS","delayTimer","createTwoChains","childPros","action","showAction","hideAction","_this$props8","_this$props9","_this$props10","forcePopupAlign","_this$popupRef$curren3","childCallback","_this$props11","autoDestroy","child","newChildProps","onContextMenu","childrenClassName","portal","handlePortalUpdate","getComponent","triggerContextValue","newState","autoAdjustOverflow","topLeft","leftTop","topRight","rightTop","bottomRight","rightBottom","bottomLeft","leftBottom","showArrow","arrowContent","overlayInnerStyle","Tooltip","overlayClassName","_props$trigger","_props$mouseEnterDela","_props$mouseLeaveDela","overlayStyle","_props$prefixCls","onVisibleChange","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlay","_props$showArrow","domRef","extraProps","getPopupElement","destroyTooltip","keepParent","SliderTooltip","innerRef","tooltipRef","cancelKeepAlign","keepAlign","_innerRef$current","createSliderWithTooltip","ComponentWrapper","visibles","handleTooltipVisibleChange","handleWithTooltip","tipFormatter","tipProps","_tipProps$prefixCls","_tipProps$overlay","_tipProps$placement","_tipProps$visible","restTooltipProps","handleStyleWithIndex","InternalSlider","Icon_Pause_3D","xmlns","viewBox","data-name","cx","cy","fill","dpWhite","Icon_Play_3D","ProductFeatureAnimation","_callSuper","playAnimation","sliderIndex","currentThreeSixty","threeSixty","hideContent","imageUrlArray","productInfo","threeSixtyViewController","generalData","handle3DAnimationStartStopClick","handleSliderOnChange","updateSliderIndex","handleESPPDetailPageUpdate","subscribeTo","variantSelection","selectedColor","oldPI","containerId","threeSixtyAnimationRef","initAnimation","threeSixtyView","restoreContent","playStopAnimation","_this5","imageIndex","getImageIndex","animationSequenceIndex","animationSequence","_this6","restartAnimation","getSliderStyles","setGroupAtt","hasAttribute","toggleAttribute","setFocusAtt","order","_this7","ThreeSixtyAnimation","animationSpeed","showOverlayAnimation","hasThreeSixtyThumbnails","loadContentAfterPageLoad","loadContentAfterPageLoadMobile","preventAutoPlay","ReactDOM","ReactDOMServer","IconZoomOut","IconZoomIn","SCSScrollLock","lock","webContainer","querySelector","mobileContainer","bodyScrollPosition","unlock","removeAttribute","scrollTo","_SCSScrollLock","LoadingSpinner","showLoadingSpinner","loadingSpinnerClass","IconPlayStop","roundNumber","decimal","checkIsNumber","handleCallback","easeOut","cos","PI","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","animations","handleCancelAnimationFrame","handleCancelAnimation","contextInstance","mounted","animate","velocity","handleSetupAnimation","animationName","animationTime","startTime","getTime","lastStep","frameTime","animationProgress","animationType","isValidTargetState","targetState","scale","positionX","positionY","isValid","setTransformState","transformState","scaleDiff","positionXDiff","positionYDiff","newScale","newPositionX","newPositionY","getComponentsSizes","wrapperComponent","contentComponent","wrapperWidth","wrapperHeight","contentWidth","contentHeight","newContentWidth","newContentHeight","newDiffWidth","newDiffHeight","getBounds","diffWidth","diffHeight","centerZoomedOut","scaleWidthFactor","scaleHeightFactor","minPositionX","maxPositionX","minPositionY","maxPositionY","calculateBounds","setup","boundLimiter","minBound","maxBound","handleCalculateBounds","getMouseBoundedPosition","limitToBounds","paddingValueX","paddingValueY","paddingX","paddingY","handleCalculateZoomPositions","mouseX","mouseY","scaleDifference","calculatedPositionX","calculatedPositionY","newPositions","checkZoomBounds","zoom","minScale","maxScale","zoomPadding","enablePadding","scalePadding","minScaleWithPadding","isPanningStartAllowed","excluded","panning","isInitialized","targetIsShadowDom","isWrapperChild","composedPath","isAllowed","isExcluded","isExcludedNode","isPanningAllowed","isPanning","handlePanningSetup","startCoords","handleTouchPanningSetup","oneFingerTouch","handlePanToBounds","_c","xChanged","yChanged","mousePosX","mousePosY","_d","handleNewPosition","getPanningClientPosition","lockAxisX","lockAxisY","getPaddingValue","disablePadding","isVelocityCalculationAllowed","velocityAnimation","disabledVelocity","isVelocityAllowed","getVelocityMoveTime","equalToMove","sensitivity","getVelocityPosition","newPosition","currentPosition","isLocked","minPosition","maxPosition","minTarget","maxTarget","calculatedPosition","getSizeMultiplier","defaultMultiplier","handleCalculateVelocity","lastMousePosition","velocityTime","sizeMultiplier","distanceX","distanceY","velocityX","velocityY","interval","speed","sqrt","handleVelocityPanning","alignmentAnimation","zoomAnimation","sizeX","sizeY","velocityAlignmentTime","alignAnimationTime","moveAnimationTime","finalAnimationTime","maxTargetX","minTargetX","maxTargetY","minTargetY","startState","alignAnimation","alignStep","customStep","currentPositionX","currentPositionY","handlePanningStart","TouchEvent","handleAlignToBounds","isDisabled","handlePanning","handlePanningEnd","velocityDisabled","wrapperRect","isZoomed","shouldAnimate","handleZoomToPoint","handleAlignToScaleBounds","mousePositionX","mousePositionY","__assign","__rest","__spreadArray","pack","ar","initialState","previousScale","initialSetup","centerOnInit","smooth","wheel","smoothStep","wheelDisabled","touchPadDisabled","activationKeys","allowLeftClickPan","allowMiddleClickPan","allowRightClickPan","wheelPanning","pinch","doubleClick","mode","createState","initialScale","initialPositionX","initialPositionY","createSetup","newSetup","validValue","validParameter","dataType","handleCalculateButtonZoom","delta","targetScale","exp","handleZoomToViewCenter","resetTransformations","onResetTransformation","initialTransformation","newBounds","boundedPositions","wrapper","wrapperOffset","contentOffset","xOff","yOff","calculateZoomToNode","customZoom","nodeRect","nodeOffset","nodeLeft","nodeTop","nodeWidth","nodeHeight","scaleX","scaleY","offsetX","offsetY","zoomIn","zoomOut","resetTransform","centerView","getCenterPosition","zoomToElement","getElementById","getControls","getState","getContext","passiveSupported","makePassiveEventOption","exclude","cancelTimeout","getTransformStyles","getMatrixTransformStyles","tx","ty","centerPositionX","centerPositionY","mergeRefs","isWheelAllowed","getDeltaY","deltaY","getDelta","customDelta","touch","handleCalculateWheelZoom","disable","getTarget","paddingEnabled","handleWheelZoomStop","previousWheelEvent","isPinchStartAllowed","isPinchAllowed","pinchStartDistance","calculateTouchMidPoint","firstPointX","firstPointY","secondPointX","secondPointY","getTouchDistance","calculatePinchZoom","currentDistance","pinchStartScale","touchProportion","wheelStopEventTime","wheelAnimationTime","handleWheelStart","onWheelStart","onZoomStart","wheelStopEventTimer","handleWheelZoom","onWheel","onZoom","zoomStep","mousePosition","isPaddingDisabled","isLimitedToBounds","handleWheelStop","onWheelStop","onZoomStop","wheelAnimationTimer","hasStoppedZooming","handlePinchStart","distance","lastDistance","handlePinchZoom","midPoint","pinchMidpoint","handlePinchStop","handleDoubleClickStop","doubleClickStopEventTimer","handleDoubleClickResetMode","getDoubleClickScale","handleDoubleClick","isDoubleClickAllowed","ZoomPanPinch","onChangeCallbacks","onInitCallbacks","isWheelPanning","lastTouch","maxBounds","pressedKeys","mount","initializeWindowEvents","unmount","cleanupWindowEvents","update","newProps","passive","currentWindow","onWheelPanning","onPanningStart","onPanning","onPanningStop","clearPanning","setKeyUnPressed","setKeyPressed","handleInitializeWrapperEvents","onWheelZoom","onDoubleClick","onTouchPanningStart","onTouchPanning","onTouchPanningStop","handleInitialize","applyTransformation","setCenter","currentWidth","currentHeight","keysPressed","isPressingKeys","deltaX","onPinchStart","onPinchingStart","onPinch","onPinching","onPinchStop","onPinchingStop","isDoubleTap","isPanningAction","isPinchAction","onTransformed","ctx_1","handleTransformStyles","customTransform","onInit","init","getContent","TransformWrapper","KeepScale","localRef","useContext","initialElementRect","useResize","dependencies","resizeObserverRef","rectRef","didUnmount","newSize","previewStyles","border","transformOrigin","boxShadow","MiniMap","borderColor","rest","_e","initialized","setInitialized","useTransformContext","miniMapInstance","mainRef","wrapperRef","previewRef","getContentSize","useCallback","computeMiniMapScale","contentSize","computeMiniMapSize","computeMiniMapStyle","transformMiniMap","miniSize","wrapSize","previewScale","initialize","useTransformEffect","useTransformInit","zpp","wrapperStyle","styleInject","insertAt","firstChild","insertBefore","styleSheet","cssText","createTextNode","css_248z","TransformComponent","wrapperClass","contentClass","contentStyle","wrapperProps","contentProps","_f","contentRef","libraryContext","useControls","unmountCallback","ImageController","getRotatedImageIndex","animationSequenceLength","dragStartScreenX","dragStartImageIndex","numImages","pixelsPerImage","pixelsPerDegree","dx","getImageHeight","newImageHeight","currentWindowWidth","helper","devicePixelRatio","breakPointMobile","imageHeightMobile","breakPointTablet","imageHeightTablet","breakPointDesktopMin","imageHeightDesktopMin","imageHeightDesktopMax","_ImageController","minZoomLevel","maxZoomLevel","animationIsLoaded","currentImageHeight","zoomInLevel","imageMovementIsEnabled","zoomedImageIndex","zoomedImageHeight","loadAnimation","displayThreeSixtyOverlay","imageHeight","imageLoadedProgress","imageController","handleRotationByHand","handleRotationByTouch","handleTouchend","handleTouchDown","preventDragHandler","handleStartStopClick","handleWindowResize","handleZoomInClick","handleZoomOutClick","openThreeSixtyOverlay","handleOnInit","onEnterViewport","updateZoomedImagePosition","updateZoomedImagePositionTouch","animationRef","zoomBtn","threeDOverlay","displayG3dOverlay","handleShowThreeSixtyViewEvent","showThreeDView","play3d","animationTimer","unsubscribeFrom","setImageSize","windowResizeTimer","setOverlayViewWindowSize","scrollLock","threeDImagesRef","new_height","setThreeDImagesContainerDimensions","updateImageIndex","screenX","handleImageMovement","persist","gMouseDownX","gMouseDownY","leftPart","activeImageContainer","leftPos","leftNumString","gMouseDownOffsetX","topPart","topPos","topNumString","gMouseDownOffsetY","topAmount","leftAmount","resetDefaultImageSize","tmpZoomInLevel","dataset","maxWidth","maxHeight","removeProperty","reactZoomPanPinchRef","renderElementsForThreeSixtyView","threeDImagesClass","onDragStart","getImageElements","handleImageLoaded","_this8","getAltTag","categoryName","designation","colorName","l10n","localizationKey","_this9","imgUrl","newIndex","getImageUrl","data-testid","threeDImageClass","data-index","decoding","onLoad","alt","imgHeight","_this$state$zoomedIma","play","_this10","_this11","zoomButtonsClass","tdiClassName","renderableImageIndex","zoomOutBtnStyleClass","zoomInBtnStyleClass","viewportReached","tabNav","nextSibling","previousSibling","for","k","q","exports","getModuleId","module","_interopDefault","React__default","UAParser","ClientUAInstance","browser","getBrowser","cpu","getCPU","device","getDevice","engine","getEngine","os","getOS","ua","getUA","setUa","userAgentString","setUA","parseUserAgent","UserAgentInstance","UA","setUserAgent","UAHelper","freeze","Constructor","protoProps","staticProps","subClass","superClass","sourceKeys","sourceSymbolKeys","_arr","_n","_s","minLen","arr2","DeviceTypes","Mobile","Tablet","SmartTv","Console","Wearable","Embedded","Browser","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","Ie","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","InitialDeviceTypes","isSmartTV","isConsole","isWearable","checkDeviceType","isEmbedded","setDefaults","getNavigatorInstance","isIOS13Check","nav","maxTouchPoints","MSStream","browserPayload","browserMajorVersion","major","browserFullVersion","browserName","engineName","engineVersion","osName","osVersion","mobilePayload","model","smartTvPayload","consolePayload","wearablePayload","embeddedPayload","deviceDetect","isMobileType","isTabletType","isMobileAndTabletType","isSmartTVType","isBrowserType","isWearableType","_ref6","isConsoleType","_ref7","isEmbeddedType","_ref8","getMobileVendor","_ref9","getMobileModel","_ref10","getDeviceType","_ref11","isAndroidType","_ref12","isWindowsType","_ref13","isMacOsType","_ref14","isWinPhoneType","_ref15","isIOSType","_ref16","getOsVersion","_ref17","getOsName","_ref18","isChromeType","_ref19","isFirefoxType","_ref20","isChromiumType","_ref21","isEdgeType","_ref22","isYandexType","_ref23","isSafariType","_ref24","isMobileSafariType","_ref25","isOperaType","_ref26","isIEType","_ref27","isMIUIType","_ref28","isSamsungBrowserType","_ref29","getBrowserFullVersion","_ref30","getBrowserVersion","_ref31","getBrowserName","_ref32","getEngineName","_ref33","getEngineVersion","_ref34","isElectronType","isEdgeChromiumType","getIOS13","getIPad13","getIphone13","getIPod13","getUseragent","userAg","buildSelectorsObject","isMobileSafari","isChromium","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","isIE","fullBrowserVersion","browserVersion","mobileVendor","mobileModel","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","getSelectorsByUserAgent","_UAHelper$parseUserAg","AndroidView","renderWithFragment","Fragment","BrowserView","IEView","IOSView","MobileView","TabletView","WinPhoneView","MobileOnlyView","viewClassName","SmartTVView","ConsoleView","WearableView","CustomView","withOrientationChange","WrappedComponent","_class","isEventListenerAdded","handleOrientationChange","onOrientationChange","onPageLoad","isLandscape","isPortrait","orientation","useMobileOrientation","useDeviceData","hookUserAgent","useDeviceSelectors","deviceData","selectors","sortIndex","performance","unstable_now","z","scheduling","isInputPending","expirationTime","priorityLevel","MessageChannel","port2","port1","onmessage","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_forceFrameRate","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","unstable_shouldYield","unstable_wrapCallback","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","regexes","extensions","mergedRegexes","enumerize","enums","str1","str2","lowerize","majorize","rgxMapper","arrays","regex","strMapper","oldSafariMap","1.2","1.3","windowsVersionMap","ME","XP","Vista","7","8","8.1","10","RT","getResult","_ua","_uach","userAgentData","_rgxmap","_isSelfNav","_browser","brave","isBrave","_cpu","_device","standalone","_engine","_os","CPU","DEVICE","ENGINE","OS","$","jQuery","Zepto","hasOwn","classNames","appendClass","parseValue","includes","newClass"],"mappings":"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","file":"productFeatureAnimation.js","sourcesContent":["import defaultStyles from '../../styles/defaults.scss';\r\nimport {isTablet} from 'react-device-detect';\r\n\r\nexport function isMobileShop(): boolean {\r\n if (typeof document !== 'undefined')\r\n return document.getElementsByTagName('html')[0].classList.contains('mobileshop');\r\n else\r\n return false;\r\n}\r\n\r\nexport function isTabletView(): boolean {\r\n return isTablet;\r\n}\r\n\r\nexport function isDeskTopView(): boolean {\r\n const width = parseInt(defaultStyles.breakpointDesktopMinWidth);\r\n return window.innerWidth >= width;\r\n}\r\n\r\nexport function decodeHTML(value: string): string {\r\n return value.replace(/&#(\\d+);/g, (match, dec) => {\r\n return String.fromCharCode(dec);\r\n });\r\n}\r\n\r\nexport function isKioskPc(): boolean {\r\n if (typeof document !== 'undefined')\r\n return document.getElementsByTagName('html')[0].classList.contains('kiosk');\r\n else\r\n return false;\r\n}\r\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios, { AxiosError, AxiosResponse } from 'axios';\r\n\r\nexport class Fetch {\r\n public fetch(apiUrl: string, masterArticleNo: string, colorCode: string, showCase: string) {\r\n const requestUrl = new URL(apiUrl);\r\n requestUrl.searchParams.set('masterArticleNo', masterArticleNo);\r\n requestUrl.searchParams.set('colorCode', colorCode);\r\n\r\n if(showCase)\r\n requestUrl.searchParams.set('showCase', showCase);\r\n\r\n return axios.get(requestUrl.toString())\r\n .then((response: AxiosResponse) => response.status === 200 ? response.data : undefined)\r\n .catch((error: Error | AxiosError) => {\r\n const errorMsg = this.isAxiosError(error)\r\n ? error.message\r\n : `${error.name}: ${error.message}`;\r\n const errorStack = this.isAxiosError(error)\r\n ? JSON.stringify(error.toJSON())\r\n : error.stack;\r\n\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n `fetch() failed with \"${errorMsg}\". Full error:\\n${errorStack}`\r\n );\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private isAxiosError(error: any): error is AxiosError {\r\n return typeof error.toJSON !== 'undefined';\r\n }\r\n}\r\n","import { IThreeSixtyViewProps } from '../threeSixtyView/threeSixtyView.d';\r\nimport { Fetch } from './Fetch';\r\n\r\nexport class ThreeSixtyViewDataController {\r\n private static _instance: ThreeSixtyViewDataController;\r\n private readonly fetch: Fetch;\r\n private readonly magicLink: string;\r\n\r\n static instance(magicLink) {\r\n return this._instance || (this._instance = new this(magicLink));\r\n }\r\n\r\n constructor(magicLink: string) {\r\n this.fetch = new Fetch();\r\n this.magicLink = magicLink;\r\n }\r\n \r\n public getThreeSixtyViewData(colorCode: number, masterArticleNo: string, \r\n showCase: string = null): Promise {\r\n const apiUrl = this.magicLink + 'api/showcase/getthreesixtyviewdata';\r\n\r\n return this.fetch.fetch(apiUrl, masterArticleNo, colorCode.toString(), showCase)\r\n .then((response) => {\r\n if (response) {\r\n return response;\r\n }\r\n else {\r\n // ping PDP and hide SCS fragment, \r\n // because selected does not have 3D animation\r\n window.shell.publishTo('SCS.Hide.Fragment', true);\r\n return undefined;\r\n }\r\n });\r\n }\r\n}\r\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\n\nvar Track = function Track(props) {\n var _ref, _ref2;\n\n var className = props.className,\n included = props.included,\n vertical = props.vertical,\n style = props.style;\n var length = props.length,\n offset = props.offset,\n reverse = props.reverse;\n\n if (length < 0) {\n reverse = !reverse;\n length = Math.abs(length);\n offset = 100 - offset;\n }\n\n var positonStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"height\", \"\".concat(length, \"%\")), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"width\", \"\".concat(length, \"%\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positonStyle);\n\n return included ? /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: elStyle\n }) : null;\n};\n\nexport default Track;","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.indexOf(n) >= 0) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n if (target !== null && target !== void 0 && target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n return {\n remove: function remove() {\n if (target !== null && target !== void 0 && target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\n\nvar calcPoints = function calcPoints(vertical, marks, dots, step, min, max) {\n warning(dots ? step > 0 : true, '`Slider[step]` should be a positive number in order to make Slider[dots] work.');\n var points = Object.keys(marks).map(parseFloat).sort(function (a, b) {\n return a - b;\n });\n\n if (dots && step) {\n for (var i = min; i <= max; i += step) {\n if (points.indexOf(i) === -1) {\n points.push(i);\n }\n }\n }\n\n return points;\n};\n\nvar Steps = function Steps(_ref) {\n var prefixCls = _ref.prefixCls,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n dots = _ref.dots,\n step = _ref.step,\n included = _ref.included,\n lowerBound = _ref.lowerBound,\n upperBound = _ref.upperBound,\n max = _ref.max,\n min = _ref.min,\n dotStyle = _ref.dotStyle,\n activeDotStyle = _ref.activeDotStyle;\n var range = max - min;\n var elements = calcPoints(vertical, marks, dots, step, min, max).map(function (point) {\n var _classNames;\n\n var offset = \"\".concat(Math.abs(point - min) / range * 100, \"%\");\n var isActived = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var style = vertical ? _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'top' : 'bottom', offset)) : _objectSpread(_objectSpread({}, dotStyle), {}, _defineProperty({}, reverse ? 'right' : 'left', offset));\n\n if (isActived) {\n style = _objectSpread(_objectSpread({}, style), activeDotStyle);\n }\n\n var pointClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-active\"), isActived), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot-reverse\"), reverse), _classNames));\n return /*#__PURE__*/React.createElement(\"span\", {\n className: pointClassName,\n style: style,\n key: point\n });\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-step\")\n }, elements);\n};\n\nexport default Steps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport classNames from 'classnames';\n\nvar Marks = function Marks(_ref) {\n var className = _ref.className,\n vertical = _ref.vertical,\n reverse = _ref.reverse,\n marks = _ref.marks,\n included = _ref.included,\n upperBound = _ref.upperBound,\n lowerBound = _ref.lowerBound,\n max = _ref.max,\n min = _ref.min,\n onClickLabel = _ref.onClickLabel;\n var marksKeys = Object.keys(marks);\n var range = max - min;\n var elements = marksKeys.map(parseFloat).sort(function (a, b) {\n return a - b;\n }).map(function (point) {\n var _classNames;\n\n var markPoint = marks[point];\n var markPointIsObject = _typeof(markPoint) === 'object' && ! /*#__PURE__*/React.isValidElement(markPoint);\n var markLabel = markPointIsObject ? markPoint.label : markPoint;\n\n if (!markLabel && markLabel !== 0) {\n return null;\n }\n\n var isActive = !included && point === upperBound || included && point <= upperBound && point >= lowerBound;\n var markClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(className, \"-text\"), true), _defineProperty(_classNames, \"\".concat(className, \"-text-active\"), isActive), _classNames));\n\n var bottomStyle = _defineProperty({\n marginBottom: '-50%'\n }, reverse ? 'top' : 'bottom', \"\".concat((point - min) / range * 100, \"%\"));\n\n var leftStyle = _defineProperty({\n transform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\"),\n msTransform: \"translateX(\".concat(reverse ? \"50%\" : \"-50%\", \")\")\n }, reverse ? 'right' : 'left', \"\".concat((point - min) / range * 100, \"%\"));\n\n var style = vertical ? bottomStyle : leftStyle;\n var markStyle = markPointIsObject ? _objectSpread(_objectSpread({}, style), markPoint.style) : style;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: markClassName,\n style: markStyle,\n key: point,\n onMouseDown: function onMouseDown(e) {\n return onClickLabel(e, point);\n },\n onTouchStart: function onTouchStart(e) {\n return onClickLabel(e, point);\n }\n }, markLabel);\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, elements);\n};\n\nexport default Marks;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\n\nvar Handle = /*#__PURE__*/function (_React$Component) {\n _inherits(Handle, _React$Component);\n\n var _super = _createSuper(Handle);\n\n function Handle() {\n var _this;\n\n _classCallCheck(this, Handle);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n clickFocused: false\n };\n\n _this.setHandleRef = function (node) {\n _this.handle = node;\n };\n\n _this.handleMouseUp = function () {\n if (document.activeElement === _this.handle) {\n _this.setClickFocus(true);\n }\n };\n\n _this.handleMouseDown = function (e) {\n // avoid selecting text during drag\n // https://github.com/ant-design/ant-design/issues/25010\n e.preventDefault(); // fix https://github.com/ant-design/ant-design/issues/15324\n\n _this.focus();\n };\n\n _this.handleBlur = function () {\n _this.setClickFocus(false);\n };\n\n _this.handleKeyDown = function () {\n _this.setClickFocus(false);\n };\n\n return _this;\n }\n\n _createClass(Handle, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // mouseup won't trigger if mouse moved out of handle,\n // so we listen on document here.\n this.onMouseUpListener = addEventListener(document, 'mouseup', this.handleMouseUp);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.onMouseUpListener) {\n this.onMouseUpListener.remove();\n }\n }\n }, {\n key: \"setClickFocus\",\n value: function setClickFocus(focused) {\n this.setState({\n clickFocused: focused\n });\n }\n }, {\n key: \"clickFocus\",\n value: function clickFocus() {\n this.setClickFocus(true);\n this.focus();\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.handle.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.handle.blur();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _ref, _ref2;\n\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n vertical = _this$props.vertical,\n reverse = _this$props.reverse,\n offset = _this$props.offset,\n style = _this$props.style,\n disabled = _this$props.disabled,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n tabIndex = _this$props.tabIndex,\n ariaLabel = _this$props.ariaLabel,\n ariaLabelledBy = _this$props.ariaLabelledBy,\n ariaValueTextFormatter = _this$props.ariaValueTextFormatter,\n restProps = _objectWithoutProperties(_this$props, [\"prefixCls\", \"vertical\", \"reverse\", \"offset\", \"style\", \"disabled\", \"min\", \"max\", \"value\", \"tabIndex\", \"ariaLabel\", \"ariaLabelledBy\", \"ariaValueTextFormatter\"]);\n\n var className = classNames(this.props.className, _defineProperty({}, \"\".concat(prefixCls, \"-handle-click-focused\"), this.state.clickFocused));\n var positionStyle = vertical ? (_ref = {}, _defineProperty(_ref, reverse ? 'top' : 'bottom', \"\".concat(offset, \"%\")), _defineProperty(_ref, reverse ? 'bottom' : 'top', 'auto'), _defineProperty(_ref, \"transform\", reverse ? null : \"translateY(+50%)\"), _ref) : (_ref2 = {}, _defineProperty(_ref2, reverse ? 'right' : 'left', \"\".concat(offset, \"%\")), _defineProperty(_ref2, reverse ? 'left' : 'right', 'auto'), _defineProperty(_ref2, \"transform\", \"translateX(\".concat(reverse ? '+' : '-', \"50%)\")), _ref2);\n\n var elStyle = _objectSpread(_objectSpread({}, style), positionStyle);\n\n var mergedTabIndex = tabIndex || 0;\n\n if (disabled || tabIndex === null) {\n mergedTabIndex = null;\n }\n\n var ariaValueText;\n\n if (ariaValueTextFormatter) {\n ariaValueText = ariaValueTextFormatter(value);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: this.setHandleRef,\n tabIndex: mergedTabIndex\n }, restProps, {\n className: className,\n style: elStyle,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseDown: this.handleMouseDown // aria attribute\n ,\n role: \"slider\",\n \"aria-valuemin\": min,\n \"aria-valuemax\": max,\n \"aria-valuenow\": value,\n \"aria-disabled\": !!disabled,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-valuetext\": ariaValueText\n }));\n }\n }]);\n\n return Handle;\n}(React.Component);\n\nexport { Handle as default };","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { findDOMNode } from 'react-dom';\nimport keyCode from \"rc-util/es/KeyCode\";\nexport function isEventFromHandle(e, handles) {\n try {\n return Object.keys(handles).some(function (key) {\n return e.target === findDOMNode(handles[key]);\n });\n } catch (error) {\n return false;\n }\n}\nexport function isValueOutOfRange(value, _ref) {\n var min = _ref.min,\n max = _ref.max;\n return value < min || value > max;\n}\nexport function isNotTouchEvent(e) {\n return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;\n}\nexport function getClosestPoint(val, _ref2) {\n var marks = _ref2.marks,\n step = _ref2.step,\n min = _ref2.min,\n max = _ref2.max;\n var points = Object.keys(marks).map(parseFloat);\n\n if (step !== null) {\n var baseNum = Math.pow(10, getPrecision(step));\n var maxSteps = Math.floor((max * baseNum - min * baseNum) / (step * baseNum));\n var steps = Math.min((val - min) / step, maxSteps);\n var closestStep = Math.round(steps) * step + min;\n points.push(closestStep);\n }\n\n var diffs = points.map(function (point) {\n return Math.abs(val - point);\n });\n return points[diffs.indexOf(Math.min.apply(Math, _toConsumableArray(diffs)))];\n}\nexport function getPrecision(step) {\n var stepString = step.toString();\n var precision = 0;\n\n if (stepString.indexOf('.') >= 0) {\n precision = stepString.length - stepString.indexOf('.') - 1;\n }\n\n return precision;\n}\nexport function getMousePosition(vertical, e) {\n return vertical ? e.clientY : e.pageX;\n}\nexport function getTouchPosition(vertical, e) {\n return vertical ? e.touches[0].clientY : e.touches[0].pageX;\n}\nexport function getHandleCenterPosition(vertical, handle) {\n var coords = handle.getBoundingClientRect();\n return vertical ? coords.top + coords.height * 0.5 : window.pageXOffset + coords.left + coords.width * 0.5;\n}\nexport function ensureValueInRange(val, _ref3) {\n var max = _ref3.max,\n min = _ref3.min;\n\n if (val <= min) {\n return min;\n }\n\n if (val >= max) {\n return max;\n }\n\n return val;\n}\nexport function ensureValuePrecision(val, props) {\n var step = props.step;\n var closestPoint = isFinite(getClosestPoint(val, props)) ? getClosestPoint(val, props) : 0; // eslint-disable-line\n\n return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));\n}\nexport function pauseEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n}\nexport function calculateNextValue(func, value, props) {\n var operations = {\n increase: function increase(a, b) {\n return a + b;\n },\n decrease: function decrease(a, b) {\n return a - b;\n }\n };\n var indexToGet = operations[func](Object.keys(props.marks).indexOf(JSON.stringify(value)), 1);\n var keyToGet = Object.keys(props.marks)[indexToGet];\n\n if (props.step) {\n return operations[func](value, props.step);\n }\n\n if (!!Object.keys(props.marks).length && !!props.marks[keyToGet]) {\n return props.marks[keyToGet];\n }\n\n return value;\n}\nexport function getKeyboardValueMutator(e, vertical, reverse) {\n var increase = 'increase';\n var decrease = 'decrease';\n var method = increase;\n\n switch (e.keyCode) {\n case keyCode.UP:\n method = vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.RIGHT:\n method = !vertical && reverse ? decrease : increase;\n break;\n\n case keyCode.DOWN:\n method = vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.LEFT:\n method = !vertical && reverse ? increase : decrease;\n break;\n\n case keyCode.END:\n return function (value, props) {\n return props.max;\n };\n\n case keyCode.HOME:\n return function (value, props) {\n return props.min;\n };\n\n case keyCode.PAGE_UP:\n return function (value, props) {\n return value + props.step * 2;\n };\n\n case keyCode.PAGE_DOWN:\n return function (value, props) {\n return value - props.step * 2;\n };\n\n default:\n return undefined;\n }\n\n return function (value, props) {\n return calculateNextValue(method, value, props);\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _get from \"@babel/runtime/helpers/esm/get\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport classNames from 'classnames';\nimport warning from \"rc-util/es/warning\";\nimport Steps from './Steps';\nimport Marks from './Marks';\nimport Handle from '../Handle';\nimport * as utils from '../utils';\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nfunction noop() {}\n\nexport default function createSlider(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_Component) {\n _inherits(ComponentEnhancer, _Component);\n\n var _super = _createSuper(ComponentEnhancer);\n\n function ComponentEnhancer(props) {\n var _this;\n\n _classCallCheck(this, ComponentEnhancer);\n\n _this = _super.call(this, props);\n\n _this.onDown = function (e, position) {\n var p = position;\n var _this$props = _this.props,\n draggableTrack = _this$props.draggableTrack,\n isVertical = _this$props.vertical;\n var bounds = _this.state.bounds;\n var value = draggableTrack && _this.positionGetValue ? _this.positionGetValue(p) || [] : [];\n var inPoint = utils.isEventFromHandle(e, _this.handlesRefs);\n _this.dragTrack = draggableTrack && bounds.length >= 2 && !inPoint && !value.map(function (n, i) {\n var v = !i ? n >= bounds[i] : true;\n return i === value.length - 1 ? n <= bounds[i] : v;\n }).some(function (c) {\n return !c;\n });\n\n if (_this.dragTrack) {\n _this.dragOffset = p;\n _this.startBounds = _toConsumableArray(bounds);\n } else {\n if (!inPoint) {\n _this.dragOffset = 0;\n } else {\n var handlePosition = utils.getHandleCenterPosition(isVertical, e.target);\n _this.dragOffset = p - handlePosition;\n p = handlePosition;\n }\n\n _this.onStart(p);\n }\n };\n\n _this.onMouseDown = function (e) {\n if (e.button !== 0) {\n return;\n }\n\n _this.removeDocumentEvents();\n\n var isVertical = _this.props.vertical;\n var position = utils.getMousePosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentMouseEvents();\n };\n\n _this.onTouchStart = function (e) {\n if (utils.isNotTouchEvent(e)) return;\n var isVertical = _this.props.vertical;\n var position = utils.getTouchPosition(isVertical, e);\n\n _this.onDown(e, position);\n\n _this.addDocumentTouchEvents();\n\n utils.pauseEvent(e);\n };\n\n _this.onFocus = function (e) {\n var _this$props2 = _this.props,\n onFocus = _this$props2.onFocus,\n vertical = _this$props2.vertical;\n\n if (utils.isEventFromHandle(e, _this.handlesRefs) && !_this.dragTrack) {\n var handlePosition = utils.getHandleCenterPosition(vertical, e.target);\n _this.dragOffset = 0;\n\n _this.onStart(handlePosition);\n\n utils.pauseEvent(e);\n\n if (onFocus) {\n onFocus(e);\n }\n }\n };\n\n _this.onBlur = function (e) {\n var onBlur = _this.props.onBlur;\n\n if (!_this.dragTrack) {\n _this.onEnd();\n }\n\n if (onBlur) {\n onBlur(e);\n }\n };\n\n _this.onMouseUp = function () {\n if (_this.handlesRefs[_this.prevMovedHandleIndex]) {\n _this.handlesRefs[_this.prevMovedHandleIndex].clickFocus();\n }\n };\n\n _this.onMouseMove = function (e) {\n if (!_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getMousePosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onTouchMove = function (e) {\n if (utils.isNotTouchEvent(e) || !_this.sliderRef) {\n _this.onEnd();\n\n return;\n }\n\n var position = utils.getTouchPosition(_this.props.vertical, e);\n\n _this.onMove(e, position - _this.dragOffset, _this.dragTrack, _this.startBounds);\n };\n\n _this.onKeyDown = function (e) {\n if (_this.sliderRef && utils.isEventFromHandle(e, _this.handlesRefs)) {\n _this.onKeyboard(e);\n }\n };\n\n _this.onClickMarkLabel = function (e, value) {\n e.stopPropagation();\n\n _this.onChange({\n value: value\n }); // eslint-disable-next-line react/no-unused-state\n\n\n _this.setState({\n value: value\n }, function () {\n return _this.onEnd(true);\n });\n };\n\n _this.saveSlider = function (slider) {\n _this.sliderRef = slider;\n };\n\n var step = props.step,\n max = props.max,\n min = props.min;\n var isPointDiffEven = isFinite(max - min) ? (max - min) % step === 0 : true; // eslint-disable-line\n\n warning(step && Math.floor(step) === step ? isPointDiffEven : true, \"Slider[max] - Slider[min] (\".concat(max - min, \") should be a multiple of Slider[step] (\").concat(step, \")\"));\n _this.handlesRefs = {};\n return _this;\n }\n\n _createClass(ComponentEnhancer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Snapshot testing cannot handle refs, so be sure to null-check this.\n this.document = this.sliderRef && this.sliderRef.ownerDocument;\n var _this$props3 = this.props,\n autoFocus = _this$props3.autoFocus,\n disabled = _this$props3.disabled;\n\n if (autoFocus && !disabled) {\n this.focus();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (_get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this)) _get(_getPrototypeOf(ComponentEnhancer.prototype), \"componentWillUnmount\", this).call(this);\n this.removeDocumentEvents();\n }\n }, {\n key: \"getSliderStart\",\n value: function getSliderStart() {\n var slider = this.sliderRef;\n var _this$props4 = this.props,\n vertical = _this$props4.vertical,\n reverse = _this$props4.reverse;\n var rect = slider.getBoundingClientRect();\n\n if (vertical) {\n return reverse ? rect.bottom : rect.top;\n }\n\n return window.pageXOffset + (reverse ? rect.right : rect.left);\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n var slider = this.sliderRef;\n\n if (!slider) {\n return 0;\n }\n\n var coords = slider.getBoundingClientRect();\n return this.props.vertical ? coords.height : coords.width;\n }\n }, {\n key: \"addDocumentTouchEvents\",\n value: function addDocumentTouchEvents() {\n // just work for Chrome iOS Safari and Android Browser\n this.onTouchMoveListener = addEventListener(this.document, 'touchmove', this.onTouchMove);\n this.onTouchUpListener = addEventListener(this.document, 'touchend', this.onEnd);\n }\n }, {\n key: \"addDocumentMouseEvents\",\n value: function addDocumentMouseEvents() {\n this.onMouseMoveListener = addEventListener(this.document, 'mousemove', this.onMouseMove);\n this.onMouseUpListener = addEventListener(this.document, 'mouseup', this.onEnd);\n }\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {\n /* eslint-disable @typescript-eslint/no-unused-expressions */\n this.onTouchMoveListener && this.onTouchMoveListener.remove();\n this.onTouchUpListener && this.onTouchUpListener.remove();\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseUpListener && this.onMouseUpListener.remove();\n /* eslint-enable no-unused-expressions */\n }\n }, {\n key: \"focus\",\n value: function focus() {\n var _this$handlesRefs$;\n\n if (this.props.disabled) {\n return;\n }\n\n (_this$handlesRefs$ = this.handlesRefs[0]) === null || _this$handlesRefs$ === void 0 ? void 0 : _this$handlesRefs$.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n var _this2 = this;\n\n if (this.props.disabled) {\n return;\n }\n\n Object.keys(this.handlesRefs).forEach(function (key) {\n var _this2$handlesRefs$ke, _this2$handlesRefs$ke2;\n\n (_this2$handlesRefs$ke = _this2.handlesRefs[key]) === null || _this2$handlesRefs$ke === void 0 ? void 0 : (_this2$handlesRefs$ke2 = _this2$handlesRefs$ke.blur) === null || _this2$handlesRefs$ke2 === void 0 ? void 0 : _this2$handlesRefs$ke2.call(_this2$handlesRefs$ke);\n });\n }\n }, {\n key: \"calcValue\",\n value: function calcValue(offset) {\n var _this$props5 = this.props,\n vertical = _this$props5.vertical,\n min = _this$props5.min,\n max = _this$props5.max;\n var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());\n var value = vertical ? (1 - ratio) * (max - min) + min : ratio * (max - min) + min;\n return value;\n }\n }, {\n key: \"calcValueByPos\",\n value: function calcValueByPos(position) {\n var sign = this.props.reverse ? -1 : +1;\n var pixelOffset = sign * (position - this.getSliderStart());\n var nextValue = this.trimAlignValue(this.calcValue(pixelOffset));\n return nextValue;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n var _this$props6 = this.props,\n min = _this$props6.min,\n max = _this$props6.max;\n var ratio = (value - min) / (max - min);\n return Math.max(0, ratio * 100);\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, handle) {\n this.handlesRefs[index] = handle;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _this$props7 = this.props,\n prefixCls = _this$props7.prefixCls,\n className = _this$props7.className,\n marks = _this$props7.marks,\n dots = _this$props7.dots,\n step = _this$props7.step,\n included = _this$props7.included,\n disabled = _this$props7.disabled,\n vertical = _this$props7.vertical,\n reverse = _this$props7.reverse,\n min = _this$props7.min,\n max = _this$props7.max,\n children = _this$props7.children,\n maximumTrackStyle = _this$props7.maximumTrackStyle,\n style = _this$props7.style,\n railStyle = _this$props7.railStyle,\n dotStyle = _this$props7.dotStyle,\n activeDotStyle = _this$props7.activeDotStyle;\n\n var _get$call = _get(_getPrototypeOf(ComponentEnhancer.prototype), \"render\", this).call(this),\n tracks = _get$call.tracks,\n handles = _get$call.handles;\n\n var sliderClassName = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-marks\"), Object.keys(marks).length), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-vertical\"), vertical), _defineProperty(_classNames, className, className), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: this.saveSlider,\n className: sliderClassName,\n onTouchStart: disabled ? noop : this.onTouchStart,\n onMouseDown: disabled ? noop : this.onMouseDown,\n onMouseUp: disabled ? noop : this.onMouseUp,\n onKeyDown: disabled ? noop : this.onKeyDown,\n onFocus: disabled ? noop : this.onFocus,\n onBlur: disabled ? noop : this.onBlur,\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-rail\"),\n style: _objectSpread(_objectSpread({}, maximumTrackStyle), railStyle)\n }), tracks, /*#__PURE__*/React.createElement(Steps, {\n prefixCls: prefixCls,\n vertical: vertical,\n reverse: reverse,\n marks: marks,\n dots: dots,\n step: step,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n dotStyle: dotStyle,\n activeDotStyle: activeDotStyle\n }), handles, /*#__PURE__*/React.createElement(Marks, {\n className: \"\".concat(prefixCls, \"-mark\"),\n onClickLabel: disabled ? noop : this.onClickMarkLabel,\n vertical: vertical,\n marks: marks,\n included: included,\n lowerBound: this.getLowerBound(),\n upperBound: this.getUpperBound(),\n max: max,\n min: min,\n reverse: reverse\n }), children);\n }\n }]);\n\n return ComponentEnhancer;\n }(Component), _a.displayName = \"ComponentEnhancer(\".concat(Component.displayName, \")\"), _a.defaultProps = _objectSpread(_objectSpread({}, Component.defaultProps), {}, {\n prefixCls: 'rc-slider',\n className: '',\n min: 0,\n max: 100,\n step: 1,\n marks: {},\n handle: function handle(props) {\n var index = props.index,\n restProps = _objectWithoutProperties(props, [\"index\"]);\n\n delete restProps.dragging;\n\n if (restProps.value === null) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n key: index\n }));\n },\n onBeforeChange: noop,\n onChange: noop,\n onAfterChange: noop,\n included: true,\n disabled: false,\n dots: false,\n vertical: false,\n reverse: false,\n trackStyle: [{}],\n handleStyle: [{}],\n railStyle: {},\n dotStyle: {},\n activeDotStyle: {}\n }), _a;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n /* eslint-enable */\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n return [];\n };\n\n _this.onEnd = function (force) {\n var dragging = _this.state.dragging;\n\n _this.removeDocumentEvents();\n\n if (dragging || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n dragging: false\n });\n };\n\n var defaultValue = props.defaultValue !== undefined ? props.defaultValue : props.min;\n var value = props.value !== undefined ? props.value : defaultValue;\n _this.state = {\n value: _this.trimAlignValue(value),\n dragging: false\n };\n warning(!('minimumTrackStyle' in props), 'minimumTrackStyle will be deprecated, please use trackStyle instead.');\n warning(!('maximumTrackStyle' in props), 'maximumTrackStyle will be deprecated, please use railStyle instead.');\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Slider, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props = this.props,\n min = _this$props.min,\n max = _this$props.max,\n value = _this$props.value,\n onChange = _this$props.onChange;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n var theValue = value !== undefined ? value : prevState.value;\n var nextValue = this.trimAlignValue(theValue, this.props);\n\n if (nextValue === prevState.value) {\n return;\n } // eslint-disable-next-line\n\n\n this.setState({\n value: nextValue\n });\n\n if (!(min === prevProps.min && max === prevProps.max) && utils.isValueOutOfRange(theValue, this.props)) {\n onChange(nextValue);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n var nextState = state.value > this.props.max ? _objectSpread(_objectSpread({}, state), {}, {\n value: this.props.max\n }) : state;\n\n if (isNotControlled) {\n this.setState(nextState);\n }\n\n var changedValue = nextState.value;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n this.setState({\n dragging: true\n });\n var props = this.props;\n var prevValue = this.getValue();\n props.onBeforeChange(prevValue);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n if (value === prevValue) return;\n this.prevMovedHandleIndex = 0;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position) {\n utils.pauseEvent(e);\n var oldValue = this.state.value;\n var value = this.calcValueByPos(position);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state;\n var oldValue = state.value;\n var mutatedValue = valueMutator(oldValue, this.props);\n var value = this.trimAlignValue(mutatedValue);\n if (value === oldValue) return;\n this.onChange({\n value: value\n });\n this.props.onAfterChange(value);\n this.onEnd();\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.value;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n var minPoint = this.props.startPoint || this.props.min;\n return this.state.value > minPoint ? minPoint : this.state.value;\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n if (this.state.value < this.props.startPoint) {\n return this.props.startPoint;\n }\n\n return this.state.value;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(v) {\n var nextProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (v === null) {\n return null;\n }\n\n var mergedProps = _objectSpread(_objectSpread({}, this.props), nextProps);\n\n var val = utils.ensureValueInRange(v, mergedProps);\n return utils.ensureValuePrecision(val, mergedProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props3 = this.props,\n prefixCls = _this$props3.prefixCls,\n vertical = _this$props3.vertical,\n included = _this$props3.included,\n disabled = _this$props3.disabled,\n minimumTrackStyle = _this$props3.minimumTrackStyle,\n trackStyle = _this$props3.trackStyle,\n handleStyle = _this$props3.handleStyle,\n tabIndex = _this$props3.tabIndex,\n ariaLabelForHandle = _this$props3.ariaLabelForHandle,\n ariaLabelledByForHandle = _this$props3.ariaLabelledByForHandle,\n ariaValueTextFormatterForHandle = _this$props3.ariaValueTextFormatterForHandle,\n min = _this$props3.min,\n max = _this$props3.max,\n startPoint = _this$props3.startPoint,\n reverse = _this$props3.reverse,\n handleGenerator = _this$props3.handle;\n var _this$state = this.state,\n value = _this$state.value,\n dragging = _this$state.dragging;\n var offset = this.calcOffset(value);\n var handle = handleGenerator({\n className: \"\".concat(prefixCls, \"-handle\"),\n prefixCls: prefixCls,\n vertical: vertical,\n offset: offset,\n value: value,\n dragging: dragging,\n disabled: disabled,\n min: min,\n max: max,\n reverse: reverse,\n index: 0,\n tabIndex: tabIndex,\n ariaLabel: ariaLabelForHandle,\n ariaLabelledBy: ariaLabelledByForHandle,\n ariaValueTextFormatter: ariaValueTextFormatterForHandle,\n style: handleStyle[0] || handleStyle,\n ref: function ref(h) {\n return _this2.saveHandle(0, h);\n }\n });\n var trackOffset = startPoint !== undefined ? this.calcOffset(startPoint) : 0;\n var mergedTrackStyle = trackStyle[0] || trackStyle;\n var track = /*#__PURE__*/React.createElement(Track, {\n className: \"\".concat(prefixCls, \"-track\"),\n vertical: vertical,\n included: included,\n offset: trackOffset,\n reverse: reverse,\n length: offset - trackOffset,\n style: _objectSpread(_objectSpread({}, minimumTrackStyle), mergedTrackStyle)\n });\n return {\n tracks: track,\n handles: handle\n };\n }\n }]);\n\n return Slider;\n}(React.Component);\n\nexport default createSlider(Slider);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport Track from './common/Track';\nimport createSlider from './common/createSlider';\nimport * as utils from './utils';\n\nvar _trimAlignValue = function trimAlignValue(_ref) {\n var value = _ref.value,\n handle = _ref.handle,\n bounds = _ref.bounds,\n props = _ref.props;\n var allowCross = props.allowCross,\n pushable = props.pushable;\n var thershold = Number(pushable);\n var valInRange = utils.ensureValueInRange(value, props);\n var valNotConflict = valInRange;\n\n if (!allowCross && handle != null && bounds !== undefined) {\n if (handle > 0 && valInRange <= bounds[handle - 1] + thershold) {\n valNotConflict = bounds[handle - 1] + thershold;\n }\n\n if (handle < bounds.length - 1 && valInRange >= bounds[handle + 1] - thershold) {\n valNotConflict = bounds[handle + 1] - thershold;\n }\n }\n\n return utils.ensureValuePrecision(valNotConflict, props);\n};\n\nvar Range = /*#__PURE__*/function (_React$Component) {\n _inherits(Range, _React$Component);\n\n var _super = _createSuper(Range);\n\n function Range(props) {\n var _this;\n\n _classCallCheck(this, Range);\n\n _this = _super.call(this, props);\n\n _this.positionGetValue = function (position) {\n var bounds = _this.getValue();\n\n var value = _this.calcValueByPos(position);\n\n var closestBound = _this.getClosestBound(value);\n\n var index = _this.getBoundNeedMoving(value, closestBound);\n\n var prevValue = bounds[index];\n if (value === prevValue) return null;\n\n var nextBounds = _toConsumableArray(bounds);\n\n nextBounds[index] = value;\n return nextBounds;\n };\n\n _this.onEnd = function (force) {\n var handle = _this.state.handle;\n\n _this.removeDocumentEvents();\n\n if (!handle) {\n _this.dragTrack = false;\n }\n\n if (handle !== null || force) {\n _this.props.onAfterChange(_this.getValue());\n }\n\n _this.setState({\n handle: null\n });\n };\n\n var count = props.count,\n min = props.min,\n max = props.max;\n var initialValue = Array.apply(void 0, _toConsumableArray(Array(count + 1))).map(function () {\n return min;\n });\n var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;\n var value = props.value !== undefined ? props.value : defaultValue;\n var bounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n var recent = bounds[0] === max ? 0 : bounds.length - 1;\n _this.state = {\n handle: null,\n recent: recent,\n bounds: bounds\n };\n return _this;\n }\n /**\n * [Legacy] Used for inherit other component.\n * It's a bad code style which should be refactor.\n */\n\n /* eslint-disable @typescript-eslint/no-unused-vars, class-methods-use-this */\n\n\n _createClass(Range, [{\n key: \"calcValueByPos\",\n value: function calcValueByPos(value) {\n return 0;\n }\n }, {\n key: \"getSliderLength\",\n value: function getSliderLength() {\n return 0;\n }\n }, {\n key: \"calcOffset\",\n value: function calcOffset(value) {\n return 0;\n }\n }, {\n key: \"saveHandle\",\n value: function saveHandle(index, h) {}\n }, {\n key: \"removeDocumentEvents\",\n value: function removeDocumentEvents() {}\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _this$props = this.props,\n onChange = _this$props.onChange,\n value = _this$props.value,\n min = _this$props.min,\n max = _this$props.max;\n\n if (!('min' in this.props || 'max' in this.props)) {\n return;\n }\n\n if (min === prevProps.min && max === prevProps.max) {\n return;\n }\n\n var currentValue = value || prevState.bounds;\n\n if (currentValue.some(function (v) {\n return utils.isValueOutOfRange(v, _this2.props);\n })) {\n var newValues = currentValue.map(function (v) {\n return utils.ensureValueInRange(v, _this2.props);\n });\n onChange(newValues);\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(state) {\n var props = this.props;\n var isNotControlled = !('value' in props);\n\n if (isNotControlled) {\n this.setState(state);\n } else {\n var controlledState = {};\n ['handle', 'recent'].forEach(function (item) {\n if (state[item] !== undefined) {\n controlledState[item] = state[item];\n }\n });\n\n if (Object.keys(controlledState).length) {\n this.setState(controlledState);\n }\n }\n\n var data = _objectSpread(_objectSpread({}, this.state), state);\n\n var changedValue = data.bounds;\n props.onChange(changedValue);\n }\n }, {\n key: \"onStart\",\n value: function onStart(position) {\n var props = this.props,\n state = this.state;\n var bounds = this.getValue();\n props.onBeforeChange(bounds);\n var value = this.calcValueByPos(position);\n this.startValue = value;\n this.startPosition = position;\n var closestBound = this.getClosestBound(value);\n this.prevMovedHandleIndex = this.getBoundNeedMoving(value, closestBound);\n this.setState({\n handle: this.prevMovedHandleIndex,\n recent: this.prevMovedHandleIndex\n });\n var prevValue = bounds[this.prevMovedHandleIndex];\n if (value === prevValue) return;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n nextBounds[this.prevMovedHandleIndex] = value;\n this.onChange({\n bounds: nextBounds\n });\n }\n }, {\n key: \"onMove\",\n value: function onMove(e, position, dragTrack, startBounds) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var maxValue = props.max || 100;\n var minValue = props.min || 0;\n\n if (dragTrack) {\n var pos = props.vertical ? -position : position;\n pos = props.reverse ? -pos : pos;\n var max = maxValue - Math.max.apply(Math, _toConsumableArray(startBounds));\n var min = minValue - Math.min.apply(Math, _toConsumableArray(startBounds));\n var ratio = Math.min(Math.max(pos / (this.getSliderLength() / (maxValue - minValue)), min), max);\n var nextBounds = startBounds.map(function (v) {\n return Math.floor(Math.max(Math.min(v + ratio, maxValue), minValue));\n });\n\n if (state.bounds.map(function (c, i) {\n return c === nextBounds[i];\n }).some(function (c) {\n return !c;\n })) {\n this.onChange({\n bounds: nextBounds\n });\n }\n\n return;\n }\n\n var value = this.calcValueByPos(position);\n var oldValue = state.bounds[state.handle];\n if (value === oldValue) return;\n this.moveTo(value);\n }\n }, {\n key: \"onKeyboard\",\n value: function onKeyboard(e) {\n var _this$props2 = this.props,\n reverse = _this$props2.reverse,\n vertical = _this$props2.vertical;\n var valueMutator = utils.getKeyboardValueMutator(e, vertical, reverse);\n\n if (valueMutator) {\n utils.pauseEvent(e);\n var state = this.state,\n props = this.props;\n var bounds = state.bounds,\n handle = state.handle;\n var oldValue = bounds[handle === null ? state.recent : handle];\n var mutatedValue = valueMutator(oldValue, props);\n\n var value = _trimAlignValue({\n value: mutatedValue,\n handle: handle,\n bounds: state.bounds,\n props: props\n });\n\n if (value === oldValue) return;\n var isFromKeyboardEvent = true;\n this.moveTo(value, isFromKeyboardEvent);\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.state.bounds;\n }\n }, {\n key: \"getClosestBound\",\n value: function getClosestBound(value) {\n var bounds = this.state.bounds;\n var closestBound = 0;\n\n for (var i = 1; i < bounds.length - 1; i += 1) {\n if (value >= bounds[i]) {\n closestBound = i;\n }\n }\n\n if (Math.abs(bounds[closestBound + 1] - value) < Math.abs(bounds[closestBound] - value)) {\n closestBound += 1;\n }\n\n return closestBound;\n }\n }, {\n key: \"getBoundNeedMoving\",\n value: function getBoundNeedMoving(value, closestBound) {\n var _this$state = this.state,\n bounds = _this$state.bounds,\n recent = _this$state.recent;\n var boundNeedMoving = closestBound;\n var isAtTheSamePoint = bounds[closestBound + 1] === bounds[closestBound];\n\n if (isAtTheSamePoint && bounds[recent] === bounds[closestBound]) {\n boundNeedMoving = recent;\n }\n\n if (isAtTheSamePoint && value !== bounds[closestBound + 1]) {\n boundNeedMoving = value < bounds[closestBound + 1] ? closestBound : closestBound + 1;\n }\n\n return boundNeedMoving;\n }\n }, {\n key: \"getLowerBound\",\n value: function getLowerBound() {\n return this.state.bounds[0];\n }\n }, {\n key: \"getUpperBound\",\n value: function getUpperBound() {\n var bounds = this.state.bounds;\n return bounds[bounds.length - 1];\n }\n /**\n * Returns an array of possible slider points, taking into account both\n * `marks` and `step`. The result is cached.\n */\n\n }, {\n key: \"getPoints\",\n value: function getPoints() {\n var _this$props3 = this.props,\n marks = _this$props3.marks,\n step = _this$props3.step,\n min = _this$props3.min,\n max = _this$props3.max;\n var cache = this.internalPointsCache;\n\n if (!cache || cache.marks !== marks || cache.step !== step) {\n var pointsObject = _objectSpread({}, marks);\n\n if (step !== null) {\n for (var point = min; point <= max; point += step) {\n pointsObject[point] = point;\n }\n }\n\n var points = Object.keys(pointsObject).map(parseFloat);\n points.sort(function (a, b) {\n return a - b;\n });\n this.internalPointsCache = {\n marks: marks,\n step: step,\n points: points\n };\n }\n\n return this.internalPointsCache.points;\n }\n }, {\n key: \"moveTo\",\n value: function moveTo(value, isFromKeyboardEvent) {\n var _this3 = this;\n\n var state = this.state,\n props = this.props;\n\n var nextBounds = _toConsumableArray(state.bounds);\n\n var handle = state.handle === null ? state.recent : state.handle;\n nextBounds[handle] = value;\n var nextHandle = handle;\n\n if (props.pushable !== false) {\n this.pushSurroundingHandles(nextBounds, nextHandle);\n } else if (props.allowCross) {\n nextBounds.sort(function (a, b) {\n return a - b;\n });\n nextHandle = nextBounds.indexOf(value);\n }\n\n this.onChange({\n recent: nextHandle,\n handle: nextHandle,\n bounds: nextBounds\n });\n\n if (isFromKeyboardEvent) {\n // known problem: because setState is async,\n // so trigger focus will invoke handler's onEnd and another handler's onStart too early,\n // cause onBeforeChange and onAfterChange receive wrong value.\n // here use setState callback to hack,but not elegant\n this.props.onAfterChange(nextBounds);\n this.setState({}, function () {\n _this3.handlesRefs[nextHandle].focus();\n });\n this.onEnd();\n }\n }\n }, {\n key: \"pushSurroundingHandles\",\n value: function pushSurroundingHandles(bounds, handle) {\n var value = bounds[handle];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var direction = 0;\n\n if (bounds[handle + 1] - value < threshold) {\n direction = +1; // push to right\n }\n\n if (value - bounds[handle - 1] < threshold) {\n direction = -1; // push to left\n }\n\n if (direction === 0) {\n return;\n }\n\n var nextHandle = handle + direction;\n var diffToNext = direction * (bounds[nextHandle] - value);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // revert to original value if pushing is impossible\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = bounds[nextHandle] - direction * threshold;\n }\n }\n }, {\n key: \"pushHandle\",\n value: function pushHandle(bounds, handle, direction, amount) {\n var originalValue = bounds[handle];\n var currentValue = bounds[handle];\n\n while (direction * (currentValue - originalValue) < amount) {\n if (!this.pushHandleOnePoint(bounds, handle, direction)) {\n // can't push handle enough to create the needed `amount` gap, so we\n // revert its position to the original value\n // eslint-disable-next-line no-param-reassign\n bounds[handle] = originalValue;\n return false;\n }\n\n currentValue = bounds[handle];\n } // the handle was pushed enough to create the needed `amount` gap\n\n\n return true;\n }\n }, {\n key: \"pushHandleOnePoint\",\n value: function pushHandleOnePoint(bounds, handle, direction) {\n var points = this.getPoints();\n var pointIndex = points.indexOf(bounds[handle]);\n var nextPointIndex = pointIndex + direction;\n\n if (nextPointIndex >= points.length || nextPointIndex < 0) {\n // reached the minimum or maximum available point, can't push anymore\n return false;\n }\n\n var nextHandle = handle + direction;\n var nextValue = points[nextPointIndex];\n var pushable = this.props.pushable;\n var threshold = Number(pushable);\n var diffToNext = direction * (bounds[nextHandle] - nextValue);\n\n if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {\n // couldn't push next handle, so we won't push this one either\n return false;\n } // push the handle\n // eslint-disable-next-line no-param-reassign\n\n\n bounds[handle] = nextValue;\n return true;\n }\n }, {\n key: \"trimAlignValue\",\n value: function trimAlignValue(value) {\n var _this$state2 = this.state,\n handle = _this$state2.handle,\n bounds = _this$state2.bounds;\n return _trimAlignValue({\n value: value,\n handle: handle,\n bounds: bounds,\n props: this.props\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$state3 = this.state,\n handle = _this$state3.handle,\n bounds = _this$state3.bounds;\n var _this$props4 = this.props,\n prefixCls = _this$props4.prefixCls,\n vertical = _this$props4.vertical,\n included = _this$props4.included,\n disabled = _this$props4.disabled,\n min = _this$props4.min,\n max = _this$props4.max,\n reverse = _this$props4.reverse,\n handleGenerator = _this$props4.handle,\n trackStyle = _this$props4.trackStyle,\n handleStyle = _this$props4.handleStyle,\n tabIndex = _this$props4.tabIndex,\n ariaLabelGroupForHandles = _this$props4.ariaLabelGroupForHandles,\n ariaLabelledByGroupForHandles = _this$props4.ariaLabelledByGroupForHandles,\n ariaValueTextFormatterGroupForHandles = _this$props4.ariaValueTextFormatterGroupForHandles;\n var offsets = bounds.map(function (v) {\n return _this4.calcOffset(v);\n });\n var handleClassName = \"\".concat(prefixCls, \"-handle\");\n var handles = bounds.map(function (v, i) {\n var _classNames;\n\n var mergedTabIndex = tabIndex[i] || 0;\n\n if (disabled || tabIndex[i] === null) {\n mergedTabIndex = null;\n }\n\n var dragging = handle === i;\n return handleGenerator({\n className: classNames((_classNames = {}, _defineProperty(_classNames, handleClassName, true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-\").concat(i + 1), true), _defineProperty(_classNames, \"\".concat(handleClassName, \"-dragging\"), dragging), _classNames)),\n prefixCls: prefixCls,\n vertical: vertical,\n dragging: dragging,\n offset: offsets[i],\n value: v,\n index: i,\n tabIndex: mergedTabIndex,\n min: min,\n max: max,\n reverse: reverse,\n disabled: disabled,\n style: handleStyle[i],\n ref: function ref(h) {\n return _this4.saveHandle(i, h);\n },\n ariaLabel: ariaLabelGroupForHandles[i],\n ariaLabelledBy: ariaLabelledByGroupForHandles[i],\n ariaValueTextFormatter: ariaValueTextFormatterGroupForHandles[i]\n });\n });\n var tracks = bounds.slice(0, -1).map(function (_, index) {\n var _classNames2;\n\n var i = index + 1;\n var trackClassName = classNames((_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track\"), true), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-track-\").concat(i), true), _classNames2));\n return /*#__PURE__*/React.createElement(Track, {\n className: trackClassName,\n vertical: vertical,\n reverse: reverse,\n included: included,\n offset: offsets[i - 1],\n length: offsets[i] - offsets[i - 1],\n style: trackStyle[index],\n key: i\n });\n });\n return {\n tracks: tracks,\n handles: handles\n };\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if (!('value' in props || 'min' in props || 'max' in props)) {\n return null;\n }\n\n var value = props.value || state.bounds;\n var nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n bounds: state.bounds,\n props: props\n });\n });\n\n if (state.bounds.length === nextBounds.length) {\n if (nextBounds.every(function (v, i) {\n return v === state.bounds[i];\n })) {\n return null;\n }\n } else {\n nextBounds = value.map(function (v, i) {\n return _trimAlignValue({\n value: v,\n handle: i,\n props: props\n });\n });\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n bounds: nextBounds\n });\n }\n }]);\n\n return Range;\n}(React.Component);\n/* eslint-enable */\n\n\nRange.displayName = 'Range';\nRange.defaultProps = {\n count: 1,\n allowCross: true,\n pushable: false,\n draggableTrack: false,\n tabIndex: [],\n ariaLabelGroupForHandles: [],\n ariaLabelledByGroupForHandles: [],\n ariaValueTextFormatterGroupForHandles: []\n};\nexport default createSlider(Range);","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(id);\n return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n wrapperRaf.ids = function () {\n return rafIds;\n };\n}\nexport default wrapperRaf;","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Retrieves a DOM node via a ref, and does not invoke `findDOMNode`.\n */\nexport function getDOM(node) {\n if (node && _typeof(node) === 'object' && isDOM(node.nativeElement)) {\n return node.nativeElement;\n }\n if (isDOM(node)) {\n return node;\n }\n return null;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n var domNode = getDOM(node);\n if (domNode) {\n return domNode;\n }\n if (node instanceof React.Component) {\n var _ReactDOM$findDOMNode;\n return (_ReactDOM$findDOMNode = ReactDOM.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(ReactDOM, node);\n }\n return null;\n}","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isValidElement, version } from 'react';\nimport { ForwardRef, isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport var fillRef = function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n};\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport var composeRef = function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(Boolean);\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n};\nexport var useComposeRef = function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n};\nexport var supportRef = function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== ForwardRef) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== ForwardRef) {\n return false;\n }\n return true;\n};\nfunction isReactElement(node) {\n return /*#__PURE__*/isValidElement(node) && !isFragment(node);\n}\nexport var supportNodeRef = function supportNodeRef(node) {\n return isReactElement(node) && supportRef(node);\n};\n\n/**\n * In React 19. `ref` is not a property from node.\n * But a property from `props.ref`.\n * To check if `props.ref` exist or fallback to `ref`.\n */\nexport var getNodeRef = Number(version.split('.')[0]) >= 19 ?\n// >= React 19\nfunction (node) {\n if (isReactElement(node)) {\n return node.props.ref;\n }\n return null;\n} :\n// < React 19\nfunction (node) {\n if (isReactElement(node)) {\n return node.ref;\n }\n return null;\n};","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import { useRef, useEffect, forwardRef, useImperativeHandle } from 'react';\nimport ReactDOM from 'react-dom';\nimport canUseDom from \"./Dom/canUseDom\";\nvar Portal = /*#__PURE__*/forwardRef(function (props, ref) {\n var didUpdate = props.didUpdate,\n getContainer = props.getContainer,\n children = props.children;\n var parentRef = useRef();\n var containerRef = useRef();\n\n // Ref return nothing, only for wrapper check exist\n useImperativeHandle(ref, function () {\n return {};\n });\n\n // Create container in client side with sync to avoid useEffect not get ref\n var initRef = useRef(false);\n if (!initRef.current && canUseDom()) {\n containerRef.current = getContainer();\n parentRef.current = containerRef.current.parentNode;\n initRef.current = true;\n }\n\n // [Legacy] Used by `rc-trigger`\n useEffect(function () {\n didUpdate === null || didUpdate === void 0 || didUpdate(props);\n });\n useEffect(function () {\n // Restore container to original place\n // React 18 StrictMode will unmount first and mount back for effect test:\n // https://reactjs.org/blog/2022/03/29/react-v18.html#new-strict-mode-behaviors\n if (containerRef.current.parentNode === null && parentRef.current !== null) {\n parentRef.current.appendChild(containerRef.current);\n }\n return function () {\n var _containerRef$current;\n // [Legacy] This should not be handle by Portal but parent PortalWrapper instead.\n // Since some component use `Portal` directly, we have to keep the logic here.\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 || (_containerRef$current = _containerRef$current.parentNode) === null || _containerRef$current === void 0 || _containerRef$current.removeChild(containerRef.current);\n };\n }, []);\n return containerRef.current ? /*#__PURE__*/ReactDOM.createPortal(children, containerRef.current) : null;\n});\nexport default Portal;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _objectSpread(_objectSpread({}, baseAlign), align);\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n\n for (var i = 0; i < placements.length; i += 1) {\n var placement = placements[i];\n\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n\n return '';\n}","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: props\n }, children);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n var prefixMap = vendorPrefixes[eventName];\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (onInternalMotionEnd) {\n var cacheElementRef = useRef();\n\n // Remove events\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n }\n\n // Patch events\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd);\n\n // Save as cache in case dom removed trigger by `motionDeadline`\n cacheElementRef.current = element;\n }\n }\n\n // Clean up when removed\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { useEffect, useLayoutEffect } from 'react';\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else if (nextStep) {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n\n // =========================== Dom Node ===========================\n function getDomElement() {\n return getElement();\n }\n\n // ========================== Motion End ==========================\n var activeRef = useRef(false);\n\n /**\n * Clean up status & style\n */\n function updateMotionEndStatus() {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n var onInternalMotionEnd = useEvent(function (event) {\n // Do nothing since not in any transition status.\n // This may happen when `motionDeadline` trigger.\n if (status === STATUS_NONE) {\n return;\n }\n var element = getDomElement();\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n var currentActive = activeRef.current;\n var canEnd;\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n }\n\n // Only update status when `canEnd` and not destroyed\n if (currentActive && canEnd !== false) {\n updateMotionEndStatus();\n }\n });\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0];\n\n // ============================= Step =============================\n var getEventHandlers = function getEventHandlers(targetStatus) {\n switch (targetStatus) {\n case STATUS_APPEAR:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onAppearPrepare), STEP_START, onAppearStart), STEP_ACTIVE, onAppearActive);\n case STATUS_ENTER:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onEnterPrepare), STEP_START, onEnterStart), STEP_ACTIVE, onEnterActive);\n case STATUS_LEAVE:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onLeavePrepare), STEP_START, onLeaveStart), STEP_ACTIVE, onLeaveActive);\n default:\n return {};\n }\n };\n var eventHandlers = React.useMemo(function () {\n return getEventHandlers(status);\n }, [status]);\n var _useStepQueue = useStepQueue(status, !supportMotion, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n if (!onPrepare) {\n return SkipStep;\n }\n return onPrepare(getDomElement());\n }\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n if (step === STEP_ACTIVE && status !== STATUS_NONE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n if (step === STEP_PREPARED) {\n updateMotionEndStatus();\n }\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n var active = isActive(step);\n activeRef.current = active;\n\n // ============================ Status ============================\n // Update with new status\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n // if (!supportMotion) {\n // return;\n // }\n\n var nextStatus;\n\n // Appear\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n }\n\n // Enter\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n }\n\n // Leave\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n }\n var nextEventHandlers = getEventHandlers(nextStatus);\n\n // Update to next status\n if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n setStatus(nextStatus);\n startStep();\n } else {\n // Set back in case no motion but prev status has prepare step\n setStatus(STATUS_NONE);\n }\n }, [visible]);\n\n // ============================ Effect ============================\n // Reset when motion changed\n useEffect(function () {\n if (\n // Cancel appear\n status === STATUS_APPEAR && !motionAppear ||\n // Cancel enter\n status === STATUS_ENTER && !motionEnter ||\n // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []);\n\n // Trigger `onVisibleChanged`\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 || onVisibleChanged(asyncVisible);\n }\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]);\n\n // ============================ Styles ============================\n var mergedStyle = style;\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n function isSupportTransition(props, contextMotion) {\n return !!(props.motionName && transitionSupport && contextMotion !== false);\n }\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var _React$useContext = React.useContext(Context),\n contextMotion = _React$useContext.motion;\n var supportMotion = isSupportTransition(props, contextMotion);\n\n // Ref to the react node, it may be a HTMLElement\n var nodeRef = useRef();\n // Ref to the dom wrapper in case ref can not pass to HTMLElement\n var wrapperNodeRef = useRef();\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3];\n\n // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n var renderedRef = React.useRef(mergedVisible);\n if (mergedVisible) {\n renderedRef.current = true;\n }\n\n // ====================== Refs ======================\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]);\n\n // ===================== Render =====================\n var motionChildren;\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n // In motion\n var statusSuffix;\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), _defineProperty(_defineProperty({}, motionCls, motionCls && statusSuffix), motionName, typeof motionName === 'string')),\n style: statusStyle\n }), setNodeRef);\n }\n\n // Auto inject ref if child node not have `ref` props\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _ref = motionChildren,\n originNodeRef = _ref.ref;\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys);\n\n // Check prev keys to insert or keep\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n }\n\n // If not hit, it means key is removed\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n });\n\n // Add rest to the list\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n });\n\n // Update `STATUS_ADD` to `STATUS_KEEP`\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { diffKeys, parseKeys, STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED } from \"./util/diff\";\nimport { supportTransition } from \"./util/motion\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n var _super = _createSuper(CSSMotionList);\n function CSSMotionList() {\n var _this;\n _classCallCheck(this, CSSMotionList);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: []\n });\n // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n _this.setState({\n keyEntities: nextKeyEntities\n });\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n });\n return _this;\n }\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var keyEntities = this.state.keyEntities;\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 || _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), function (props, ref) {\n return children(_objectSpread(_objectSpread({}, props), {}, {\n index: index\n }), ref);\n });\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n });\n\n // Remove if already mark as removed\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n return true;\n })\n };\n }\n }]);\n return CSSMotionList;\n }(React.Component);\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { default as Provider } from \"./context\";\nexport { CSSMotionList };\nexport default CSSMotion;","export function getMotion(_ref) {\n var prefixCls = _ref.prefixCls,\n motion = _ref.motion,\n animation = _ref.animation,\n transitionName = _ref.transitionName;\n\n if (motion) {\n return motion;\n }\n\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n\n return null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/legacyUtil\";\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n mask = props.mask,\n maskMotion = props.maskMotion,\n maskAnimation = props.maskAnimation,\n maskTransitionName = props.maskTransitionName;\n\n if (!mask) {\n return null;\n }\n\n var motion = {};\n\n if (maskMotion || maskTransitionName || maskAnimation) {\n motion = _objectSpread({\n motionAppear: true\n }, getMotion({\n motion: maskMotion,\n prefixCls: prefixCls,\n transitionName: maskTransitionName,\n animation: maskAnimation\n }));\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n visible: visible,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n return vendorPrefix;\n}\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\nfunction setTransform(node, value) {\n var name = getTransformName();\n if (name) {\n node.style[name] = value;\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX;\n\n// https://stackoverflow.com/a/3485654/3040605\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n elem.style.display = originalStyle;\n}\nfunction css(el, name, v) {\n var value = v;\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n return undefined;\n }\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n el.style[name] = value;\n return undefined;\n }\n return getComputedStyleX(el, name);\n}\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement;\n // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n box = elem.getBoundingClientRect();\n\n // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = Math.floor(box.left);\n y = Math.floor(box.top);\n\n // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n if (typeof ret !== 'number') {\n var d = w.document;\n // ie6,7,8 standard mode\n ret = d.documentElement[method];\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n return ret;\n}\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n // must use == for ie8\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n if (node.nodeType === 9) {\n return node;\n }\n return node.ownerDocument;\n}\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);\n\n // https://github.com/kissyteam/kissy/issues/61\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n return val;\n}\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n // prevent flashing of content\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n // Put in the new values to get a computed value out\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX;\n\n // Revert the changed values\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n return ret === '' ? 'auto' : ret;\n}\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n return option.useCssBottom ? 'bottom' : dir;\n}\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n}\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n }\n // force relayout\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n css(elem, originalStyle);\n // force relayout\n forceRelayout(elem);\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n var ret = {};\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n var _off = offset[_key] - originalOffset[_key];\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n css(elem, ret);\n}\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n setTransformXY(elem, resultXY);\n}\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name;\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n return value;\n}\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max(\n // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)],\n // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop];\n // 标准模式取 documentElement\n // backcompat 取 body\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, ex) {\n var extra = ex;\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? Math.floor(elem.getBoundingClientRect().width) : Math.floor(elem.getBoundingClientRect().height);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined;\n // Fall back to computed then un computed css if necessary\n cssBoxValue = getComputedStyleX(elem, name);\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n }\n // Normalize '', auto, and prepare for extra\n cssBoxValue = Math.floor(parseFloat(cssBoxValue)) || 0;\n }\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var val;\n var elem = args[0];\n // in case elem is window\n // elem.offsetWidth === undefined\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n return val;\n}\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n domUtils[name] = function (elem, v) {\n var val = v;\n if (val !== undefined) {\n if (elem) {\n var isBorderBox = isBorderBoxFn(elem);\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n return css(elem, name, val);\n }\n return undefined;\n }\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n return to;\n}\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n var overflow = obj.overflow;\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * 得到会导致元素显示不全的祖先元素\n */\nvar getParent = utils.getParent;\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n }\n // ie 这个也不是完全可行\n /*\n
\n
\n 元素 6 高 100px 宽 50px
\n
\n
\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n for (parent = getParent$1(element);\n // 修复元素位于 document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n return false;\n}\n\n/**\n * 获得元素的显示部分的区域\n */\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement;\n\n // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&\n // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el);\n // add border\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right,\n // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n el = getOffsetParent(el);\n }\n\n // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n var originalPosition = null;\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight;\n\n // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n var bodyStyle = window.getComputedStyle(body);\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n }\n\n // Reset element position after calculate the visible area\n if (element.style) {\n element.style.position = originalPosition;\n }\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n }\n\n // Left edge inside and right edge outside viewport, try to resize it.\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n }\n\n // Right edge outside viewport, try to move it.\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // 保证左边界和可视区域左边界对齐\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n }\n\n // Top edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n }\n\n // Top edge inside and bottom edge outside viewport, try to resize it.\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n }\n\n // Bottom edge outside viewport, try to move it.\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // 保证上边界和可视区域上边界对齐\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\n\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\n// http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\nfunction convertOffset(str, offsetLen) {\n var n;\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n return n || 0;\n}\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport);\n // 当前节点可以被放置的显示区域\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport);\n // 当前节点所占的区域, left/top/width/height\n var elRegion = getRegion(source);\n // 将 offset 转换成数值,支持百分比\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion);\n // 当前节点将要被放置的位置\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n // 当前节点将要所处的区域\n var newElRegion = utils.merge(elRegion, elFuturePos);\n\n // 如果可视区域不能完全放置当前节点时允许调整\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横向不能放下\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n // 偏移量也反下\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n if (overflow.adjustY) {\n // 如果纵向不能放下\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对齐位置反下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n // 偏移量也反下\n var _newOffset = flipOffset(offset, 1);\n var _newTargetOffset = flipOffset(targetOffset, 1);\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n }\n\n // 如果失败,重新计算当前节点将要被放置的位置\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);\n // 检查反下后的位置是否可以放下了,如果仍然放不下:\n // 1. 复原修改过的定位参数\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points;\n\n // 重置对应部分的翻转逻辑\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n }\n // 2. 只有指定了可以调整当前方向才调整\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;\n\n // 确实要调整,甚至可能会调整高度宽度\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n }\n\n // need judge to in case set fixed with in css on height auto element\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n }\n\n // https://github.com/kissyteam/kissy/issues/190\n // 相对于屏幕位置没变,而 left/top 变了\n // 例如
\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对齐算法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - 增加智能对齐,以及大小调整选项\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight;\n\n // Provide default target point\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2(_objectSpread2({}, align), {}, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","import React from 'react';\nexport default (function (callback, buffer) {\n var calledRef = React.useRef(false);\n var timeoutRef = React.useRef(null);\n\n function cancelTrigger() {\n window.clearTimeout(timeoutRef.current);\n }\n\n function trigger(force) {\n cancelTrigger();\n\n if (!calledRef.current || force === true) {\n if (callback(force) === false) {\n // Not delay since callback cancelled self\n return;\n }\n\n calledRef.current = true;\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n }, buffer);\n } else {\n timeoutRef.current = window.setTimeout(function () {\n calledRef.current = false;\n trigger();\n }, buffer);\n }\n }\n\n return [trigger, function () {\n calledRef.current = false;\n cancelTrigger();\n }];\n});","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ResizeObserver from 'resize-observer-polyfill';\nimport contains from \"rc-util/es/Dom/contains\";\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement) && typeof activeElement.focus === 'function') {\n activeElement.focus();\n }\n}\nexport function monitorResize(element, callback) {\n var prevWidth = null;\n var prevHeight = null;\n\n function onResize(_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n target = _ref2[0].target;\n\n if (!document.documentElement.contains(target)) return;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n\n if (prevWidth !== fixedWidth || prevHeight !== fixedHeight) {\n // https://webkit.org/blog/9997/resizeobserver-in-webkit/\n Promise.resolve().then(function () {\n callback({\n width: fixedWidth,\n height: fixedHeight\n });\n });\n }\n\n prevWidth = fixedWidth;\n prevHeight = fixedHeight;\n }\n\n var resizeObserver = new ResizeObserver(onResize);\n\n if (element) {\n resizeObserver.observe(element);\n }\n\n return function () {\n resizeObserver.disconnect();\n };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/**\n * Removed props:\n * - childrenProps\n */\nimport { alignElement, alignPoint } from 'dom-align';\nimport isEqual from \"rc-util/es/isEqual\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useBuffer from \"./hooks/useBuffer\";\nimport { isSamePoint, monitorResize, restoreFocus } from \"./util\";\n\nfunction getElement(func) {\n if (typeof func !== 'function') return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (_typeof(point) !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function Align(_ref, ref) {\n var children = _ref.children,\n disabled = _ref.disabled,\n target = _ref.target,\n align = _ref.align,\n onAlign = _ref.onAlign,\n monitorWindowResize = _ref.monitorWindowResize,\n _ref$monitorBufferTim = _ref.monitorBufferTime,\n monitorBufferTime = _ref$monitorBufferTim === void 0 ? 0 : _ref$monitorBufferTim;\n var cacheRef = React.useRef({});\n /** Popup node ref */\n\n var nodeRef = React.useRef();\n var childNode = React.Children.only(children); // ===================== Align ======================\n // We save the props here to avoid closure makes props ood\n\n var forceAlignPropsRef = React.useRef({});\n forceAlignPropsRef.current.disabled = disabled;\n forceAlignPropsRef.current.target = target;\n forceAlignPropsRef.current.align = align;\n forceAlignPropsRef.current.onAlign = onAlign;\n\n var _useBuffer = useBuffer(function () {\n var _forceAlignPropsRef$c = forceAlignPropsRef.current,\n latestDisabled = _forceAlignPropsRef$c.disabled,\n latestTarget = _forceAlignPropsRef$c.target,\n latestAlign = _forceAlignPropsRef$c.align,\n latestOnAlign = _forceAlignPropsRef$c.onAlign;\n var source = nodeRef.current;\n\n if (!latestDisabled && latestTarget && source) {\n var _result;\n\n var _element = getElement(latestTarget);\n\n var _point = getPoint(latestTarget);\n\n cacheRef.current.element = _element;\n cacheRef.current.point = _point;\n cacheRef.current.align = latestAlign; // IE lose focus after element realign\n // We should record activeElement and restore later\n\n var _document = document,\n activeElement = _document.activeElement; // We only align when element is visible\n\n if (_element && isVisible(_element)) {\n _result = alignElement(source, _element, latestAlign);\n } else if (_point) {\n _result = alignPoint(source, _point, latestAlign);\n }\n\n restoreFocus(activeElement, source);\n\n if (latestOnAlign && _result) {\n latestOnAlign(source, _result);\n }\n\n return true;\n }\n\n return false;\n }, monitorBufferTime),\n _useBuffer2 = _slicedToArray(_useBuffer, 2),\n _forceAlign = _useBuffer2[0],\n cancelForceAlign = _useBuffer2[1]; // ===================== Effect =====================\n // Handle props change\n\n\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n point = _React$useState4[0],\n setPoint = _React$useState4[1];\n\n useLayoutEffect(function () {\n setElement(getElement(target));\n setPoint(getPoint(target));\n });\n React.useEffect(function () {\n if (cacheRef.current.element !== element || !isSamePoint(cacheRef.current.point, point) || !isEqual(cacheRef.current.align, align)) {\n _forceAlign();\n }\n }); // Watch popup element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(nodeRef.current, _forceAlign);\n return cancelFn;\n }, [nodeRef.current]); // Watch target element resize\n\n React.useEffect(function () {\n var cancelFn = monitorResize(element, _forceAlign);\n return cancelFn;\n }, [element]); // Listen for disabled change\n\n React.useEffect(function () {\n if (!disabled) {\n _forceAlign();\n } else {\n cancelForceAlign();\n }\n }, [disabled]); // Listen for window resize\n\n React.useEffect(function () {\n if (monitorWindowResize) {\n var cancelFn = addEventListener(window, 'resize', _forceAlign);\n return cancelFn.remove;\n }\n }, [monitorWindowResize]); // Clear all if unmount\n\n React.useEffect(function () {\n return function () {\n cancelForceAlign();\n };\n }, []); // ====================== Ref =======================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {\n return _forceAlign(true);\n }\n };\n }); // ===================== Render =====================\n\n if ( /*#__PURE__*/React.isValidElement(childNode)) {\n childNode = /*#__PURE__*/React.cloneElement(childNode, {\n ref: composeRef(childNode.ref, nodeRef)\n });\n }\n\n return childNode;\n};\n\nvar RcAlign = /*#__PURE__*/React.forwardRef(Align);\nRcAlign.displayName = 'Align';\nexport default RcAlign;","// export this package's api\nimport Align from \"./Align\";\nexport default Align;","import _typeof from \"./typeof.js\";\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nexport { _regeneratorRuntime as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef } from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useState from \"rc-util/es/hooks/useState\";\n/**\n * Popup should follow the steps for each component work correctly:\n * measure - check for the current stretch size\n * align - let component align the position\n * aligned - re-align again in case additional className changed the size\n * afterAlign - choice next step is trigger motion or finished\n * beforeMotion - should reset motion to invisible so that CSSMotion can do normal motion\n * motion - play the motion\n * stable - everything is done\n */\n\nvar StatusQueue = ['measure', 'alignPre', 'align', null, 'motion'];\nexport default (function (visible, doMeasure) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setInternalStatus = _useState2[1];\n\n var rafRef = useRef();\n\n function setStatus(nextStatus) {\n setInternalStatus(nextStatus, true);\n }\n\n function cancelRaf() {\n raf.cancel(rafRef.current);\n }\n\n function goNextStatus(callback) {\n cancelRaf();\n rafRef.current = raf(function () {\n // Only align should be manually trigger\n setStatus(function (prev) {\n switch (status) {\n case 'align':\n return 'motion';\n\n case 'motion':\n return 'stable';\n\n default:\n }\n\n return prev;\n });\n callback === null || callback === void 0 ? void 0 : callback();\n });\n } // Init status\n\n\n useEffect(function () {\n setStatus('measure');\n }, [visible]); // Go next status\n\n useEffect(function () {\n switch (status) {\n case 'measure':\n doMeasure();\n break;\n\n default:\n }\n\n if (status) {\n rafRef.current = raf( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n var index, nextStatus;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n index = StatusQueue.indexOf(status);\n nextStatus = StatusQueue[index + 1];\n\n if (nextStatus && index !== -1) {\n setStatus(nextStatus);\n }\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })));\n }\n }, [status]);\n useEffect(function () {\n return function () {\n cancelRaf();\n };\n }, []);\n return [status, goNextStatus];\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default (function (stretch) {\n var _React$useState = React.useState({\n width: 0,\n height: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n targetSize = _React$useState2[0],\n setTargetSize = _React$useState2[1];\n\n function measureStretch(element) {\n var tgtWidth = element.offsetWidth,\n tgtHeight = element.offsetHeight;\n\n var _element$getBoundingC = element.getBoundingClientRect(),\n width = _element$getBoundingC.width,\n height = _element$getBoundingC.height; // Rect is more accurate than offset, use if near\n\n\n if (Math.abs(tgtWidth - width) < 1 && Math.abs(tgtHeight - height) < 1) {\n tgtWidth = width;\n tgtHeight = height;\n }\n\n setTargetSize({\n width: tgtWidth,\n height: tgtHeight\n });\n } // Merge stretch style\n\n\n var style = React.useMemo(function () {\n var sizeStyle = {};\n\n if (stretch) {\n var width = targetSize.width,\n height = targetSize.height; // Stretch with target\n\n if (stretch.indexOf('height') !== -1 && height) {\n sizeStyle.height = height;\n } else if (stretch.indexOf('minHeight') !== -1 && height) {\n sizeStyle.minHeight = height;\n }\n\n if (stretch.indexOf('width') !== -1 && width) {\n sizeStyle.width = width;\n } else if (stretch.indexOf('minWidth') !== -1 && width) {\n sizeStyle.minWidth = width;\n }\n }\n\n return sizeStyle;\n }, [stretch, targetSize]);\n return [style, measureStretch];\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport Align from 'rc-align';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport useVisibleStatus from \"./useVisibleStatus\";\nimport { getMotion } from \"../utils/legacyUtil\";\nimport useStretchStyle from \"./useStretchStyle\";\nvar PopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n prefixCls = props.prefixCls,\n className = props.className,\n style = props.style,\n children = props.children,\n zIndex = props.zIndex,\n stretch = props.stretch,\n destroyPopupOnHide = props.destroyPopupOnHide,\n forceRender = props.forceRender,\n align = props.align,\n point = props.point,\n getRootDomNode = props.getRootDomNode,\n getClassNameFromAlign = props.getClassNameFromAlign,\n onAlign = props.onAlign,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onMouseDown = props.onMouseDown,\n onTouchStart = props.onTouchStart,\n onClick = props.onClick;\n var alignRef = useRef();\n var elementRef = useRef();\n\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n alignedClassName = _useState2[0],\n setAlignedClassName = _useState2[1]; // ======================= Measure ========================\n\n\n var _useStretchStyle = useStretchStyle(stretch),\n _useStretchStyle2 = _slicedToArray(_useStretchStyle, 2),\n stretchStyle = _useStretchStyle2[0],\n measureStretchStyle = _useStretchStyle2[1];\n\n function doMeasure() {\n if (stretch) {\n measureStretchStyle(getRootDomNode());\n }\n } // ======================== Status ========================\n\n\n var _useVisibleStatus = useVisibleStatus(visible, doMeasure),\n _useVisibleStatus2 = _slicedToArray(_useVisibleStatus, 2),\n status = _useVisibleStatus2[0],\n goNextStatus = _useVisibleStatus2[1]; // ======================== Aligns ========================\n\n /**\n * `alignedClassName` may modify `source` size,\n * which means one time align may not move to the correct position at once.\n *\n * We will reset `alignTimes` for each status switch to `alignPre`\n * and let `rc-align` to align for multiple times to ensure get final stable place.\n * Currently we mark `alignTimes < 2` repeat align, it will increase if user report for align issue.\n * \n * Update:\n * In React 18. `rc-align` effect of align may faster than ref called trigger `forceAlign`.\n * We adjust this to `alignTimes < 2`.\n * We need refactor `rc-align` to support mark of `forceAlign` call if this still happen.\n */\n\n\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n alignTimes = _useState4[0],\n setAlignTimes = _useState4[1];\n\n var prepareResolveRef = useRef();\n useLayoutEffect(function () {\n if (status === 'alignPre') {\n setAlignTimes(0);\n }\n }, [status]); // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n function getAlignTarget() {\n if (point) {\n return point;\n }\n\n return getRootDomNode;\n }\n\n function forceAlign() {\n var _alignRef$current;\n\n (_alignRef$current = alignRef.current) === null || _alignRef$current === void 0 ? void 0 : _alignRef$current.forceAlign();\n }\n\n function onInternalAlign(popupDomNode, matchAlign) {\n var nextAlignedClassName = getClassNameFromAlign(matchAlign);\n\n if (alignedClassName !== nextAlignedClassName) {\n setAlignedClassName(nextAlignedClassName);\n } // We will retry multi times to make sure that the element has been align in the right position.\n\n\n setAlignTimes(function (val) {\n return val + 1;\n });\n\n if (status === 'align') {\n onAlign === null || onAlign === void 0 ? void 0 : onAlign(popupDomNode, matchAlign);\n }\n } // Delay to go to next status\n\n\n useLayoutEffect(function () {\n if (status === 'align') {\n // Repeat until not more align needed\n if (alignTimes < 3) {\n forceAlign();\n } else {\n goNextStatus(function () {\n var _prepareResolveRef$cu;\n\n (_prepareResolveRef$cu = prepareResolveRef.current) === null || _prepareResolveRef$cu === void 0 ? void 0 : _prepareResolveRef$cu.call(prepareResolveRef);\n });\n }\n }\n }, [alignTimes]); // ======================== Motion ========================\n\n var motion = _objectSpread({}, getMotion(props));\n\n ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd'].forEach(function (eventName) {\n var originHandler = motion[eventName];\n\n motion[eventName] = function (element, event) {\n goNextStatus();\n return originHandler === null || originHandler === void 0 ? void 0 : originHandler(element, event);\n };\n });\n\n function onShowPrepare() {\n return new Promise(function (resolve) {\n prepareResolveRef.current = resolve;\n });\n } // Go to stable directly when motion not provided\n\n\n React.useEffect(function () {\n if (!motion.motionName && status === 'motion') {\n goNextStatus();\n }\n }, [motion.motionName, status]); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: forceAlign,\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread(_objectSpread({}, stretchStyle), {}, {\n zIndex: zIndex,\n opacity: status === 'motion' || status === 'stable' || !visible ? undefined : 0,\n // Cannot interact with disappearing elements\n // https://github.com/ant-design/ant-design/issues/35051#issuecomment-1101340714\n pointerEvents: !visible && status !== 'stable' ? 'none' : undefined\n }, style); // Align status\n\n\n var alignDisabled = true;\n\n if (align !== null && align !== void 0 && align.points && (status === 'align' || status === 'stable')) {\n alignDisabled = false;\n }\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onShowPrepare,\n onEnterPrepare: onShowPrepare,\n removeOnLeave: destroyPopupOnHide,\n forceRender: forceRender\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, className, alignedClassName, motionClassName);\n return /*#__PURE__*/React.createElement(Align, {\n target: getAlignTarget(),\n key: \"popup\",\n ref: alignRef,\n monitorWindowResize: true,\n disabled: alignDisabled,\n align: align,\n onAlign: onInternalAlign\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDownCapture: onMouseDown,\n onTouchStartCapture: onTouchStart,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode));\n });\n});\nPopupInner.displayName = 'PopupInner';\nexport default PopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nvar MobilePopupInner = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n visible = props.visible,\n zIndex = props.zIndex,\n children = props.children,\n _props$mobile = props.mobile;\n _props$mobile = _props$mobile === void 0 ? {} : _props$mobile;\n var popupClassName = _props$mobile.popupClassName,\n popupStyle = _props$mobile.popupStyle,\n _props$mobile$popupMo = _props$mobile.popupMotion,\n popupMotion = _props$mobile$popupMo === void 0 ? {} : _props$mobile$popupMo,\n popupRender = _props$mobile.popupRender,\n onClick = props.onClick;\n var elementRef = React.useRef(); // ========================= Refs =========================\n\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: function forceAlign() {},\n getElement: function getElement() {\n return elementRef.current;\n }\n };\n }); // ======================== Render ========================\n\n var mergedStyle = _objectSpread({\n zIndex: zIndex\n }, popupStyle);\n\n var childNode = children; // Wrapper when multiple children\n\n if (React.Children.count(children) > 1) {\n childNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, children);\n } // Mobile support additional render\n\n\n if (popupRender) {\n childNode = popupRender(childNode);\n }\n\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: visible,\n ref: elementRef,\n removeOnLeave: true\n }, popupMotion), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var mergedClassName = classNames(prefixCls, popupClassName, motionClassName);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: mergedClassName,\n onClick: onClick,\n style: _objectSpread(_objectSpread({}, motionStyle), mergedStyle)\n }, childNode);\n });\n});\nMobilePopupInner.displayName = 'MobilePopupInner';\nexport default MobilePopupInner;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"mobile\"];\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport isMobile from \"rc-util/es/isMobile\";\nimport Mask from \"./Mask\";\nimport PopupInner from \"./PopupInner\";\nimport MobilePopupInner from \"./MobilePopupInner\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var visible = _ref.visible,\n mobile = _ref.mobile,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _useState = useState(visible),\n _useState2 = _slicedToArray(_useState, 2),\n innerVisible = _useState2[0],\n serInnerVisible = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n inMobile = _useState4[0],\n setInMobile = _useState4[1];\n\n var cloneProps = _objectSpread(_objectSpread({}, props), {}, {\n visible: innerVisible\n }); // We check mobile in visible changed here.\n // And this also delay set `innerVisible` to avoid popup component render flash\n\n\n useEffect(function () {\n serInnerVisible(visible);\n\n if (visible && mobile) {\n setInMobile(isMobile());\n }\n }, [visible, mobile]);\n var popupNode = inMobile ? /*#__PURE__*/React.createElement(MobilePopupInner, _extends({}, cloneProps, {\n mobile: mobile,\n ref: ref\n })) : /*#__PURE__*/React.createElement(PopupInner, _extends({}, cloneProps, {\n ref: ref\n })); // We can use fragment directly but this may failed some selector usage. Keep as origin logic\n\n return /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(Mask, cloneProps), popupNode);\n});\nPopup.displayName = 'Popup';\nexport default Popup;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport raf from \"rc-util/es/raf\";\nimport contains from \"rc-util/es/Dom/contains\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Portal from \"rc-util/es/Portal\";\nimport classNames from 'classnames';\nimport { getAlignFromPlacement, getAlignPopupClassName } from \"./utils/alignUtil\";\nimport Popup from \"./Popup\";\nimport TriggerContext from \"./context\";\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument(element) {\n if (element) {\n return element.ownerDocument;\n }\n\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\n/**\n * Internal usage. Do not use in your code since this will be removed.\n */\nexport function generateTrigger(PortalComponent) {\n var Trigger = /*#__PURE__*/function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n var _super = _createSuper(Trigger);\n\n // ensure `getContainer` will be called only once\n function Trigger(props) {\n var _this;\n\n _classCallCheck(this, Trigger);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"popupRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"triggerRef\", /*#__PURE__*/React.createRef());\n\n _defineProperty(_assertThisInitialized(_this), \"portalContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"attachId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"clickOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"touchOutsideHandler\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler1\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"contextMenuOutsideHandler2\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"mouseDownTimeout\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"focusTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preClickTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"preTouchTime\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"delayTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"hasPopupMouseDown\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (e) {\n var mouseEnterDelay = _this.props.mouseEnterDelay;\n\n _this.fireEvents('onMouseEnter', e);\n\n _this.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseMove\", function (e) {\n _this.fireEvents('onMouseMove', e);\n\n _this.setPoint(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (e) {\n _this.fireEvents('onMouseLeave', e);\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseEnter\", function () {\n _this.clearDelayTimer();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseLeave\", function (e) {\n var _this$popupRef$curren;\n\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && contains((_this$popupRef$curren = _this.popupRef.current) === null || _this$popupRef$curren === void 0 ? void 0 : _this$popupRef$curren.getElement(), e.relatedTarget)) {\n return;\n }\n\n _this.delaySetPopupVisible(false, _this.props.mouseLeaveDelay);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (e) {\n _this.fireEvents('onFocus', e); // incase focusin and focusout\n\n\n _this.clearDelayTimer();\n\n if (_this.isFocusToShow()) {\n _this.focusTime = Date.now();\n\n _this.delaySetPopupVisible(true, _this.props.focusDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n _this.fireEvents('onMouseDown', e);\n\n _this.preClickTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n _this.fireEvents('onTouchStart', e);\n\n _this.preTouchTime = Date.now();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (e) {\n _this.fireEvents('onBlur', e);\n\n _this.clearDelayTimer();\n\n if (_this.isBlurToHide()) {\n _this.delaySetPopupVisible(false, _this.props.blurDelay);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenu\", function (e) {\n e.preventDefault();\n\n _this.fireEvents('onContextMenu', e);\n\n _this.setPopupVisible(true, e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onContextMenuClose\", function () {\n if (_this.isContextMenuToShow()) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n _this.fireEvents('onClick', event); // focus will trigger click\n\n\n if (_this.focusTime) {\n var preTime;\n\n if (_this.preClickTime && _this.preTouchTime) {\n preTime = Math.min(_this.preClickTime, _this.preTouchTime);\n } else if (_this.preClickTime) {\n preTime = _this.preClickTime;\n } else if (_this.preTouchTime) {\n preTime = _this.preTouchTime;\n }\n\n if (Math.abs(preTime - _this.focusTime) < 20) {\n return;\n }\n\n _this.focusTime = 0;\n }\n\n _this.preClickTime = 0;\n _this.preTouchTime = 0; // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n\n if (_this.isClickToShow() && (_this.isClickToHide() || _this.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n\n var nextVisible = !_this.state.popupVisible;\n\n if (_this.isClickToHide() && !nextVisible || nextVisible && _this.isClickToShow()) {\n _this.setPopupVisible(!_this.state.popupVisible, event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPopupMouseDown\", function () {\n _this.hasPopupMouseDown = true;\n clearTimeout(_this.mouseDownTimeout);\n _this.mouseDownTimeout = window.setTimeout(function () {\n _this.hasPopupMouseDown = false;\n }, 0);\n\n if (_this.context) {\n var _this$context;\n\n (_this$context = _this.context).onPopupMouseDown.apply(_this$context, arguments);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentClick\", function (event) {\n if (_this.props.mask && !_this.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n\n var root = _this.getRootDomNode();\n\n var popupNode = _this.getPopupDomNode();\n\n if ( // mousedown on the target should also close popup when action is contextMenu.\n // https://github.com/ant-design/ant-design/issues/29853\n (!contains(root, target) || _this.isContextMenuOnly()) && !contains(popupNode, target) && !_this.hasPopupMouseDown) {\n _this.close();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getRootDomNode\", function () {\n var getTriggerDOMNode = _this.props.getTriggerDOMNode;\n\n if (getTriggerDOMNode) {\n return getTriggerDOMNode(_this.triggerRef.current);\n }\n\n try {\n var domNode = findDOMNode(_this.triggerRef.current);\n\n if (domNode) {\n return domNode;\n }\n } catch (err) {// Do nothing\n }\n\n return ReactDOM.findDOMNode(_assertThisInitialized(_this));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getPopupClassNameFromAlign\", function (align) {\n var className = [];\n var _this$props = _this.props,\n popupPlacement = _this$props.popupPlacement,\n builtinPlacements = _this$props.builtinPlacements,\n prefixCls = _this$props.prefixCls,\n alignPoint = _this$props.alignPoint,\n getPopupClassNameFromAlign = _this$props.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n\n return className.join(' ');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getComponent\", function () {\n var _this$props2 = _this.props,\n prefixCls = _this$props2.prefixCls,\n destroyPopupOnHide = _this$props2.destroyPopupOnHide,\n popupClassName = _this$props2.popupClassName,\n onPopupAlign = _this$props2.onPopupAlign,\n popupMotion = _this$props2.popupMotion,\n popupAnimation = _this$props2.popupAnimation,\n popupTransitionName = _this$props2.popupTransitionName,\n popupStyle = _this$props2.popupStyle,\n mask = _this$props2.mask,\n maskAnimation = _this$props2.maskAnimation,\n maskTransitionName = _this$props2.maskTransitionName,\n maskMotion = _this$props2.maskMotion,\n zIndex = _this$props2.zIndex,\n popup = _this$props2.popup,\n stretch = _this$props2.stretch,\n alignPoint = _this$props2.alignPoint,\n mobile = _this$props2.mobile,\n forceRender = _this$props2.forceRender,\n onPopupClick = _this$props2.onPopupClick;\n var _this$state = _this.state,\n popupVisible = _this$state.popupVisible,\n point = _this$state.point;\n\n var align = _this.getPopupAlign();\n\n var mouseProps = {};\n\n if (_this.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this.onPopupMouseEnter;\n }\n\n if (_this.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this.onPopupMouseDown;\n mouseProps.onTouchStart = _this.onPopupMouseDown;\n return /*#__PURE__*/React.createElement(Popup, _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n maskMotion: maskMotion,\n ref: _this.popupRef,\n motion: popupMotion,\n mobile: mobile,\n forceRender: forceRender,\n onClick: onPopupClick\n }), typeof popup === 'function' ? popup() : popup);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"attachParent\", function (popupContainer) {\n raf.cancel(_this.attachId);\n var _this$props3 = _this.props,\n getPopupContainer = _this$props3.getPopupContainer,\n getDocument = _this$props3.getDocument;\n\n var domNode = _this.getRootDomNode();\n\n var mountNode;\n\n if (!getPopupContainer) {\n mountNode = getDocument(_this.getRootDomNode()).body;\n } else if (domNode || getPopupContainer.length === 0) {\n // Compatible for legacy getPopupContainer with domNode argument.\n // If no need `domNode` argument, will call directly.\n // https://codesandbox.io/s/eloquent-mclean-ss93m?file=/src/App.js\n mountNode = getPopupContainer(domNode);\n }\n\n if (mountNode) {\n mountNode.appendChild(popupContainer);\n } else {\n // Retry after frame render in case parent not ready\n _this.attachId = raf(function () {\n _this.attachParent(popupContainer);\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getContainer\", function () {\n if (!_this.portalContainer) {\n // In React.StrictMode component will call render multiple time in first mount.\n // When you want to refactor with FC, useRef will also init multiple time and\n // point to different useRef instance which will create multiple element\n // (This multiple render will not trigger effect so you can not clean up this\n // in effect). But this is safe with class component since it always point to same class instance.\n var getDocument = _this.props.getDocument;\n var popupContainer = getDocument(_this.getRootDomNode()).createElement('div'); // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n _this.portalContainer = popupContainer;\n }\n\n _this.attachParent(_this.portalContainer);\n\n return _this.portalContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setPoint\", function (point) {\n var alignPoint = _this.props.alignPoint;\n if (!alignPoint || !point) return;\n\n _this.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handlePortalUpdate\", function () {\n if (_this.state.prevPopupVisible !== _this.state.popupVisible) {\n _this.props.afterPopupVisibleChange(_this.state.popupVisible);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"triggerContextValue\", {\n onPopupMouseDown: _this.onPopupMouseDown\n });\n\n var _popupVisible;\n\n if ('popupVisible' in props) {\n _popupVisible = !!props.popupVisible;\n } else {\n _popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: _popupVisible,\n popupVisible: _popupVisible\n };\n ALL_HANDLERS.forEach(function (h) {\n _this[\"fire\".concat(h)] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n _createClass(Trigger, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.componentDidUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var props = this.props;\n var state = this.state; // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n\n if (state.popupVisible) {\n var currentDocument;\n\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument(this.getRootDomNode());\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n } // always hide on mobile\n\n\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n } // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n\n\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument(this.getRootDomNode());\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n } // close popup when trigger type contains 'onContextMenu' and window is blur.\n\n\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n\n return;\n }\n\n this.clearOutsideHandler();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n raf.cancel(this.attachId);\n }\n }, {\n key: \"getPopupDomNode\",\n value: function getPopupDomNode() {\n var _this$popupRef$curren2;\n\n // for test\n return ((_this$popupRef$curren2 = this.popupRef.current) === null || _this$popupRef$curren2 === void 0 ? void 0 : _this$popupRef$curren2.getElement()) || null;\n }\n }, {\n key: \"getPopupAlign\",\n value: function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n\n return popupAlign;\n }\n }, {\n key: \"setPopupVisible\",\n value:\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({\n popupVisible: popupVisible,\n prevPopupVisible: prevPopupVisible\n });\n }\n\n this.props.onPopupVisibleChange(popupVisible);\n } // Always record the point position since mouseEnterDelay will delay the show\n\n\n if (alignPoint && event && popupVisible) {\n this.setPoint(event);\n }\n }\n }, {\n key: \"delaySetPopupVisible\",\n value: function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n\n if (delay) {\n var point = event ? {\n pageX: event.pageX,\n pageY: event.pageY\n } : null;\n this.delayTimer = window.setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n }\n }, {\n key: \"clearDelayTimer\",\n value: function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n }, {\n key: \"clearOutsideHandler\",\n value: function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n }\n }, {\n key: \"createTwoChains\",\n value: function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n\n if (childPros[event] && props[event]) {\n return this[\"fire\".concat(event)];\n }\n\n return childPros[event] || props[event];\n }\n }, {\n key: \"isClickToShow\",\n value: function isClickToShow() {\n var _this$props4 = this.props,\n action = _this$props4.action,\n showAction = _this$props4.showAction;\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isContextMenuOnly\",\n value: function isContextMenuOnly() {\n var action = this.props.action;\n return action === 'contextMenu' || action.length === 1 && action[0] === 'contextMenu';\n }\n }, {\n key: \"isContextMenuToShow\",\n value: function isContextMenuToShow() {\n var _this$props5 = this.props,\n action = _this$props5.action,\n showAction = _this$props5.showAction;\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n }\n }, {\n key: \"isClickToHide\",\n value: function isClickToHide() {\n var _this$props6 = this.props,\n action = _this$props6.action,\n hideAction = _this$props6.hideAction;\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n }\n }, {\n key: \"isMouseEnterToShow\",\n value: function isMouseEnterToShow() {\n var _this$props7 = this.props,\n action = _this$props7.action,\n showAction = _this$props7.showAction;\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n }\n }, {\n key: \"isMouseLeaveToHide\",\n value: function isMouseLeaveToHide() {\n var _this$props8 = this.props,\n action = _this$props8.action,\n hideAction = _this$props8.hideAction;\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n }\n }, {\n key: \"isFocusToShow\",\n value: function isFocusToShow() {\n var _this$props9 = this.props,\n action = _this$props9.action,\n showAction = _this$props9.showAction;\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n }\n }, {\n key: \"isBlurToHide\",\n value: function isBlurToHide() {\n var _this$props10 = this.props,\n action = _this$props10.action,\n hideAction = _this$props10.hideAction;\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n }\n }, {\n key: \"forcePopupAlign\",\n value: function forcePopupAlign() {\n if (this.state.popupVisible) {\n var _this$popupRef$curren3;\n\n (_this$popupRef$curren3 = this.popupRef.current) === null || _this$popupRef$curren3 === void 0 ? void 0 : _this$popupRef$curren3.forceAlign();\n }\n }\n }, {\n key: \"fireEvents\",\n value: function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n\n if (childCallback) {\n childCallback(e);\n }\n\n var callback = this.props[type];\n\n if (callback) {\n callback(e);\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.setPopupVisible(false);\n }\n }, {\n key: \"render\",\n value: function render() {\n var popupVisible = this.state.popupVisible;\n var _this$props11 = this.props,\n children = _this$props11.children,\n forceRender = _this$props11.forceRender,\n alignPoint = _this$props11.alignPoint,\n className = _this$props11.className,\n autoDestroy = _this$props11.autoDestroy;\n var child = React.Children.only(children);\n var newChildProps = {\n key: 'trigger'\n }; // ============================== Visible Handlers ==============================\n // >>> ContextMenu\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n } // >>> Click\n\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n } // >>> Hover(enter)\n\n\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter; // Point align\n\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n } // >>> Hover(leave)\n\n\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n } // >>> Focus\n\n\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n } // =================================== Render ===================================\n\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n\n var cloneProps = _objectSpread({}, newChildProps);\n\n if (supportRef(child)) {\n cloneProps.ref = composeRef(this.triggerRef, child.ref);\n }\n\n var trigger = /*#__PURE__*/React.cloneElement(child, cloneProps);\n var portal; // prevent unmounting after it's rendered\n\n if (popupVisible || this.popupRef.current || forceRender) {\n portal = /*#__PURE__*/React.createElement(PortalComponent, {\n key: \"portal\",\n getContainer: this.getContainer,\n didUpdate: this.handlePortalUpdate\n }, this.getComponent());\n }\n\n if (!popupVisible && autoDestroy) {\n portal = null;\n }\n\n return /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: this.triggerContextValue\n }, trigger, portal);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n }\n }]);\n\n return Trigger;\n }(React.Component);\n\n _defineProperty(Trigger, \"contextType\", TriggerContext);\n\n _defineProperty(Trigger, \"defaultProps\", {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: [],\n autoDestroy: false\n });\n\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\nimport classNames from 'classnames';\nexport default function Popup(props) {\n var showArrow = props.showArrow,\n arrowContent = props.arrowContent,\n children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, showArrow !== false && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\"),\n key: \"arrow\"\n }, arrowContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"];\nimport * as React from 'react';\nimport { useRef, useImperativeHandle, forwardRef } from 'react';\nimport Trigger from 'rc-trigger';\nimport { placements } from './placements';\nimport Popup from './Popup';\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n restProps = _objectWithoutProperties(props, _excluded);\n var domRef = useRef(null);\n useImperativeHandle(ref, function () {\n return domRef.current;\n });\n var extraProps = _objectSpread({}, restProps);\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n showArrow: showArrow,\n arrowContent: arrowContent,\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n var destroyTooltip = false;\n var autoDestroy = false;\n if (typeof destroyTooltipOnHide === 'boolean') {\n destroyTooltip = destroyTooltipOnHide;\n } else if (destroyTooltipOnHide && _typeof(destroyTooltipOnHide) === 'object') {\n var keepParent = destroyTooltipOnHide.keepParent;\n destroyTooltip = keepParent === true;\n autoDestroy = keepParent === false;\n }\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: domRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n destroyPopupOnHide: destroyTooltip,\n autoDestroy: autoDestroy,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay\n }, extraProps), children);\n};\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from './Tooltip';\nimport Popup from './Popup';\nexport { Popup };\nexport default Tooltip;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tooltip from 'rc-tooltip';\nimport { composeRef } from \"rc-util/es/ref\";\nimport raf from \"rc-util/es/raf\";\nvar SliderTooltip = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var visible = props.visible,\n overlay = props.overlay;\n var innerRef = React.useRef(null);\n var tooltipRef = composeRef(ref, innerRef);\n var rafRef = React.useRef(null);\n\n function cancelKeepAlign() {\n raf.cancel(rafRef.current);\n }\n\n function keepAlign() {\n rafRef.current = raf(function () {\n var _innerRef$current;\n\n (_innerRef$current = innerRef.current) === null || _innerRef$current === void 0 ? void 0 : _innerRef$current.forcePopupAlign();\n });\n }\n\n React.useEffect(function () {\n if (visible) {\n keepAlign();\n } else {\n cancelKeepAlign();\n }\n\n return cancelKeepAlign;\n }, [visible, overlay]);\n return /*#__PURE__*/React.createElement(Tooltip, _extends({\n ref: tooltipRef\n }, props));\n});\nexport default SliderTooltip;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport React from 'react';\nimport Tooltip from './common/SliderTooltip';\nimport Handle from './Handle';\nexport default function createSliderWithTooltip(Component) {\n var _a; // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n\n return _a = /*#__PURE__*/function (_React$Component) {\n _inherits(ComponentWrapper, _React$Component);\n\n var _super = _createSuper(ComponentWrapper);\n\n function ComponentWrapper() {\n var _this;\n\n _classCallCheck(this, ComponentWrapper);\n\n _this = _super.apply(this, arguments);\n _this.state = {\n visibles: {}\n };\n\n _this.handleTooltipVisibleChange = function (index, visible) {\n _this.setState(function (prevState) {\n return {\n visibles: _objectSpread(_objectSpread({}, prevState.visibles), {}, _defineProperty({}, index, visible))\n };\n });\n };\n\n _this.handleWithTooltip = function (_ref) {\n var value = _ref.value,\n dragging = _ref.dragging,\n index = _ref.index,\n disabled = _ref.disabled,\n restProps = _objectWithoutProperties(_ref, [\"value\", \"dragging\", \"index\", \"disabled\"]);\n\n var _this$props = _this.props,\n tipFormatter = _this$props.tipFormatter,\n tipProps = _this$props.tipProps,\n handleStyle = _this$props.handleStyle,\n getTooltipContainer = _this$props.getTooltipContainer;\n\n var _tipProps$prefixCls = tipProps.prefixCls,\n prefixCls = _tipProps$prefixCls === void 0 ? 'rc-slider-tooltip' : _tipProps$prefixCls,\n _tipProps$overlay = tipProps.overlay,\n overlay = _tipProps$overlay === void 0 ? tipFormatter(value) : _tipProps$overlay,\n _tipProps$placement = tipProps.placement,\n placement = _tipProps$placement === void 0 ? 'top' : _tipProps$placement,\n _tipProps$visible = tipProps.visible,\n visible = _tipProps$visible === void 0 ? false : _tipProps$visible,\n restTooltipProps = _objectWithoutProperties(tipProps, [\"prefixCls\", \"overlay\", \"placement\", \"visible\"]);\n\n var handleStyleWithIndex;\n\n if (Array.isArray(handleStyle)) {\n handleStyleWithIndex = handleStyle[index] || handleStyle[0];\n } else {\n handleStyleWithIndex = handleStyle;\n }\n\n return /*#__PURE__*/React.createElement(Tooltip, _extends({}, restTooltipProps, {\n getTooltipContainer: getTooltipContainer,\n prefixCls: prefixCls,\n overlay: overlay,\n placement: placement,\n visible: !disabled && (_this.state.visibles[index] || dragging) || visible,\n key: index\n }), /*#__PURE__*/React.createElement(Handle, _extends({}, restProps, {\n style: _objectSpread({}, handleStyleWithIndex),\n value: value,\n onMouseEnter: function onMouseEnter() {\n return _this.handleTooltipVisibleChange(index, true);\n },\n onMouseLeave: function onMouseLeave() {\n return _this.handleTooltipVisibleChange(index, false);\n }\n })));\n };\n\n return _this;\n }\n\n _createClass(ComponentWrapper, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Component, _extends({}, this.props, {\n handle: this.handleWithTooltip\n }));\n }\n }]);\n\n return ComponentWrapper;\n }(React.Component), _a.defaultProps = {\n tipFormatter: function tipFormatter(value) {\n return value;\n },\n handleStyle: [{}],\n tipProps: {},\n getTooltipContainer: function getTooltipContainer(node) {\n return node.parentNode;\n }\n }, _a;\n}","import Slider from './Slider';\nimport Range from './Range';\nimport Handle from './Handle';\nimport createSliderWithTooltip from './createSliderWithTooltip';\nimport SliderTooltip from './common/SliderTooltip';\nvar InternalSlider = Slider;\nInternalSlider.Range = Range;\nInternalSlider.Handle = Handle;\nInternalSlider.createSliderWithTooltip = createSliderWithTooltip;\nexport default InternalSlider;\nexport { Range, Handle, createSliderWithTooltip, SliderTooltip };","// extracted by mini-css-extract-plugin\nexport default {\"breakpointDesktopMinWidth\":\"1200px\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"product_feature_animation\":\"product_feature_animation\",\"three_sixty_animation\":\"three_sixty_animation\",\"animations_controllers\":\"animations_controllers\",\"play_pause_btn\":\"play_pause_btn\",\"slider_container\":\"slider_container\",\"rc-slider-rail\":\"rc-slider-rail\",\"rc-slider-handle\":\"rc-slider-handle\",\"slider_transition_on\":\"slider_transition_on\",\"pdp-pf_content\":\"pdp-pf_content\",\"pdp-pf_animation\":\"pdp-pf_animation\",\"showcase-container\":\"showcase-container\",\"scs_no_pf_animation\":\"scs_no_pf_animation\",\"pdp-single_product_feature\":\"pdp-single_product_feature\"};","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport defaultStyles from '../../styles/defaults.scss';\r\n\r\nconst Icon_Pause_3D = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default Icon_Pause_3D;\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport defaultStyles from '../../styles/defaults.scss';\r\n\r\nconst Icon_Play_3D = () => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default Icon_Play_3D;\r\n","import React from 'react';\r\nimport Slider from 'rc-slider';\r\nimport 'rc-slider/assets/index.css';\r\nimport { IProductFeatureAnimationProps, IProductFeatureAnimationState } from './productFeatureAnimation.d';\r\nimport './productFeatureAnimation.scss';\r\nimport Icon_Pause_3D from '../../Assets/svg/icon_pause_3d';\r\nimport Icon_Play_3D from '../../Assets/svg/icon_play_3d';\r\nimport { IResponseData } from '../../types/VariantSelection';\r\nimport { ThreeSixtyViewDataController } from '../common/threeSixtyViewDataController';\r\nimport ThreeSixtyAnimation from '../threeSixtyAnimation/threeSixtyAnimation';\r\n\r\nexport default class ProductFeatureAnimation extends React.Component {\r\n\r\n private threeSixtyViewController: ThreeSixtyViewDataController;\r\n private threeSixtyAnimationRef = React.createRef();\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n playAnimation: false,\r\n sliderIndex: 1,\r\n currentThreeSixty: this.props.threeSixty,\r\n colorCode: this.props.colorCode,\r\n hideContent: this.props.threeSixty && this.props.threeSixty.imageUrlArray\r\n && this.props.threeSixty.imageUrlArray.length > 0 ? false : true,\r\n productInfo: this.props.productInfo\r\n };\r\n\r\n this.threeSixtyViewController = ThreeSixtyViewDataController.instance(\r\n this.props.generalData.magicLink);\r\n\r\n this.handle3DAnimationStartStopClick = this.handle3DAnimationStartStopClick.bind(this);\r\n this.handleSliderOnChange = this.handleSliderOnChange.bind(this);\r\n this.updateSliderIndex = this.updateSliderIndex.bind(this);\r\n this.handleESPPDetailPageUpdate = this.handleESPPDetailPageUpdate.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (window.shell) {\r\n window.shell.subscribeTo('ESPP.DetailPage.PageUpdate',\r\n (response: IResponseData) => {\r\n if (this.state.colorCode !== response.variantSelection.selectedColor.code) {\r\n const oldPI = this.state.productInfo;\r\n\r\n this.setState({\r\n colorCode: response.variantSelection.selectedColor.code,\r\n productInfo: oldPI\r\n }, () => {\r\n this.handleESPPDetailPageUpdate(\r\n response.variantSelection.selectedColor.code);\r\n });\r\n }\r\n },\r\n this.props.containerId);\r\n }\r\n\r\n if (!this.state.hideContent) {\r\n setTimeout(() => {\r\n if (this.threeSixtyAnimationRef.current)\r\n this.threeSixtyAnimationRef.current.initAnimation();\r\n }, 500);\r\n }\r\n }\r\n\r\n private handleESPPDetailPageUpdate(colorCode: number): void {\r\n this.threeSixtyViewController.getThreeSixtyViewData(colorCode, this.props.masterArticleNo,\r\n '$$$' + this.props.showCase + '$$$')\r\n .then((threeSixtyView) => {\r\n if (threeSixtyView && threeSixtyView.threeSixty\r\n && threeSixtyView.threeSixty.imageUrlArray\r\n && threeSixtyView.threeSixty.imageUrlArray.length > 0) {\r\n this.setState({\r\n currentThreeSixty: threeSixtyView.threeSixty,\r\n playAnimation: false\r\n }, () => {\r\n this.restoreContent();\r\n });\r\n }\r\n else {\r\n this.hideContent();\r\n }\r\n });\r\n }\r\n\r\n private handle3DAnimationStartStopClick(): void {\r\n this.setState({ playAnimation: !this.state.playAnimation },\r\n () => {\r\n this.threeSixtyAnimationRef.current.playStopAnimation(this.state.playAnimation);\r\n });\r\n }\r\n\r\n private handleSliderOnChange(sliderIndex: number): void {\r\n if (this.state.playAnimation) {\r\n this.setState({ playAnimation: false },\r\n () => {\r\n this.threeSixtyAnimationRef.current.playStopAnimation(false);\r\n });\r\n }\r\n\r\n this.threeSixtyAnimationRef.current.setState({\r\n imageIndex: this.getImageIndex(sliderIndex),\r\n animationSequenceIndex: sliderIndex\r\n });\r\n\r\n this.setState({\r\n sliderIndex: sliderIndex\r\n });\r\n }\r\n\r\n private getImageIndex(sliderIndex: number): number {\r\n return this.state.currentThreeSixty.animationSequence[sliderIndex-1].imageIndex\r\n }\r\n\r\n private updateSliderIndex(imageIndex: number): void {\r\n this.setState({\r\n sliderIndex: imageIndex\r\n });\r\n }\r\n\r\n public hideContent(): void {\r\n this.setState({hideContent: true});\r\n }\r\n\r\n public restoreContent(): void {\r\n this.setState({hideContent: false}, () => {\r\n this.threeSixtyAnimationRef.current.initAnimation();\r\n this.threeSixtyAnimationRef.current.restartAnimation(false);\r\n this.updateSliderIndex(1);\r\n });\r\n }\r\n\r\n private getSliderStyles(): string {\r\n return this.state.playAnimation === true ? 'slider_container slider_transition_on': 'slider_container';\r\n }\r\n\r\n private setGroupAtt(el: HTMLDivElement): void {\r\n if (el) {\r\n if (!el.hasAttribute('group')) {\r\n el.toggleAttribute('group');\r\n }\r\n }\r\n }\r\n\r\n private setFocusAtt(el: HTMLDivElement, order: number): void {\r\n if(el) {\r\n el.setAttribute('focusable', '');\r\n el.setAttribute('order', order.toString());\r\n }\r\n }\r\n\r\n public render() {\r\n return (\r\n !this.state.hideContent ? \r\n
this.setGroupAtt(el)}>\r\n {\r\n \r\n }\r\n {this.state.currentThreeSixty.imageUrlArray.length > 1 &&\r\n
this.setGroupAtt(el)}>\r\n
this.setFocusAtt(el, 1)}\r\n onClick={this.handle3DAnimationStartStopClick}\r\n onKeyDown={(event) => {\r\n // prevent page jump down when 3dG is closed with Space btn., click\r\n if (event.code === 'Space')\r\n event.preventDefault(); \r\n }}\r\n >\r\n {this.state.playAnimation ? : }\r\n
\r\n \r\n
\r\n }\r\n
\r\n :\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport ReactDOMServer from 'react-dom/server';\r\nimport ProductFeatureAnimation from './productFeatureAnimation/productFeatureAnimation';\r\n\r\nglobal.React = React;\r\nglobal.ReactDOM = ReactDOM;\r\nglobal.ProductFeatureAnimation = ProductFeatureAnimation;\r\nglobal.ReactDOMServer = ReactDOMServer;\r\n","/* eslint-disable react/no-unknown-property */\r\n/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nconst IconZoomOut = () => (\r\n \r\n \r\n);\r\n\r\nexport default IconZoomOut;\r\n","/* eslint-disable react/no-unknown-property */\r\n/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nconst IconZoomIn = () => (\r\n \r\n \r\n);\r\n\r\nexport default IconZoomIn;\r\n","// extracted by mini-css-extract-plugin\nexport default {\"breakpointDesktopMinWidth\":\"1200px\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\",\"three_sixty_animation\":\"three_sixty_animation\",\"react-transform-wrapper\":\"react-transform-wrapper\",\"three_d_images\":\"three_d_images\",\"three_d_image\":\"three_d_image\",\"active_image\":\"active_image\",\"show_td_images\":\"show_td_images\",\"tdi_full_width\":\"tdi_full_width\",\"zoom_buttons\":\"zoom_buttons\",\"start_stop_button\":\"start_stop_button\",\"zoom_in_btn\":\"zoom_in_btn\",\"zoom_out_btn\":\"zoom_out_btn\",\"border\":\"border\",\"inactive\":\"inactive\",\"three_sixty_thumbnails\":\"three_sixty_thumbnails\",\"three_sixty_view\":\"three_sixty_view\"};","export class SCSScrollLock {\r\n private static _instance: SCSScrollLock;\r\n private bodyScrollPosition = 0;\r\n\r\n static get instance() {\r\n return this._instance || (this._instance = new this());\r\n }\r\n\r\n public lock(): void {\r\n const webContainer = document.querySelector('.container');\r\n const mobileContainer = document.querySelector('.page-container');\r\n this.bodyScrollPosition = window.scrollY;\r\n\r\n if (webContainer || mobileContainer)\r\n document.body.setAttribute(\r\n 'style',\r\n 'overflow: hidden !important; position: fixed !important; top: -' +\r\n this.bodyScrollPosition +\r\n 'px;'\r\n );\r\n }\r\n\r\n public unlock(): void {\r\n const webContainer = document.querySelector('.container');\r\n const mobileContainer = document.querySelector('.page-container');\r\n\r\n if (webContainer || mobileContainer) {\r\n document.body.removeAttribute('style');\r\n window.scrollTo(0, this.bodyScrollPosition);\r\n }\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin\nexport default {\"loading_spinner\":\"loading_spinner\",\"show_loading_spinner\":\"show_loading_spinner\",\"scs_loader\":\"scs_loader\",\"load2\":\"load2\"};","import React from 'react';\r\nimport { ILoadingSpinnerProps, ILoadingSpinnerState } from './loadingSpinner.d';\r\nimport './loadingSpinner.scss';\r\n\r\nexport default class LoadingSpinner extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showLoadingSpinner: this.props.showLoadingSpinner\r\n };\r\n }\r\n\r\n private loadingSpinnerClass(): string {\r\n return this.props.showLoadingSpinner\r\n ? ['loading_spinner', 'show_loading_spinner'].join(' ')\r\n : 'loading_spinner';\r\n }\r\n\r\n public render() {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","/* eslint-disable react/no-unknown-property */\r\n/* eslint-disable max-len */\r\nimport React from 'react';\r\n\r\nconst IconPlayStop = () => (\r\n \r\n \r\n);\r\n\r\nexport default IconPlayStop;\r\n","import React, { useRef, useImperativeHandle, useEffect, useContext, useLayoutEffect, useState, useCallback, useMemo } from 'react';\n\n/**\n * Rounds number to given decimal\n * eg. roundNumber(2.34343, 1) => 2.3\n */\nvar roundNumber = function (num, decimal) {\n return Number(num.toFixed(decimal));\n};\n/**\n * Checks if value is number, if not it returns default value\n * 1# eg. checkIsNumber(2, 30) => 2\n * 2# eg. checkIsNumber(null, 30) => 30\n */\nvar checkIsNumber = function (num, defaultValue) {\n return typeof num === \"number\" ? num : defaultValue;\n};\n\nvar handleCallback = function (context, event, callback) {\n if (callback && typeof callback === \"function\") {\n callback(context, event);\n }\n};\n\n/* eslint-disable no-plusplus */\n/* eslint-disable no-param-reassign */\n/**\n * Functions should return denominator of the target value, which is the next animation step.\n * t is a value from 0 to 1, reflecting the percentage of animation status.\n */\nvar easeOut = function (t) {\n return -Math.cos(t * Math.PI) / 2 + 0.5;\n};\n// linear\nvar linear = function (t) {\n return t;\n};\n// accelerating from zero velocity\nvar easeInQuad = function (t) {\n return t * t;\n};\n// decelerating to zero velocity\nvar easeOutQuad = function (t) {\n return t * (2 - t);\n};\n// acceleration until halfway, then deceleration\nvar easeInOutQuad = function (t) {\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n};\n// accelerating from zero velocity\nvar easeInCubic = function (t) {\n return t * t * t;\n};\n// decelerating to zero velocity\nvar easeOutCubic = function (t) {\n return --t * t * t + 1;\n};\n// acceleration until halfway, then deceleration\nvar easeInOutCubic = function (t) {\n return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\n};\n// accelerating from zero velocity\nvar easeInQuart = function (t) {\n return t * t * t * t;\n};\n// decelerating to zero velocity\nvar easeOutQuart = function (t) {\n return 1 - --t * t * t * t;\n};\n// acceleration until halfway, then deceleration\nvar easeInOutQuart = function (t) {\n return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t;\n};\n// accelerating from zero velocity\nvar easeInQuint = function (t) {\n return t * t * t * t * t;\n};\n// decelerating to zero velocity\nvar easeOutQuint = function (t) {\n return 1 + --t * t * t * t * t;\n};\n// acceleration until halfway, then deceleration\nvar easeInOutQuint = function (t) {\n return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t;\n};\nvar animations = {\n easeOut: easeOut,\n linear: linear,\n easeInQuad: easeInQuad,\n easeOutQuad: easeOutQuad,\n easeInOutQuad: easeInOutQuad,\n easeInCubic: easeInCubic,\n easeOutCubic: easeOutCubic,\n easeInOutCubic: easeInOutCubic,\n easeInQuart: easeInQuart,\n easeOutQuart: easeOutQuart,\n easeInOutQuart: easeInOutQuart,\n easeInQuint: easeInQuint,\n easeOutQuint: easeOutQuint,\n easeInOutQuint: easeInOutQuint,\n};\n\n/* eslint-disable no-param-reassign */\nvar handleCancelAnimationFrame = function (animation) {\n if (typeof animation === \"number\") {\n cancelAnimationFrame(animation);\n }\n};\nvar handleCancelAnimation = function (contextInstance) {\n if (!contextInstance.mounted)\n return;\n handleCancelAnimationFrame(contextInstance.animation);\n // Clear animation state\n contextInstance.animate = false;\n contextInstance.animation = null;\n contextInstance.velocity = null;\n};\nfunction handleSetupAnimation(contextInstance, animationName, animationTime, callback) {\n if (!contextInstance.mounted)\n return;\n var startTime = new Date().getTime();\n var lastStep = 1;\n // if another animation is active\n handleCancelAnimation(contextInstance);\n // new animation\n contextInstance.animation = function () {\n if (!contextInstance.mounted) {\n return handleCancelAnimationFrame(contextInstance.animation);\n }\n var frameTime = new Date().getTime() - startTime;\n var animationProgress = frameTime / animationTime;\n var animationType = animations[animationName];\n var step = animationType(animationProgress);\n if (frameTime >= animationTime) {\n callback(lastStep);\n contextInstance.animation = null;\n }\n else if (contextInstance.animation) {\n callback(step);\n requestAnimationFrame(contextInstance.animation);\n }\n };\n requestAnimationFrame(contextInstance.animation);\n}\nfunction isValidTargetState(targetState) {\n var scale = targetState.scale, positionX = targetState.positionX, positionY = targetState.positionY;\n if (Number.isNaN(scale) ||\n Number.isNaN(positionX) ||\n Number.isNaN(positionY)) {\n return false;\n }\n return true;\n}\nfunction animate(contextInstance, targetState, animationTime, animationName) {\n var isValid = isValidTargetState(targetState);\n if (!contextInstance.mounted || !isValid)\n return;\n var setTransformState = contextInstance.setTransformState;\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n var scaleDiff = targetState.scale - scale;\n var positionXDiff = targetState.positionX - positionX;\n var positionYDiff = targetState.positionY - positionY;\n if (animationTime === 0) {\n setTransformState(targetState.scale, targetState.positionX, targetState.positionY);\n }\n else {\n // animation start timestamp\n handleSetupAnimation(contextInstance, animationName, animationTime, function (step) {\n var newScale = scale + scaleDiff * step;\n var newPositionX = positionX + positionXDiff * step;\n var newPositionY = positionY + positionYDiff * step;\n setTransformState(newScale, newPositionX, newPositionY);\n });\n }\n}\n\n/* eslint-disable no-param-reassign */\nfunction getComponentsSizes(wrapperComponent, contentComponent, newScale) {\n var wrapperWidth = wrapperComponent.offsetWidth;\n var wrapperHeight = wrapperComponent.offsetHeight;\n var contentWidth = contentComponent.offsetWidth;\n var contentHeight = contentComponent.offsetHeight;\n var newContentWidth = contentWidth * newScale;\n var newContentHeight = contentHeight * newScale;\n var newDiffWidth = wrapperWidth - newContentWidth;\n var newDiffHeight = wrapperHeight - newContentHeight;\n return {\n wrapperWidth: wrapperWidth,\n wrapperHeight: wrapperHeight,\n newContentWidth: newContentWidth,\n newDiffWidth: newDiffWidth,\n newContentHeight: newContentHeight,\n newDiffHeight: newDiffHeight,\n };\n}\nvar getBounds = function (wrapperWidth, newContentWidth, diffWidth, wrapperHeight, newContentHeight, diffHeight, centerZoomedOut) {\n var scaleWidthFactor = wrapperWidth > newContentWidth\n ? diffWidth * (centerZoomedOut ? 1 : 0.5)\n : 0;\n var scaleHeightFactor = wrapperHeight > newContentHeight\n ? diffHeight * (centerZoomedOut ? 1 : 0.5)\n : 0;\n var minPositionX = wrapperWidth - newContentWidth - scaleWidthFactor;\n var maxPositionX = scaleWidthFactor;\n var minPositionY = wrapperHeight - newContentHeight - scaleHeightFactor;\n var maxPositionY = scaleHeightFactor;\n return { minPositionX: minPositionX, maxPositionX: maxPositionX, minPositionY: minPositionY, maxPositionY: maxPositionY };\n};\nvar calculateBounds = function (contextInstance, newScale) {\n var wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n var centerZoomedOut = contextInstance.setup.centerZoomedOut;\n if (!wrapperComponent || !contentComponent) {\n throw new Error(\"Components are not mounted\");\n }\n var _a = getComponentsSizes(wrapperComponent, contentComponent, newScale), wrapperWidth = _a.wrapperWidth, wrapperHeight = _a.wrapperHeight, newContentWidth = _a.newContentWidth, newDiffWidth = _a.newDiffWidth, newContentHeight = _a.newContentHeight, newDiffHeight = _a.newDiffHeight;\n var bounds = getBounds(wrapperWidth, newContentWidth, newDiffWidth, wrapperHeight, newContentHeight, newDiffHeight, Boolean(centerZoomedOut));\n return bounds;\n};\n/**\n * Keeps value between given bounds, used for limiting view to given boundaries\n * 1# eg. boundLimiter(2, 0, 3, true) => 2\n * 2# eg. boundLimiter(4, 0, 3, true) => 3\n * 3# eg. boundLimiter(-2, 0, 3, true) => 0\n * 4# eg. boundLimiter(10, 0, 3, false) => 10\n */\nvar boundLimiter = function (value, minBound, maxBound, isActive) {\n if (!isActive)\n return roundNumber(value, 2);\n if (value < minBound)\n return roundNumber(minBound, 2);\n if (value > maxBound)\n return roundNumber(maxBound, 2);\n return roundNumber(value, 2);\n};\nvar handleCalculateBounds = function (contextInstance, newScale) {\n var bounds = calculateBounds(contextInstance, newScale);\n // Save bounds\n contextInstance.bounds = bounds;\n return bounds;\n};\nfunction getMouseBoundedPosition(positionX, positionY, bounds, limitToBounds, paddingValueX, paddingValueY, wrapperComponent) {\n var minPositionX = bounds.minPositionX, minPositionY = bounds.minPositionY, maxPositionX = bounds.maxPositionX, maxPositionY = bounds.maxPositionY;\n var paddingX = 0;\n var paddingY = 0;\n if (wrapperComponent) {\n paddingX = paddingValueX;\n paddingY = paddingValueY;\n }\n var x = boundLimiter(positionX, minPositionX - paddingX, maxPositionX + paddingX, limitToBounds);\n var y = boundLimiter(positionY, minPositionY - paddingY, maxPositionY + paddingY, limitToBounds);\n return { x: x, y: y };\n}\n\nfunction handleCalculateZoomPositions(contextInstance, mouseX, mouseY, newScale, bounds, limitToBounds) {\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n var scaleDifference = newScale - scale;\n if (typeof mouseX !== \"number\" || typeof mouseY !== \"number\") {\n console.error(\"Mouse X and Y position were not provided!\");\n return { x: positionX, y: positionY };\n }\n var calculatedPositionX = positionX - mouseX * scaleDifference;\n var calculatedPositionY = positionY - mouseY * scaleDifference;\n // do not limit to bounds when there is padding animation,\n // it causes animation strange behaviour\n var newPositions = getMouseBoundedPosition(calculatedPositionX, calculatedPositionY, bounds, limitToBounds, 0, 0, null);\n return newPositions;\n}\nfunction checkZoomBounds(zoom, minScale, maxScale, zoomPadding, enablePadding) {\n var scalePadding = enablePadding ? zoomPadding : 0;\n var minScaleWithPadding = minScale - scalePadding;\n if (!Number.isNaN(maxScale) && zoom >= maxScale)\n return maxScale;\n if (!Number.isNaN(minScale) && zoom <= minScaleWithPadding)\n return minScaleWithPadding;\n return zoom;\n}\n\nvar isPanningStartAllowed = function (contextInstance, event) {\n var excluded = contextInstance.setup.panning.excluded;\n var isInitialized = contextInstance.isInitialized, wrapperComponent = contextInstance.wrapperComponent;\n var target = event.target;\n var targetIsShadowDom = \"shadowRoot\" in target && \"composedPath\" in event;\n var isWrapperChild = targetIsShadowDom\n ? event.composedPath().some(function (el) {\n if (!(el instanceof Element)) {\n return false;\n }\n return wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.contains(el);\n })\n : wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.contains(target);\n var isAllowed = isInitialized && target && isWrapperChild;\n if (!isAllowed)\n return false;\n var isExcluded = isExcludedNode(target, excluded);\n if (isExcluded)\n return false;\n return true;\n};\nvar isPanningAllowed = function (contextInstance) {\n var isInitialized = contextInstance.isInitialized, isPanning = contextInstance.isPanning, setup = contextInstance.setup;\n var disabled = setup.panning.disabled;\n var isAllowed = isInitialized && isPanning && !disabled;\n if (!isAllowed)\n return false;\n return true;\n};\nvar handlePanningSetup = function (contextInstance, event) {\n var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY;\n contextInstance.isPanning = true;\n // Panning with mouse\n var x = event.clientX;\n var y = event.clientY;\n contextInstance.startCoords = { x: x - positionX, y: y - positionY };\n};\nvar handleTouchPanningSetup = function (contextInstance, event) {\n var touches = event.touches;\n var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY;\n contextInstance.isPanning = true;\n // Panning with touch\n var oneFingerTouch = touches.length === 1;\n if (oneFingerTouch) {\n var x = touches[0].clientX;\n var y = touches[0].clientY;\n contextInstance.startCoords = { x: x - positionX, y: y - positionY };\n }\n};\nfunction handlePanToBounds(contextInstance) {\n var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY, scale = _a.scale;\n var _b = contextInstance.setup, disabled = _b.disabled, limitToBounds = _b.limitToBounds, centerZoomedOut = _b.centerZoomedOut;\n var wrapperComponent = contextInstance.wrapperComponent;\n if (disabled || !wrapperComponent || !contextInstance.bounds)\n return;\n var _c = contextInstance.bounds, maxPositionX = _c.maxPositionX, minPositionX = _c.minPositionX, maxPositionY = _c.maxPositionY, minPositionY = _c.minPositionY;\n var xChanged = positionX > maxPositionX || positionX < minPositionX;\n var yChanged = positionY > maxPositionY || positionY < minPositionY;\n var mousePosX = positionX > maxPositionX\n ? wrapperComponent.offsetWidth\n : contextInstance.setup.minPositionX || 0;\n var mousePosY = positionY > maxPositionY\n ? wrapperComponent.offsetHeight\n : contextInstance.setup.minPositionY || 0;\n var _d = handleCalculateZoomPositions(contextInstance, mousePosX, mousePosY, scale, contextInstance.bounds, limitToBounds || centerZoomedOut), x = _d.x, y = _d.y;\n return {\n scale: scale,\n positionX: xChanged ? x : positionX,\n positionY: yChanged ? y : positionY,\n };\n}\nfunction handleNewPosition(contextInstance, newPositionX, newPositionY, paddingValueX, paddingValueY) {\n var limitToBounds = contextInstance.setup.limitToBounds;\n var wrapperComponent = contextInstance.wrapperComponent, bounds = contextInstance.bounds;\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n if (wrapperComponent === null ||\n bounds === null ||\n (newPositionX === positionX && newPositionY === positionY)) {\n return;\n }\n var _b = getMouseBoundedPosition(newPositionX, newPositionY, bounds, limitToBounds, paddingValueX, paddingValueY, wrapperComponent), x = _b.x, y = _b.y;\n contextInstance.setTransformState(scale, x, y);\n}\nvar getPanningClientPosition = function (contextInstance, clientX, clientY) {\n var startCoords = contextInstance.startCoords, transformState = contextInstance.transformState;\n var panning = contextInstance.setup.panning;\n var lockAxisX = panning.lockAxisX, lockAxisY = panning.lockAxisY;\n var positionX = transformState.positionX, positionY = transformState.positionY;\n if (!startCoords) {\n return { x: positionX, y: positionY };\n }\n var mouseX = clientX - startCoords.x;\n var mouseY = clientY - startCoords.y;\n var newPositionX = lockAxisX ? positionX : mouseX;\n var newPositionY = lockAxisY ? positionY : mouseY;\n return { x: newPositionX, y: newPositionY };\n};\nvar getPaddingValue = function (contextInstance, size) {\n var setup = contextInstance.setup, transformState = contextInstance.transformState;\n var scale = transformState.scale;\n var minScale = setup.minScale, disablePadding = setup.disablePadding;\n if (size > 0 && scale >= minScale && !disablePadding) {\n return size;\n }\n return 0;\n};\n\nvar isVelocityCalculationAllowed = function (contextInstance) {\n var mounted = contextInstance.mounted;\n var _a = contextInstance.setup, disabled = _a.disabled, velocityAnimation = _a.velocityAnimation;\n var scale = contextInstance.transformState.scale;\n var disabledVelocity = velocityAnimation.disabled;\n var isAllowed = !disabledVelocity || scale > 1 || !disabled || mounted;\n if (!isAllowed)\n return false;\n return true;\n};\nvar isVelocityAllowed = function (contextInstance) {\n var mounted = contextInstance.mounted, velocity = contextInstance.velocity, bounds = contextInstance.bounds;\n var _a = contextInstance.setup, disabled = _a.disabled, velocityAnimation = _a.velocityAnimation;\n var scale = contextInstance.transformState.scale;\n var disabledVelocity = velocityAnimation.disabled;\n var isAllowed = !disabledVelocity || scale > 1 || !disabled || mounted;\n if (!isAllowed)\n return false;\n if (!velocity || !bounds)\n return false;\n return true;\n};\nfunction getVelocityMoveTime(contextInstance, velocity) {\n var velocityAnimation = contextInstance.setup.velocityAnimation;\n var equalToMove = velocityAnimation.equalToMove, animationTime = velocityAnimation.animationTime, sensitivity = velocityAnimation.sensitivity;\n if (equalToMove) {\n return animationTime * velocity * sensitivity;\n }\n return animationTime;\n}\nfunction getVelocityPosition(newPosition, startPosition, currentPosition, isLocked, limitToBounds, minPosition, maxPosition, minTarget, maxTarget, step) {\n if (limitToBounds) {\n if (startPosition > maxPosition && currentPosition > maxPosition) {\n var calculatedPosition = maxPosition + (newPosition - maxPosition) * step;\n if (calculatedPosition > maxTarget)\n return maxTarget;\n if (calculatedPosition < maxPosition)\n return maxPosition;\n return calculatedPosition;\n }\n if (startPosition < minPosition && currentPosition < minPosition) {\n var calculatedPosition = minPosition + (newPosition - minPosition) * step;\n if (calculatedPosition < minTarget)\n return minTarget;\n if (calculatedPosition > minPosition)\n return minPosition;\n return calculatedPosition;\n }\n }\n if (isLocked)\n return startPosition;\n return boundLimiter(newPosition, minPosition, maxPosition, limitToBounds);\n}\n\nfunction getSizeMultiplier(wrapperComponent, equalToMove) {\n var defaultMultiplier = 1;\n if (equalToMove) {\n return Math.min(defaultMultiplier, wrapperComponent.offsetWidth / window.innerWidth);\n }\n return defaultMultiplier;\n}\nfunction handleCalculateVelocity(contextInstance, position) {\n var isAllowed = isVelocityCalculationAllowed(contextInstance);\n if (!isAllowed) {\n return;\n }\n var lastMousePosition = contextInstance.lastMousePosition, velocityTime = contextInstance.velocityTime, setup = contextInstance.setup;\n var wrapperComponent = contextInstance.wrapperComponent;\n var equalToMove = setup.velocityAnimation.equalToMove;\n var now = Date.now();\n if (lastMousePosition && velocityTime && wrapperComponent) {\n var sizeMultiplier = getSizeMultiplier(wrapperComponent, equalToMove);\n var distanceX = position.x - lastMousePosition.x;\n var distanceY = position.y - lastMousePosition.y;\n var velocityX = distanceX / sizeMultiplier;\n var velocityY = distanceY / sizeMultiplier;\n var interval = now - velocityTime;\n var speed = distanceX * distanceX + distanceY * distanceY;\n var velocity = Math.sqrt(speed) / interval;\n contextInstance.velocity = { velocityX: velocityX, velocityY: velocityY, total: velocity };\n }\n contextInstance.lastMousePosition = position;\n contextInstance.velocityTime = now;\n}\nfunction handleVelocityPanning(contextInstance) {\n var velocity = contextInstance.velocity, bounds = contextInstance.bounds, setup = contextInstance.setup, wrapperComponent = contextInstance.wrapperComponent;\n var isAllowed = isVelocityAllowed(contextInstance);\n if (!isAllowed || !velocity || !bounds || !wrapperComponent) {\n return;\n }\n var velocityX = velocity.velocityX, velocityY = velocity.velocityY, total = velocity.total;\n var maxPositionX = bounds.maxPositionX, minPositionX = bounds.minPositionX, maxPositionY = bounds.maxPositionY, minPositionY = bounds.minPositionY;\n var limitToBounds = setup.limitToBounds, alignmentAnimation = setup.alignmentAnimation;\n var zoomAnimation = setup.zoomAnimation, panning = setup.panning;\n var lockAxisY = panning.lockAxisY, lockAxisX = panning.lockAxisX;\n var animationType = zoomAnimation.animationType;\n var sizeX = alignmentAnimation.sizeX, sizeY = alignmentAnimation.sizeY, velocityAlignmentTime = alignmentAnimation.velocityAlignmentTime;\n var alignAnimationTime = velocityAlignmentTime;\n var moveAnimationTime = getVelocityMoveTime(contextInstance, total);\n var finalAnimationTime = Math.max(moveAnimationTime, alignAnimationTime);\n var paddingValueX = getPaddingValue(contextInstance, sizeX);\n var paddingValueY = getPaddingValue(contextInstance, sizeY);\n var paddingX = (paddingValueX * wrapperComponent.offsetWidth) / 100;\n var paddingY = (paddingValueY * wrapperComponent.offsetHeight) / 100;\n var maxTargetX = maxPositionX + paddingX;\n var minTargetX = minPositionX - paddingX;\n var maxTargetY = maxPositionY + paddingY;\n var minTargetY = minPositionY - paddingY;\n var startState = contextInstance.transformState;\n var startTime = new Date().getTime();\n handleSetupAnimation(contextInstance, animationType, finalAnimationTime, function (step) {\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n var frameTime = new Date().getTime() - startTime;\n var animationProgress = frameTime / alignAnimationTime;\n var alignAnimation = animations[alignmentAnimation.animationType];\n var alignStep = 1 - alignAnimation(Math.min(1, animationProgress));\n var customStep = 1 - step;\n var newPositionX = positionX + velocityX * customStep;\n var newPositionY = positionY + velocityY * customStep;\n var currentPositionX = getVelocityPosition(newPositionX, startState.positionX, positionX, lockAxisX, limitToBounds, minPositionX, maxPositionX, minTargetX, maxTargetX, alignStep);\n var currentPositionY = getVelocityPosition(newPositionY, startState.positionY, positionY, lockAxisY, limitToBounds, minPositionY, maxPositionY, minTargetY, maxTargetY, alignStep);\n if (positionX !== newPositionX || positionY !== newPositionY) {\n contextInstance.setTransformState(scale, currentPositionX, currentPositionY);\n }\n });\n}\n\nfunction handlePanningStart(contextInstance, event) {\n var scale = contextInstance.transformState.scale;\n handleCancelAnimation(contextInstance);\n handleCalculateBounds(contextInstance, scale);\n if (window.TouchEvent !== undefined && event instanceof TouchEvent) {\n handleTouchPanningSetup(contextInstance, event);\n }\n else {\n handlePanningSetup(contextInstance, event);\n }\n}\nfunction handleAlignToBounds(contextInstance) {\n var scale = contextInstance.transformState.scale;\n var _a = contextInstance.setup, minScale = _a.minScale, alignmentAnimation = _a.alignmentAnimation;\n var disabled = alignmentAnimation.disabled, sizeX = alignmentAnimation.sizeX, sizeY = alignmentAnimation.sizeY, animationTime = alignmentAnimation.animationTime, animationType = alignmentAnimation.animationType;\n var isDisabled = disabled || scale < minScale || (!sizeX && !sizeY);\n if (isDisabled)\n return;\n var targetState = handlePanToBounds(contextInstance);\n if (targetState) {\n animate(contextInstance, targetState, animationTime, animationType);\n }\n}\nfunction handlePanning(contextInstance, clientX, clientY) {\n var startCoords = contextInstance.startCoords, setup = contextInstance.setup;\n var _a = setup.alignmentAnimation, sizeX = _a.sizeX, sizeY = _a.sizeY;\n if (!startCoords)\n return;\n var _b = getPanningClientPosition(contextInstance, clientX, clientY), x = _b.x, y = _b.y;\n var paddingValueX = getPaddingValue(contextInstance, sizeX);\n var paddingValueY = getPaddingValue(contextInstance, sizeY);\n handleCalculateVelocity(contextInstance, { x: x, y: y });\n handleNewPosition(contextInstance, x, y, paddingValueX, paddingValueY);\n}\nfunction handlePanningEnd(contextInstance) {\n if (contextInstance.isPanning) {\n var velocityDisabled = contextInstance.setup.panning.velocityDisabled;\n var velocity = contextInstance.velocity, wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n contextInstance.isPanning = false;\n contextInstance.animate = false;\n contextInstance.animation = null;\n var wrapperRect = wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.getBoundingClientRect();\n var contentRect = contentComponent === null || contentComponent === void 0 ? void 0 : contentComponent.getBoundingClientRect();\n var wrapperWidth = (wrapperRect === null || wrapperRect === void 0 ? void 0 : wrapperRect.width) || 0;\n var wrapperHeight = (wrapperRect === null || wrapperRect === void 0 ? void 0 : wrapperRect.height) || 0;\n var contentWidth = (contentRect === null || contentRect === void 0 ? void 0 : contentRect.width) || 0;\n var contentHeight = (contentRect === null || contentRect === void 0 ? void 0 : contentRect.height) || 0;\n var isZoomed = wrapperWidth < contentWidth || wrapperHeight < contentHeight;\n var shouldAnimate = !velocityDisabled && velocity && (velocity === null || velocity === void 0 ? void 0 : velocity.total) > 0.1 && isZoomed;\n if (shouldAnimate) {\n handleVelocityPanning(contextInstance);\n }\n else {\n handleAlignToBounds(contextInstance);\n }\n }\n}\n\nfunction handleZoomToPoint(contextInstance, scale, mouseX, mouseY) {\n var _a = contextInstance.setup, minScale = _a.minScale, maxScale = _a.maxScale, limitToBounds = _a.limitToBounds;\n var newScale = checkZoomBounds(roundNumber(scale, 2), minScale, maxScale, 0, false);\n var bounds = handleCalculateBounds(contextInstance, newScale);\n var _b = handleCalculateZoomPositions(contextInstance, mouseX, mouseY, newScale, bounds, limitToBounds), x = _b.x, y = _b.y;\n return { scale: newScale, positionX: x, positionY: y };\n}\nfunction handleAlignToScaleBounds(contextInstance, mousePositionX, mousePositionY) {\n var scale = contextInstance.transformState.scale;\n var wrapperComponent = contextInstance.wrapperComponent;\n var _a = contextInstance.setup, minScale = _a.minScale, limitToBounds = _a.limitToBounds, zoomAnimation = _a.zoomAnimation;\n var disabled = zoomAnimation.disabled, animationTime = zoomAnimation.animationTime, animationType = zoomAnimation.animationType;\n var isDisabled = disabled || scale >= minScale;\n if (scale >= 1 || limitToBounds) {\n // fire fit to bounds animation\n handleAlignToBounds(contextInstance);\n }\n if (isDisabled || !wrapperComponent || !contextInstance.mounted)\n return;\n var mouseX = mousePositionX || wrapperComponent.offsetWidth / 2;\n var mouseY = mousePositionY || wrapperComponent.offsetHeight / 2;\n var targetState = handleZoomToPoint(contextInstance, minScale, mouseX, mouseY);\n if (targetState) {\n animate(contextInstance, targetState, animationTime, animationType);\n }\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\nvar initialState = {\n previousScale: 1,\n scale: 1,\n positionX: 0,\n positionY: 0,\n};\nvar initialSetup = {\n disabled: false,\n minPositionX: null,\n maxPositionX: null,\n minPositionY: null,\n maxPositionY: null,\n minScale: 1,\n maxScale: 8,\n limitToBounds: true,\n centerZoomedOut: false,\n centerOnInit: false,\n disablePadding: false,\n smooth: true,\n wheel: {\n step: 0.2,\n disabled: false,\n smoothStep: 0.001,\n wheelDisabled: false,\n touchPadDisabled: false,\n activationKeys: [],\n excluded: [],\n },\n panning: {\n disabled: false,\n velocityDisabled: false,\n lockAxisX: false,\n lockAxisY: false,\n allowLeftClickPan: true,\n allowMiddleClickPan: true,\n allowRightClickPan: true,\n wheelPanning: false,\n activationKeys: [],\n excluded: [],\n },\n pinch: {\n step: 5,\n disabled: false,\n excluded: [],\n },\n doubleClick: {\n disabled: false,\n step: 0.7,\n mode: \"zoomIn\",\n animationType: \"easeOut\",\n animationTime: 200,\n excluded: [],\n },\n zoomAnimation: {\n disabled: false,\n size: 0.4,\n animationTime: 200,\n animationType: \"easeOut\",\n },\n alignmentAnimation: {\n disabled: false,\n sizeX: 100,\n sizeY: 100,\n animationTime: 200,\n velocityAlignmentTime: 400,\n animationType: \"easeOut\",\n },\n velocityAnimation: {\n disabled: false,\n sensitivity: 1,\n animationTime: 400,\n animationType: \"easeOut\",\n equalToMove: true,\n },\n};\n\nvar createState = function (props) {\n var _a, _b, _c, _d;\n return {\n previousScale: (_a = props.initialScale) !== null && _a !== void 0 ? _a : initialState.scale,\n scale: (_b = props.initialScale) !== null && _b !== void 0 ? _b : initialState.scale,\n positionX: (_c = props.initialPositionX) !== null && _c !== void 0 ? _c : initialState.positionX,\n positionY: (_d = props.initialPositionY) !== null && _d !== void 0 ? _d : initialState.positionY,\n };\n};\nvar createSetup = function (props) {\n var newSetup = __assign({}, initialSetup);\n Object.keys(props).forEach(function (key) {\n var validValue = typeof props[key] !== \"undefined\";\n var validParameter = typeof initialSetup[key] !== \"undefined\";\n if (validParameter && validValue) {\n var dataType = Object.prototype.toString.call(initialSetup[key]);\n var isObject = dataType === \"[object Object]\";\n var isArray = dataType === \"[object Array]\";\n if (isObject) {\n newSetup[key] = __assign(__assign({}, initialSetup[key]), props[key]);\n }\n else if (isArray) {\n newSetup[key] = __spreadArray(__spreadArray([], initialSetup[key], true), props[key], true);\n }\n else {\n newSetup[key] = props[key];\n }\n }\n });\n return newSetup;\n};\n\nvar handleCalculateButtonZoom = function (contextInstance, delta, step) {\n var scale = contextInstance.transformState.scale;\n var wrapperComponent = contextInstance.wrapperComponent, setup = contextInstance.setup;\n var maxScale = setup.maxScale, minScale = setup.minScale, zoomAnimation = setup.zoomAnimation, smooth = setup.smooth;\n var size = zoomAnimation.size;\n if (!wrapperComponent) {\n throw new Error(\"Wrapper is not mounted\");\n }\n var targetScale = smooth\n ? scale * Math.exp(delta * step)\n : scale + delta * step;\n var newScale = checkZoomBounds(roundNumber(targetScale, 3), minScale, maxScale, size, false);\n return newScale;\n};\nfunction handleZoomToViewCenter(contextInstance, delta, step, animationTime, animationType) {\n var wrapperComponent = contextInstance.wrapperComponent;\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n if (!wrapperComponent)\n return console.error(\"No WrapperComponent found\");\n var wrapperWidth = wrapperComponent.offsetWidth;\n var wrapperHeight = wrapperComponent.offsetHeight;\n var mouseX = (wrapperWidth / 2 - positionX) / scale;\n var mouseY = (wrapperHeight / 2 - positionY) / scale;\n var newScale = handleCalculateButtonZoom(contextInstance, delta, step);\n var targetState = handleZoomToPoint(contextInstance, newScale, mouseX, mouseY);\n if (!targetState) {\n return console.error(\"Error during zoom event. New transformation state was not calculated.\");\n }\n animate(contextInstance, targetState, animationTime, animationType);\n}\nfunction resetTransformations(contextInstance, animationTime, animationType, onResetTransformation) {\n var setup = contextInstance.setup, wrapperComponent = contextInstance.wrapperComponent;\n var limitToBounds = setup.limitToBounds;\n var initialTransformation = createState(contextInstance.props);\n var _a = contextInstance.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n if (!wrapperComponent)\n return;\n var newBounds = calculateBounds(contextInstance, initialTransformation.scale);\n var boundedPositions = getMouseBoundedPosition(initialTransformation.positionX, initialTransformation.positionY, newBounds, limitToBounds, 0, 0, wrapperComponent);\n var newState = {\n scale: initialTransformation.scale,\n positionX: boundedPositions.x,\n positionY: boundedPositions.y,\n };\n if (scale === initialTransformation.scale &&\n positionX === initialTransformation.positionX &&\n positionY === initialTransformation.positionY) {\n return;\n }\n onResetTransformation === null || onResetTransformation === void 0 ? void 0 : onResetTransformation();\n animate(contextInstance, newState, animationTime, animationType);\n}\nfunction getOffset(element, wrapper, content, state) {\n var offset = element.getBoundingClientRect();\n var wrapperOffset = wrapper.getBoundingClientRect();\n var contentOffset = content.getBoundingClientRect();\n var xOff = wrapperOffset.x * state.scale;\n var yOff = wrapperOffset.y * state.scale;\n return {\n x: (offset.x - contentOffset.x + xOff) / state.scale,\n y: (offset.y - contentOffset.y + yOff) / state.scale,\n };\n}\nfunction calculateZoomToNode(contextInstance, node, customZoom) {\n var wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent, transformState = contextInstance.transformState;\n var _a = contextInstance.setup, limitToBounds = _a.limitToBounds, minScale = _a.minScale, maxScale = _a.maxScale;\n if (!wrapperComponent || !contentComponent)\n return transformState;\n var wrapperRect = wrapperComponent.getBoundingClientRect();\n var nodeRect = node.getBoundingClientRect();\n var nodeOffset = getOffset(node, wrapperComponent, contentComponent, transformState);\n var nodeLeft = nodeOffset.x;\n var nodeTop = nodeOffset.y;\n var nodeWidth = nodeRect.width / transformState.scale;\n var nodeHeight = nodeRect.height / transformState.scale;\n var scaleX = wrapperComponent.offsetWidth / nodeWidth;\n var scaleY = wrapperComponent.offsetHeight / nodeHeight;\n var newScale = checkZoomBounds(customZoom || Math.min(scaleX, scaleY), minScale, maxScale, 0, false);\n var offsetX = (wrapperRect.width - nodeWidth * newScale) / 2;\n var offsetY = (wrapperRect.height - nodeHeight * newScale) / 2;\n var newPositionX = (wrapperRect.left - nodeLeft) * newScale + offsetX;\n var newPositionY = (wrapperRect.top - nodeTop) * newScale + offsetY;\n var bounds = calculateBounds(contextInstance, newScale);\n var _b = getMouseBoundedPosition(newPositionX, newPositionY, bounds, limitToBounds, 0, 0, wrapperComponent), x = _b.x, y = _b.y;\n return { positionX: x, positionY: y, scale: newScale };\n}\n\nvar zoomIn = function (contextInstance) {\n return function (step, animationTime, animationType) {\n if (step === void 0) { step = 0.5; }\n if (animationTime === void 0) { animationTime = 300; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n handleZoomToViewCenter(contextInstance, 1, step, animationTime, animationType);\n };\n};\nvar zoomOut = function (contextInstance) {\n return function (step, animationTime, animationType) {\n if (step === void 0) { step = 0.5; }\n if (animationTime === void 0) { animationTime = 300; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n handleZoomToViewCenter(contextInstance, -1, step, animationTime, animationType);\n };\n};\nvar setTransform = function (contextInstance) {\n return function (newPositionX, newPositionY, newScale, animationTime, animationType) {\n if (animationTime === void 0) { animationTime = 300; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n var _a = contextInstance.transformState, positionX = _a.positionX, positionY = _a.positionY, scale = _a.scale;\n var wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n var disabled = contextInstance.setup.disabled;\n if (disabled || !wrapperComponent || !contentComponent)\n return;\n var targetState = {\n positionX: Number.isNaN(newPositionX) ? positionX : newPositionX,\n positionY: Number.isNaN(newPositionY) ? positionY : newPositionY,\n scale: Number.isNaN(newScale) ? scale : newScale,\n };\n animate(contextInstance, targetState, animationTime, animationType);\n };\n};\nvar resetTransform = function (contextInstance) {\n return function (animationTime, animationType) {\n if (animationTime === void 0) { animationTime = 200; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n resetTransformations(contextInstance, animationTime, animationType);\n };\n};\nvar centerView = function (contextInstance) {\n return function (scale, animationTime, animationType) {\n if (animationTime === void 0) { animationTime = 200; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n var transformState = contextInstance.transformState, wrapperComponent = contextInstance.wrapperComponent, contentComponent = contextInstance.contentComponent;\n if (wrapperComponent && contentComponent) {\n var targetState = getCenterPosition(scale || transformState.scale, wrapperComponent, contentComponent);\n animate(contextInstance, targetState, animationTime, animationType);\n }\n };\n};\nvar zoomToElement = function (contextInstance) {\n return function (node, scale, animationTime, animationType) {\n if (animationTime === void 0) { animationTime = 600; }\n if (animationType === void 0) { animationType = \"easeOut\"; }\n handleCancelAnimation(contextInstance);\n var wrapperComponent = contextInstance.wrapperComponent;\n var target = typeof node === \"string\" ? document.getElementById(node) : node;\n if (wrapperComponent && target && wrapperComponent.contains(target)) {\n var targetState = calculateZoomToNode(contextInstance, target, scale);\n animate(contextInstance, targetState, animationTime, animationType);\n }\n };\n};\n\nvar getControls = function (contextInstance) {\n return {\n instance: contextInstance,\n zoomIn: zoomIn(contextInstance),\n zoomOut: zoomOut(contextInstance),\n setTransform: setTransform(contextInstance),\n resetTransform: resetTransform(contextInstance),\n centerView: centerView(contextInstance),\n zoomToElement: zoomToElement(contextInstance),\n };\n};\nvar getState = function (contextInstance) {\n return {\n instance: contextInstance,\n state: contextInstance.transformState,\n };\n};\nvar getContext = function (contextInstance) {\n var ref = {};\n Object.assign(ref, getState(contextInstance));\n Object.assign(ref, getControls(contextInstance));\n return ref;\n};\n\n// We want to make event listeners non-passive, and to do so have to check\n// that browsers support EventListenerOptions in the first place.\n// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\nvar passiveSupported = false;\nfunction makePassiveEventOption() {\n try {\n var options = {\n get passive() {\n // This function will be called when the browser\n // attempts to access the passive property.\n passiveSupported = true;\n return false;\n },\n };\n return options;\n }\n catch (err) {\n passiveSupported = false;\n return passiveSupported;\n }\n}\n\nvar isExcludedNode = function (node, excluded) {\n return excluded.some(function (exclude) {\n return node.matches(\"\".concat(exclude, \", .\").concat(exclude, \", \").concat(exclude, \" *, .\").concat(exclude, \" *\"));\n });\n};\nvar cancelTimeout = function (timeout) {\n if (timeout) {\n clearTimeout(timeout);\n }\n};\n\nvar getTransformStyles = function (x, y, scale) {\n // Standard translate prevents blurry svg on the safari\n return \"translate(\".concat(x, \"px, \").concat(y, \"px) scale(\").concat(scale, \")\");\n};\nvar getMatrixTransformStyles = function (x, y, scale) {\n // The shorthand for matrix does not work for Safari hence the need to explicitly use matrix3d\n // Refer to https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix\n var a = scale;\n var b = 0;\n var c = 0;\n var d = scale;\n var tx = x;\n var ty = y;\n return \"matrix3d(\".concat(a, \", \").concat(b, \", 0, 0, \").concat(c, \", \").concat(d, \", 0, 0, 0, 0, 1, 0, \").concat(tx, \", \").concat(ty, \", 0, 1)\");\n};\nvar getCenterPosition = function (scale, wrapperComponent, contentComponent) {\n var contentWidth = contentComponent.offsetWidth * scale;\n var contentHeight = contentComponent.offsetHeight * scale;\n var centerPositionX = (wrapperComponent.offsetWidth - contentWidth) / 2;\n var centerPositionY = (wrapperComponent.offsetHeight - contentHeight) / 2;\n return {\n scale: scale,\n positionX: centerPositionX,\n positionY: centerPositionY,\n };\n};\n\nfunction mergeRefs(refs) {\n return function (value) {\n refs.forEach(function (ref) {\n if (typeof ref === \"function\") {\n ref(value);\n }\n else if (ref != null) {\n ref.current = value;\n }\n });\n };\n}\n\nvar isWheelAllowed = function (contextInstance, event) {\n var _a = contextInstance.setup.wheel, disabled = _a.disabled, wheelDisabled = _a.wheelDisabled, touchPadDisabled = _a.touchPadDisabled, excluded = _a.excluded;\n var isInitialized = contextInstance.isInitialized, isPanning = contextInstance.isPanning;\n var target = event.target;\n var isAllowed = isInitialized && !isPanning && !disabled && target;\n if (!isAllowed)\n return false;\n // Event ctrlKey detects if touchpad action is executing wheel or pinch gesture\n if (wheelDisabled && !event.ctrlKey)\n return false;\n if (touchPadDisabled && event.ctrlKey)\n return false;\n var isExcluded = isExcludedNode(target, excluded);\n if (isExcluded)\n return false;\n return true;\n};\nvar getDeltaY = function (event) {\n if (event) {\n return event.deltaY < 0 ? 1 : -1;\n }\n return 0;\n};\nfunction getDelta(event, customDelta) {\n var deltaY = getDeltaY(event);\n var delta = checkIsNumber(customDelta, deltaY);\n return delta;\n}\nfunction getMousePosition(event, contentComponent, scale) {\n var contentRect = contentComponent.getBoundingClientRect();\n var mouseX = 0;\n var mouseY = 0;\n if (\"clientX\" in event) {\n // mouse position x, y over wrapper component\n mouseX = (event.clientX - contentRect.left) / scale;\n mouseY = (event.clientY - contentRect.top) / scale;\n }\n else {\n var touch = event.touches[0];\n mouseX = (touch.clientX - contentRect.left) / scale;\n mouseY = (touch.clientY - contentRect.top) / scale;\n }\n if (Number.isNaN(mouseX) || Number.isNaN(mouseY))\n console.error(\"No mouse or touch offset found\");\n return {\n x: mouseX,\n y: mouseY,\n };\n}\nvar handleCalculateWheelZoom = function (contextInstance, delta, step, disable, getTarget) {\n var scale = contextInstance.transformState.scale;\n var wrapperComponent = contextInstance.wrapperComponent, setup = contextInstance.setup;\n var maxScale = setup.maxScale, minScale = setup.minScale, zoomAnimation = setup.zoomAnimation, disablePadding = setup.disablePadding;\n var size = zoomAnimation.size, disabled = zoomAnimation.disabled;\n if (!wrapperComponent) {\n throw new Error(\"Wrapper is not mounted\");\n }\n var targetScale = scale + delta * step;\n if (getTarget)\n return targetScale;\n var paddingEnabled = disable ? false : !disabled;\n var newScale = checkZoomBounds(roundNumber(targetScale, 3), minScale, maxScale, size, paddingEnabled && !disablePadding);\n return newScale;\n};\nvar handleWheelZoomStop = function (contextInstance, event) {\n var previousWheelEvent = contextInstance.previousWheelEvent;\n var scale = contextInstance.transformState.scale;\n var _a = contextInstance.setup, maxScale = _a.maxScale, minScale = _a.minScale;\n if (!previousWheelEvent)\n return false;\n if (scale < maxScale || scale > minScale)\n return true;\n if (Math.sign(previousWheelEvent.deltaY) !== Math.sign(event.deltaY))\n return true;\n if (previousWheelEvent.deltaY > 0 && previousWheelEvent.deltaY < event.deltaY)\n return true;\n if (previousWheelEvent.deltaY < 0 && previousWheelEvent.deltaY > event.deltaY)\n return true;\n if (Math.sign(previousWheelEvent.deltaY) !== Math.sign(event.deltaY))\n return true;\n return false;\n};\n\nvar isPinchStartAllowed = function (contextInstance, event) {\n var _a = contextInstance.setup.pinch, disabled = _a.disabled, excluded = _a.excluded;\n var isInitialized = contextInstance.isInitialized;\n var target = event.target;\n var isAllowed = isInitialized && !disabled && target;\n if (!isAllowed)\n return false;\n var isExcluded = isExcludedNode(target, excluded);\n if (isExcluded)\n return false;\n return true;\n};\nvar isPinchAllowed = function (contextInstance) {\n var disabled = contextInstance.setup.pinch.disabled;\n var isInitialized = contextInstance.isInitialized, pinchStartDistance = contextInstance.pinchStartDistance;\n var isAllowed = isInitialized && !disabled && pinchStartDistance;\n if (!isAllowed)\n return false;\n return true;\n};\nvar calculateTouchMidPoint = function (event, scale, contentComponent) {\n var contentRect = contentComponent.getBoundingClientRect();\n var touches = event.touches;\n var firstPointX = roundNumber(touches[0].clientX - contentRect.left, 5);\n var firstPointY = roundNumber(touches[0].clientY - contentRect.top, 5);\n var secondPointX = roundNumber(touches[1].clientX - contentRect.left, 5);\n var secondPointY = roundNumber(touches[1].clientY - contentRect.top, 5);\n return {\n x: (firstPointX + secondPointX) / 2 / scale,\n y: (firstPointY + secondPointY) / 2 / scale,\n };\n};\nvar getTouchDistance = function (event) {\n return Math.sqrt(Math.pow((event.touches[0].pageX - event.touches[1].pageX), 2) +\n Math.pow((event.touches[0].pageY - event.touches[1].pageY), 2));\n};\nvar calculatePinchZoom = function (contextInstance, currentDistance) {\n var pinchStartScale = contextInstance.pinchStartScale, pinchStartDistance = contextInstance.pinchStartDistance, setup = contextInstance.setup;\n var maxScale = setup.maxScale, minScale = setup.minScale, zoomAnimation = setup.zoomAnimation, disablePadding = setup.disablePadding;\n var size = zoomAnimation.size, disabled = zoomAnimation.disabled;\n if (!pinchStartScale || pinchStartDistance === null || !currentDistance) {\n throw new Error(\"Pinch touches distance was not provided\");\n }\n if (currentDistance < 0) {\n return contextInstance.transformState.scale;\n }\n var touchProportion = currentDistance / pinchStartDistance;\n var scaleDifference = touchProportion * pinchStartScale;\n return checkZoomBounds(roundNumber(scaleDifference, 2), minScale, maxScale, size, !disabled && !disablePadding);\n};\n\nvar wheelStopEventTime = 160;\nvar wheelAnimationTime = 100;\nvar handleWheelStart = function (contextInstance, event) {\n var _a = contextInstance.props, onWheelStart = _a.onWheelStart, onZoomStart = _a.onZoomStart;\n if (!contextInstance.wheelStopEventTimer) {\n handleCancelAnimation(contextInstance);\n handleCallback(getContext(contextInstance), event, onWheelStart);\n handleCallback(getContext(contextInstance), event, onZoomStart);\n }\n};\nvar handleWheelZoom = function (contextInstance, event) {\n var _a = contextInstance.props, onWheel = _a.onWheel, onZoom = _a.onZoom;\n var contentComponent = contextInstance.contentComponent, setup = contextInstance.setup, transformState = contextInstance.transformState;\n var scale = transformState.scale;\n var limitToBounds = setup.limitToBounds, centerZoomedOut = setup.centerZoomedOut, zoomAnimation = setup.zoomAnimation, wheel = setup.wheel, disablePadding = setup.disablePadding, smooth = setup.smooth;\n var size = zoomAnimation.size, disabled = zoomAnimation.disabled;\n var step = wheel.step, smoothStep = wheel.smoothStep;\n if (!contentComponent) {\n throw new Error(\"Component not mounted\");\n }\n event.preventDefault();\n event.stopPropagation();\n var delta = getDelta(event, null);\n var zoomStep = smooth ? smoothStep * Math.abs(event.deltaY) : step;\n var newScale = handleCalculateWheelZoom(contextInstance, delta, zoomStep, !event.ctrlKey);\n // if scale not change\n if (scale === newScale)\n return;\n var bounds = handleCalculateBounds(contextInstance, newScale);\n var mousePosition = getMousePosition(event, contentComponent, scale);\n var isPaddingDisabled = disabled || size === 0 || centerZoomedOut || disablePadding;\n var isLimitedToBounds = limitToBounds && isPaddingDisabled;\n var _b = handleCalculateZoomPositions(contextInstance, mousePosition.x, mousePosition.y, newScale, bounds, isLimitedToBounds), x = _b.x, y = _b.y;\n contextInstance.previousWheelEvent = event;\n contextInstance.setTransformState(newScale, x, y);\n handleCallback(getContext(contextInstance), event, onWheel);\n handleCallback(getContext(contextInstance), event, onZoom);\n};\nvar handleWheelStop = function (contextInstance, event) {\n var _a = contextInstance.props, onWheelStop = _a.onWheelStop, onZoomStop = _a.onZoomStop;\n // fire animation\n cancelTimeout(contextInstance.wheelAnimationTimer);\n contextInstance.wheelAnimationTimer = setTimeout(function () {\n if (!contextInstance.mounted)\n return;\n handleAlignToScaleBounds(contextInstance, event.x, event.y);\n contextInstance.wheelAnimationTimer = null;\n }, wheelAnimationTime);\n // Wheel stop event\n var hasStoppedZooming = handleWheelZoomStop(contextInstance, event);\n if (hasStoppedZooming) {\n cancelTimeout(contextInstance.wheelStopEventTimer);\n contextInstance.wheelStopEventTimer = setTimeout(function () {\n if (!contextInstance.mounted)\n return;\n contextInstance.wheelStopEventTimer = null;\n handleCallback(getContext(contextInstance), event, onWheelStop);\n handleCallback(getContext(contextInstance), event, onZoomStop);\n }, wheelStopEventTime);\n }\n};\n\nvar handlePinchStart = function (contextInstance, event) {\n var distance = getTouchDistance(event);\n contextInstance.pinchStartDistance = distance;\n contextInstance.lastDistance = distance;\n contextInstance.pinchStartScale = contextInstance.transformState.scale;\n contextInstance.isPanning = false;\n handleCancelAnimation(contextInstance);\n};\nvar handlePinchZoom = function (contextInstance, event) {\n var contentComponent = contextInstance.contentComponent, pinchStartDistance = contextInstance.pinchStartDistance;\n var scale = contextInstance.transformState.scale;\n var _a = contextInstance.setup, limitToBounds = _a.limitToBounds, centerZoomedOut = _a.centerZoomedOut, zoomAnimation = _a.zoomAnimation;\n var disabled = zoomAnimation.disabled, size = zoomAnimation.size;\n // if one finger starts from outside of wrapper\n if (pinchStartDistance === null || !contentComponent)\n return;\n var midPoint = calculateTouchMidPoint(event, scale, contentComponent);\n // if touches goes off of the wrapper element\n if (!Number.isFinite(midPoint.x) || !Number.isFinite(midPoint.y))\n return;\n var currentDistance = getTouchDistance(event);\n var newScale = calculatePinchZoom(contextInstance, currentDistance);\n if (newScale === scale)\n return;\n var bounds = handleCalculateBounds(contextInstance, newScale);\n var isPaddingDisabled = disabled || size === 0 || centerZoomedOut;\n var isLimitedToBounds = limitToBounds && isPaddingDisabled;\n var _b = handleCalculateZoomPositions(contextInstance, midPoint.x, midPoint.y, newScale, bounds, isLimitedToBounds), x = _b.x, y = _b.y;\n contextInstance.pinchMidpoint = midPoint;\n contextInstance.lastDistance = currentDistance;\n contextInstance.setTransformState(newScale, x, y);\n};\nvar handlePinchStop = function (contextInstance) {\n var pinchMidpoint = contextInstance.pinchMidpoint;\n contextInstance.velocity = null;\n contextInstance.lastDistance = null;\n contextInstance.pinchMidpoint = null;\n contextInstance.pinchStartScale = null;\n contextInstance.pinchStartDistance = null;\n handleAlignToScaleBounds(contextInstance, pinchMidpoint === null || pinchMidpoint === void 0 ? void 0 : pinchMidpoint.x, pinchMidpoint === null || pinchMidpoint === void 0 ? void 0 : pinchMidpoint.y);\n};\n\nvar handleDoubleClickStop = function (contextInstance, event) {\n var onZoomStop = contextInstance.props.onZoomStop;\n var animationTime = contextInstance.setup.doubleClick.animationTime;\n cancelTimeout(contextInstance.doubleClickStopEventTimer);\n contextInstance.doubleClickStopEventTimer = setTimeout(function () {\n contextInstance.doubleClickStopEventTimer = null;\n handleCallback(getContext(contextInstance), event, onZoomStop);\n }, animationTime);\n};\nvar handleDoubleClickResetMode = function (contextInstance, event) {\n var _a = contextInstance.props, onZoomStart = _a.onZoomStart, onZoom = _a.onZoom;\n var _b = contextInstance.setup.doubleClick, animationTime = _b.animationTime, animationType = _b.animationType;\n handleCallback(getContext(contextInstance), event, onZoomStart);\n resetTransformations(contextInstance, animationTime, animationType, function () {\n return handleCallback(getContext(contextInstance), event, onZoom);\n });\n handleDoubleClickStop(contextInstance, event);\n};\nfunction getDoubleClickScale(mode, scale) {\n if (mode === \"toggle\") {\n return scale === 1 ? 1 : -1;\n }\n return mode === \"zoomOut\" ? -1 : 1;\n}\nfunction handleDoubleClick(contextInstance, event) {\n var setup = contextInstance.setup, doubleClickStopEventTimer = contextInstance.doubleClickStopEventTimer, transformState = contextInstance.transformState, contentComponent = contextInstance.contentComponent;\n var scale = transformState.scale;\n var _a = contextInstance.props, onZoomStart = _a.onZoomStart, onZoom = _a.onZoom;\n var _b = setup.doubleClick, disabled = _b.disabled, mode = _b.mode, step = _b.step, animationTime = _b.animationTime, animationType = _b.animationType;\n if (disabled)\n return;\n if (doubleClickStopEventTimer)\n return;\n if (mode === \"reset\") {\n return handleDoubleClickResetMode(contextInstance, event);\n }\n if (!contentComponent)\n return console.error(\"No ContentComponent found\");\n var delta = getDoubleClickScale(mode, contextInstance.transformState.scale);\n var newScale = handleCalculateButtonZoom(contextInstance, delta, step);\n // stop execution when scale didn't change\n if (scale === newScale)\n return;\n handleCallback(getContext(contextInstance), event, onZoomStart);\n var mousePosition = getMousePosition(event, contentComponent, scale);\n var targetState = handleZoomToPoint(contextInstance, newScale, mousePosition.x, mousePosition.y);\n if (!targetState) {\n return console.error(\"Error during zoom event. New transformation state was not calculated.\");\n }\n handleCallback(getContext(contextInstance), event, onZoom);\n animate(contextInstance, targetState, animationTime, animationType);\n handleDoubleClickStop(contextInstance, event);\n}\nvar isDoubleClickAllowed = function (contextInstance, event) {\n var isInitialized = contextInstance.isInitialized, setup = contextInstance.setup, wrapperComponent = contextInstance.wrapperComponent;\n var _a = setup.doubleClick, disabled = _a.disabled, excluded = _a.excluded;\n var target = event.target;\n var isWrapperChild = wrapperComponent === null || wrapperComponent === void 0 ? void 0 : wrapperComponent.contains(target);\n var isAllowed = isInitialized && target && isWrapperChild && !disabled;\n if (!isAllowed)\n return false;\n var isExcluded = isExcludedNode(target, excluded);\n if (isExcluded)\n return false;\n return true;\n};\n\nvar ZoomPanPinch = /** @class */ (function () {\n function ZoomPanPinch(props) {\n var _this = this;\n this.mounted = true;\n this.onChangeCallbacks = new Set();\n this.onInitCallbacks = new Set();\n // Components\n this.wrapperComponent = null;\n this.contentComponent = null;\n // Initialization\n this.isInitialized = false;\n this.bounds = null;\n // wheel helpers\n this.previousWheelEvent = null;\n this.wheelStopEventTimer = null;\n this.wheelAnimationTimer = null;\n // panning helpers\n this.isPanning = false;\n this.isWheelPanning = false;\n this.startCoords = null;\n this.lastTouch = null;\n // pinch helpers\n this.distance = null;\n this.lastDistance = null;\n this.pinchStartDistance = null;\n this.pinchStartScale = null;\n this.pinchMidpoint = null;\n // double click helpers\n this.doubleClickStopEventTimer = null;\n // velocity helpers\n this.velocity = null;\n this.velocityTime = null;\n this.lastMousePosition = null;\n // animations helpers\n this.animate = false;\n this.animation = null;\n this.maxBounds = null;\n // key press\n this.pressedKeys = {};\n this.mount = function () {\n _this.initializeWindowEvents();\n };\n this.unmount = function () {\n _this.cleanupWindowEvents();\n };\n this.update = function (newProps) {\n _this.props = newProps;\n handleCalculateBounds(_this, _this.transformState.scale);\n _this.setup = createSetup(newProps);\n };\n this.initializeWindowEvents = function () {\n var _a, _b;\n var passive = makePassiveEventOption();\n var currentDocument = (_a = _this.wrapperComponent) === null || _a === void 0 ? void 0 : _a.ownerDocument;\n var currentWindow = currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.defaultView;\n (_b = _this.wrapperComponent) === null || _b === void 0 ? void 0 : _b.addEventListener(\"wheel\", _this.onWheelPanning, passive);\n // Panning on window to allow panning when mouse is out of component wrapper\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"mousedown\", _this.onPanningStart, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"mousemove\", _this.onPanning, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"mouseup\", _this.onPanningStop, passive);\n currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.addEventListener(\"mouseleave\", _this.clearPanning, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"keyup\", _this.setKeyUnPressed, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.addEventListener(\"keydown\", _this.setKeyPressed, passive);\n };\n this.cleanupWindowEvents = function () {\n var _a, _b;\n var passive = makePassiveEventOption();\n var currentDocument = (_a = _this.wrapperComponent) === null || _a === void 0 ? void 0 : _a.ownerDocument;\n var currentWindow = currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.defaultView;\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"mousedown\", _this.onPanningStart, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"mousemove\", _this.onPanning, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"mouseup\", _this.onPanningStop, passive);\n currentDocument === null || currentDocument === void 0 ? void 0 : currentDocument.removeEventListener(\"mouseleave\", _this.clearPanning, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"keyup\", _this.setKeyUnPressed, passive);\n currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.removeEventListener(\"keydown\", _this.setKeyPressed, passive);\n document.removeEventListener(\"mouseleave\", _this.clearPanning, passive);\n handleCancelAnimation(_this);\n (_b = _this.observer) === null || _b === void 0 ? void 0 : _b.disconnect();\n };\n this.handleInitializeWrapperEvents = function (wrapper) {\n // Zooming events on wrapper\n var passive = makePassiveEventOption();\n wrapper.addEventListener(\"wheel\", _this.onWheelZoom, passive);\n wrapper.addEventListener(\"dblclick\", _this.onDoubleClick, passive);\n wrapper.addEventListener(\"touchstart\", _this.onTouchPanningStart, passive);\n wrapper.addEventListener(\"touchmove\", _this.onTouchPanning, passive);\n wrapper.addEventListener(\"touchend\", _this.onTouchPanningStop, passive);\n };\n this.handleInitialize = function (contentComponent) {\n var centerOnInit = _this.setup.centerOnInit;\n _this.applyTransformation();\n _this.onInitCallbacks.forEach(function (callback) { return callback(getContext(_this)); });\n if (centerOnInit) {\n _this.setCenter();\n _this.observer = new ResizeObserver(function () {\n var _a;\n var currentWidth = contentComponent.offsetWidth;\n var currentHeight = contentComponent.offsetHeight;\n if (currentWidth > 0 || currentHeight > 0) {\n _this.onInitCallbacks.forEach(function (callback) { return callback(getContext(_this)); });\n _this.setCenter();\n (_a = _this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();\n }\n });\n // if nothing about the contentComponent has changed after 5 seconds, disconnect the observer\n setTimeout(function () {\n var _a;\n (_a = _this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();\n }, 5000);\n // Start observing the target node for configured mutations\n _this.observer.observe(contentComponent);\n }\n };\n /// ///////\n // Zoom\n /// ///////\n this.onWheelZoom = function (event) {\n var disabled = _this.setup.disabled;\n if (disabled)\n return;\n var isAllowed = isWheelAllowed(_this, event);\n if (!isAllowed)\n return;\n var keysPressed = _this.isPressingKeys(_this.setup.wheel.activationKeys);\n if (!keysPressed)\n return;\n handleWheelStart(_this, event);\n handleWheelZoom(_this, event);\n handleWheelStop(_this, event);\n };\n /// ///////\n // Pan\n /// ///////\n this.onWheelPanning = function (event) {\n var _a = _this.setup, disabled = _a.disabled, wheel = _a.wheel, panning = _a.panning;\n if (!_this.wrapperComponent ||\n !_this.contentComponent ||\n disabled ||\n !wheel.wheelDisabled ||\n panning.disabled ||\n !panning.wheelPanning ||\n event.ctrlKey) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n var _b = _this.transformState, positionX = _b.positionX, positionY = _b.positionY;\n var mouseX = positionX - event.deltaX;\n var mouseY = positionY - event.deltaY;\n var newPositionX = panning.lockAxisX ? positionX : mouseX;\n var newPositionY = panning.lockAxisY ? positionY : mouseY;\n var _c = _this.setup.alignmentAnimation, sizeX = _c.sizeX, sizeY = _c.sizeY;\n var paddingValueX = getPaddingValue(_this, sizeX);\n var paddingValueY = getPaddingValue(_this, sizeY);\n if (newPositionX === positionX && newPositionY === positionY)\n return;\n handleNewPosition(_this, newPositionX, newPositionY, paddingValueX, paddingValueY);\n };\n this.onPanningStart = function (event) {\n var disabled = _this.setup.disabled;\n var onPanningStart = _this.props.onPanningStart;\n if (disabled)\n return;\n var isAllowed = isPanningStartAllowed(_this, event);\n if (!isAllowed)\n return;\n var keysPressed = _this.isPressingKeys(_this.setup.panning.activationKeys);\n if (!keysPressed)\n return;\n if (event.button === 0 && !_this.setup.panning.allowLeftClickPan)\n return;\n if (event.button === 1 && !_this.setup.panning.allowMiddleClickPan)\n return;\n if (event.button === 2 && !_this.setup.panning.allowRightClickPan)\n return;\n event.preventDefault();\n event.stopPropagation();\n handleCancelAnimation(_this);\n handlePanningStart(_this, event);\n handleCallback(getContext(_this), event, onPanningStart);\n };\n this.onPanning = function (event) {\n var disabled = _this.setup.disabled;\n var onPanning = _this.props.onPanning;\n if (disabled)\n return;\n var isAllowed = isPanningAllowed(_this);\n if (!isAllowed)\n return;\n var keysPressed = _this.isPressingKeys(_this.setup.panning.activationKeys);\n if (!keysPressed)\n return;\n event.preventDefault();\n event.stopPropagation();\n handlePanning(_this, event.clientX, event.clientY);\n handleCallback(getContext(_this), event, onPanning);\n };\n this.onPanningStop = function (event) {\n var onPanningStop = _this.props.onPanningStop;\n if (_this.isPanning) {\n handlePanningEnd(_this);\n handleCallback(getContext(_this), event, onPanningStop);\n }\n };\n /// ///////\n // Pinch\n /// ///////\n this.onPinchStart = function (event) {\n var disabled = _this.setup.disabled;\n var _a = _this.props, onPinchingStart = _a.onPinchingStart, onZoomStart = _a.onZoomStart;\n if (disabled)\n return;\n var isAllowed = isPinchStartAllowed(_this, event);\n if (!isAllowed)\n return;\n handlePinchStart(_this, event);\n handleCancelAnimation(_this);\n handleCallback(getContext(_this), event, onPinchingStart);\n handleCallback(getContext(_this), event, onZoomStart);\n };\n this.onPinch = function (event) {\n var disabled = _this.setup.disabled;\n var _a = _this.props, onPinching = _a.onPinching, onZoom = _a.onZoom;\n if (disabled)\n return;\n var isAllowed = isPinchAllowed(_this);\n if (!isAllowed)\n return;\n event.preventDefault();\n event.stopPropagation();\n handlePinchZoom(_this, event);\n handleCallback(getContext(_this), event, onPinching);\n handleCallback(getContext(_this), event, onZoom);\n };\n this.onPinchStop = function (event) {\n var _a = _this.props, onPinchingStop = _a.onPinchingStop, onZoomStop = _a.onZoomStop;\n if (_this.pinchStartScale) {\n handlePinchStop(_this);\n handleCallback(getContext(_this), event, onPinchingStop);\n handleCallback(getContext(_this), event, onZoomStop);\n }\n };\n /// ///////\n // Touch\n /// ///////\n this.onTouchPanningStart = function (event) {\n var disabled = _this.setup.disabled;\n var onPanningStart = _this.props.onPanningStart;\n if (disabled)\n return;\n var isAllowed = isPanningStartAllowed(_this, event);\n if (!isAllowed)\n return;\n var isDoubleTap = _this.lastTouch && +new Date() - _this.lastTouch < 200;\n if (isDoubleTap && event.touches.length === 1) {\n _this.onDoubleClick(event);\n }\n else {\n _this.lastTouch = +new Date();\n handleCancelAnimation(_this);\n var touches = event.touches;\n var isPanningAction = touches.length === 1;\n var isPinchAction = touches.length === 2;\n if (isPanningAction) {\n handleCancelAnimation(_this);\n handlePanningStart(_this, event);\n handleCallback(getContext(_this), event, onPanningStart);\n }\n if (isPinchAction) {\n _this.onPinchStart(event);\n }\n }\n };\n this.onTouchPanning = function (event) {\n var disabled = _this.setup.disabled;\n var onPanning = _this.props.onPanning;\n if (_this.isPanning && event.touches.length === 1) {\n if (disabled)\n return;\n var isAllowed = isPanningAllowed(_this);\n if (!isAllowed)\n return;\n event.preventDefault();\n event.stopPropagation();\n var touch = event.touches[0];\n handlePanning(_this, touch.clientX, touch.clientY);\n handleCallback(getContext(_this), event, onPanning);\n }\n else if (event.touches.length > 1) {\n _this.onPinch(event);\n }\n };\n this.onTouchPanningStop = function (event) {\n _this.onPanningStop(event);\n _this.onPinchStop(event);\n };\n /// ///////\n // Double Click\n /// ///////\n this.onDoubleClick = function (event) {\n var disabled = _this.setup.disabled;\n if (disabled)\n return;\n var isAllowed = isDoubleClickAllowed(_this, event);\n if (!isAllowed)\n return;\n handleDoubleClick(_this, event);\n };\n /// ///////\n // Helpers\n /// ///////\n this.clearPanning = function (event) {\n if (_this.isPanning) {\n _this.onPanningStop(event);\n }\n };\n this.setKeyPressed = function (e) {\n _this.pressedKeys[e.key] = true;\n };\n this.setKeyUnPressed = function (e) {\n _this.pressedKeys[e.key] = false;\n };\n this.isPressingKeys = function (keys) {\n if (!keys.length) {\n return true;\n }\n return Boolean(keys.find(function (key) { return _this.pressedKeys[key]; }));\n };\n this.setTransformState = function (scale, positionX, positionY) {\n var onTransformed = _this.props.onTransformed;\n if (!Number.isNaN(scale) &&\n !Number.isNaN(positionX) &&\n !Number.isNaN(positionY)) {\n if (scale !== _this.transformState.scale) {\n _this.transformState.previousScale = _this.transformState.scale;\n _this.transformState.scale = scale;\n }\n _this.transformState.positionX = positionX;\n _this.transformState.positionY = positionY;\n _this.applyTransformation();\n var ctx_1 = getContext(_this);\n _this.onChangeCallbacks.forEach(function (callback) { return callback(ctx_1); });\n handleCallback(ctx_1, { scale: scale, positionX: positionX, positionY: positionY }, onTransformed);\n }\n else {\n console.error(\"Detected NaN set state values\");\n }\n };\n this.setCenter = function () {\n if (_this.wrapperComponent && _this.contentComponent) {\n var targetState = getCenterPosition(_this.transformState.scale, _this.wrapperComponent, _this.contentComponent);\n _this.setTransformState(targetState.scale, targetState.positionX, targetState.positionY);\n }\n };\n this.handleTransformStyles = function (x, y, scale) {\n if (_this.props.customTransform) {\n return _this.props.customTransform(x, y, scale);\n }\n return getTransformStyles(x, y, scale);\n };\n this.applyTransformation = function () {\n if (!_this.mounted || !_this.contentComponent)\n return;\n var _a = _this.transformState, scale = _a.scale, positionX = _a.positionX, positionY = _a.positionY;\n var transform = _this.handleTransformStyles(positionX, positionY, scale);\n _this.contentComponent.style.transform = transform;\n };\n this.getContext = function () {\n return getContext(_this);\n };\n /**\n * Hooks\n */\n this.onChange = function (callback) {\n if (!_this.onChangeCallbacks.has(callback)) {\n _this.onChangeCallbacks.add(callback);\n }\n return function () {\n _this.onChangeCallbacks.delete(callback);\n };\n };\n this.onInit = function (callback) {\n if (!_this.onInitCallbacks.has(callback)) {\n _this.onInitCallbacks.add(callback);\n }\n return function () {\n _this.onInitCallbacks.delete(callback);\n };\n };\n /**\n * Initialization\n */\n this.init = function (wrapperComponent, contentComponent) {\n _this.cleanupWindowEvents();\n _this.wrapperComponent = wrapperComponent;\n _this.contentComponent = contentComponent;\n handleCalculateBounds(_this, _this.transformState.scale);\n _this.handleInitializeWrapperEvents(wrapperComponent);\n _this.handleInitialize(contentComponent);\n _this.initializeWindowEvents();\n _this.isInitialized = true;\n var ctx = getContext(_this);\n handleCallback(ctx, undefined, _this.props.onInit);\n };\n this.props = props;\n this.setup = createSetup(this.props);\n this.transformState = createState(this.props);\n }\n return ZoomPanPinch;\n}());\n\nvar Context = React.createContext(null);\nvar getContent = function (children, ctx) {\n if (typeof children === \"function\") {\n return children(ctx);\n }\n return children;\n};\nvar TransformWrapper = React.forwardRef(function (props, ref) {\n var instance = useRef(new ZoomPanPinch(props)).current;\n var content = getContent(props.children, getControls(instance));\n useImperativeHandle(ref, function () { return getControls(instance); }, [instance]);\n useEffect(function () {\n instance.update(props);\n }, [instance, props]);\n return React.createElement(Context.Provider, { value: instance }, content);\n});\n\nvar KeepScale = React.forwardRef(function (props, ref) {\n var localRef = useRef(null);\n var instance = useContext(Context);\n useEffect(function () {\n return instance.onChange(function (ctx) {\n if (localRef.current) {\n var positionX = 0;\n var positionY = 0;\n localRef.current.style.transform = instance.handleTransformStyles(positionX, positionY, 1 / ctx.instance.transformState.scale);\n }\n });\n }, [instance]);\n return React.createElement(\"div\", __assign({}, props, { ref: mergeRefs([localRef, ref]) }));\n});\n\nvar initialElementRect = {\n width: 0,\n height: 0,\n y: 0,\n x: 0,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n};\nvar useResize = function (ref, onResize, dependencies) {\n var resizeObserverRef = useRef();\n var rectRef = useRef(initialElementRect);\n var didUnmount = useRef(false);\n useLayoutEffect(function () {\n var _a;\n didUnmount.current = false;\n if (!(\"ResizeObserver\" in window)) {\n return;\n }\n if (ref) {\n resizeObserverRef.current = new ResizeObserver(function (entries) {\n var newSize = ref.getBoundingClientRect();\n if (!Array.isArray(entries) ||\n !entries.length ||\n didUnmount.current ||\n (newSize.width === rectRef.current.width &&\n newSize.height === rectRef.current.height))\n return;\n onResize(newSize, ref);\n rectRef.current = newSize;\n });\n (_a = resizeObserverRef.current) === null || _a === void 0 ? void 0 : _a.observe(ref);\n }\n return function () {\n var _a;\n didUnmount.current = true;\n if (ref) {\n (_a = resizeObserverRef.current) === null || _a === void 0 ? void 0 : _a.unobserve(ref);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, __spreadArray([onResize, ref], dependencies, true));\n};\n\nvar previewStyles = {\n position: \"absolute\",\n zIndex: 2,\n top: \"0px\",\n left: \"0px\",\n boxSizing: \"border-box\",\n border: \"3px solid red\",\n transformOrigin: \"0% 0%\",\n boxShadow: \"rgba(0,0,0,0.2) 0 0 0 10000000px\",\n};\nvar MiniMap = function (_a) {\n var _b = _a.width, width = _b === void 0 ? 200 : _b, _c = _a.height, height = _c === void 0 ? 200 : _c, _d = _a.borderColor, borderColor = _d === void 0 ? \"red\" : _d, children = _a.children, rest = __rest(_a, [\"width\", \"height\", \"borderColor\", \"children\"]);\n var _e = useState(false), initialized = _e[0], setInitialized = _e[1];\n var instance = useTransformContext();\n var miniMapInstance = useRef(null);\n var mainRef = useRef(null);\n var wrapperRef = useRef(null);\n var previewRef = useRef(null);\n var getContentSize = useCallback(function () {\n if (instance.contentComponent) {\n var rect = instance.contentComponent.getBoundingClientRect();\n return {\n width: rect.width / instance.transformState.scale,\n height: rect.height / instance.transformState.scale,\n };\n }\n return {\n width: 0,\n height: 0,\n };\n }, [instance.contentComponent, instance.transformState.scale]);\n var computeMiniMapScale = useCallback(function () {\n var contentSize = getContentSize();\n var scaleX = width / contentSize.width;\n var scaleY = height / contentSize.height;\n var scale = scaleY > scaleX ? scaleX : scaleY;\n return scale;\n }, [getContentSize, height, width]);\n var computeMiniMapSize = function () {\n var contentSize = getContentSize();\n var scaleX = width / contentSize.width;\n var scaleY = height / contentSize.height;\n if (scaleY > scaleX) {\n return { width: width, height: contentSize.height * scaleX };\n }\n return { width: contentSize.width * scaleY, height: height };\n };\n var computeMiniMapStyle = function () {\n var scale = computeMiniMapScale();\n var style = {\n transform: \"scale(\".concat(scale || 1, \")\"),\n transformOrigin: \"0% 0%\",\n position: \"absolute\",\n boxSizing: \"border-box\",\n zIndex: 1,\n overflow: \"hidden\",\n };\n Object.keys(style).forEach(function (key) {\n if (wrapperRef.current) {\n wrapperRef.current.style[key] = style[key];\n }\n });\n };\n var transformMiniMap = function () {\n computeMiniMapStyle();\n var miniSize = computeMiniMapSize();\n var wrapSize = getContentSize();\n if (wrapperRef.current) {\n wrapperRef.current.style.width = \"\".concat(wrapSize.width, \"px\");\n wrapperRef.current.style.height = \"\".concat(wrapSize.height, \"px\");\n }\n if (mainRef.current) {\n mainRef.current.style.width = \"\".concat(miniSize.width, \"px\");\n mainRef.current.style.height = \"\".concat(miniSize.height, \"px\");\n }\n if (previewRef.current) {\n var size = getContentSize();\n var scale = computeMiniMapScale();\n var previewScale = scale * (1 / instance.transformState.scale);\n var transform = instance.handleTransformStyles(-instance.transformState.positionX * previewScale, -instance.transformState.positionY * previewScale, 1);\n previewRef.current.style.transform = transform;\n previewRef.current.style.width = \"\".concat(size.width * previewScale, \"px\");\n previewRef.current.style.height = \"\".concat(size.height * previewScale, \"px\");\n }\n };\n var initialize = function () {\n transformMiniMap();\n };\n useTransformEffect(function () {\n transformMiniMap();\n });\n useTransformInit(function () {\n initialize();\n setInitialized(true);\n });\n useResize(instance.contentComponent, initialize, [initialized]);\n useEffect(function () {\n return instance.onChange(function (zpp) {\n var scale = computeMiniMapScale();\n if (miniMapInstance.current) {\n miniMapInstance.current.instance.transformState.scale =\n zpp.instance.transformState.scale;\n miniMapInstance.current.instance.transformState.positionX =\n zpp.instance.transformState.positionX * scale;\n miniMapInstance.current.instance.transformState.positionY =\n zpp.instance.transformState.positionY * scale;\n }\n });\n }, [computeMiniMapScale, instance, miniMapInstance]);\n var wrapperStyle = useMemo(function () {\n return {\n position: \"relative\",\n zIndex: 2,\n overflow: \"hidden\",\n };\n }, []);\n return (React.createElement(\"div\", __assign({}, rest, { ref: mainRef, style: wrapperStyle, className: \"rzpp-mini-map \".concat(rest.className || \"\") }),\n React.createElement(\"div\", __assign({}, rest, { ref: wrapperRef, className: \"rzpp-wrapper\" }), children),\n React.createElement(\"div\", { className: \"rzpp-preview\", ref: previewRef, style: __assign(__assign({}, previewStyles), { borderColor: borderColor }) })));\n};\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".transform-component-module_wrapper__SPB86 {\\n position: relative;\\n width: -moz-fit-content;\\n width: fit-content;\\n height: -moz-fit-content;\\n height: fit-content;\\n overflow: hidden;\\n -webkit-touch-callout: none; /* iOS Safari */\\n -webkit-user-select: none; /* Safari */\\n -khtml-user-select: none; /* Konqueror HTML */\\n -moz-user-select: none; /* Firefox */\\n -ms-user-select: none; /* Internet Explorer/Edge */\\n user-select: none;\\n margin: 0;\\n padding: 0;\\n}\\n.transform-component-module_content__FBWxo {\\n display: flex;\\n flex-wrap: wrap;\\n width: -moz-fit-content;\\n width: fit-content;\\n height: -moz-fit-content;\\n height: fit-content;\\n margin: 0;\\n padding: 0;\\n transform-origin: 0% 0%;\\n}\\n.transform-component-module_content__FBWxo img {\\n pointer-events: none;\\n}\\n\";\nvar styles = {\"wrapper\":\"transform-component-module_wrapper__SPB86\",\"content\":\"transform-component-module_content__FBWxo\"};\nstyleInject(css_248z);\n\nvar TransformComponent = function (_a) {\n var children = _a.children, _b = _a.wrapperClass, wrapperClass = _b === void 0 ? \"\" : _b, _c = _a.contentClass, contentClass = _c === void 0 ? \"\" : _c, wrapperStyle = _a.wrapperStyle, contentStyle = _a.contentStyle, _d = _a.wrapperProps, wrapperProps = _d === void 0 ? {} : _d, _e = _a.contentProps, contentProps = _e === void 0 ? {} : _e;\n var _f = useContext(Context), init = _f.init, cleanupWindowEvents = _f.cleanupWindowEvents;\n var wrapperRef = useRef(null);\n var contentRef = useRef(null);\n useEffect(function () {\n var wrapper = wrapperRef.current;\n var content = contentRef.current;\n if (wrapper !== null && content !== null && init) {\n init === null || init === void 0 ? void 0 : init(wrapper, content);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return function () {\n cleanupWindowEvents === null || cleanupWindowEvents === void 0 ? void 0 : cleanupWindowEvents();\n };\n }, []);\n return (React.createElement(\"div\", __assign({}, wrapperProps, { ref: wrapperRef, className: \"react-transform-wrapper \".concat(styles.wrapper, \" \").concat(wrapperClass), style: wrapperStyle }),\n React.createElement(\"div\", __assign({}, contentProps, { ref: contentRef, className: \"react-transform-component \".concat(styles.content, \" \").concat(contentClass), style: contentStyle }), children)));\n};\n\nvar useTransformContext = function () {\n var libraryContext = useContext(Context);\n if (!libraryContext) {\n throw new Error(\"Transform context must be placed inside TransformWrapper\");\n }\n return libraryContext;\n};\n\nvar useControls = function () {\n var libraryContext = useTransformContext();\n return getControls(libraryContext);\n};\n\nvar useTransformInit = function (callback) {\n var libraryContext = useTransformContext();\n useEffect(function () {\n var unmountCallback;\n var unmount;\n if (libraryContext.contentComponent && libraryContext.wrapperComponent) {\n unmountCallback = callback(getState(libraryContext));\n }\n else {\n unmount = libraryContext.onInit(function (ref) {\n unmountCallback = callback(getState(ref.instance));\n });\n }\n return function () {\n unmount === null || unmount === void 0 ? void 0 : unmount();\n unmountCallback === null || unmountCallback === void 0 ? void 0 : unmountCallback();\n };\n }, []);\n};\n\nvar useTransformEffect = function (callback) {\n var libraryContext = useTransformContext();\n useEffect(function () {\n var unmountCallback;\n var unmount = libraryContext.onChange(function (ref) {\n unmountCallback = callback(getState(ref.instance));\n });\n return function () {\n unmount();\n unmountCallback === null || unmountCallback === void 0 ? void 0 : unmountCallback();\n };\n }, [callback, libraryContext]);\n};\n\nexport { Context, KeepScale, MiniMap, TransformComponent, TransformWrapper, getCenterPosition, getMatrixTransformStyles, getTransformStyles, useControls, useTransformContext, useTransformEffect, useTransformInit };\n//# sourceMappingURL=index.esm.js.map\n","import { IGeneralData } from './generalData';\r\nimport * as helper from './scs-html-helper';\r\n\r\nexport class ImageController {\r\n private static _instance: ImageController;\r\n\r\n // This const affects rotation sensitivity dragging with mouse, higher value make's it less sensitive.\r\n private readonly pixelsPerDegree = 3;\r\n\r\n static get instance() {\r\n return this._instance || (this._instance = new this());\r\n }\r\n\r\n public getRotatedImageIndex(currentPositionX: number, animationSequenceLength: number,\r\n dragStartScreenX: number, dragStartImageIndex: number): number {\r\n let result = 0;\r\n \r\n const numImages = animationSequenceLength;\r\n const pixelsPerImage = this.pixelsPerDegree * (50 / numImages);\r\n\r\n // Pixels moved:\r\n const dx: number = (currentPositionX - dragStartScreenX) / pixelsPerImage;\r\n let index = Math.floor(dx) % numImages;\r\n\r\n // Setting rotation direction: +- x\r\n index = numImages - index;\r\n\r\n // Calculate real index in the boundaries of 3d images length:\r\n result = (index + dragStartImageIndex) % numImages;\r\n\r\n return result;\r\n }\r\n\r\n public getImageHeight(generalData: IGeneralData): number {\r\n let newImageHeight;\r\n let currentWindowWidth = helper.isMobileShop() ? window.outerWidth : window.innerWidth;\r\n \r\n // for zoom in browser feature\r\n if(window.devicePixelRatio > 1 && !helper.isMobileShop() && !helper.isTabletView())\r\n currentWindowWidth = currentWindowWidth / window.devicePixelRatio;\r\n\r\n if (currentWindowWidth < generalData.breakPointMobile) {\r\n newImageHeight = generalData.imageHeightMobile;\r\n }\r\n else if (currentWindowWidth < generalData.breakPointTablet) {\r\n newImageHeight = generalData.imageHeightTablet;\r\n }\r\n else if (currentWindowWidth < generalData.breakPointDesktopMin) {\r\n newImageHeight = generalData.imageHeightDesktopMin;\r\n }\r\n else {\r\n // greater then 1200\r\n newImageHeight = generalData.imageHeightDesktopMax;\r\n }\r\n\r\n return newImageHeight;\r\n }\r\n}\r\n","import React, { ReactNode } from 'react';\r\nimport { IThreeSixtyAnimationProps, IThreeSixtyAnimationState } from './threeSixtyAnimation.d';\r\nimport IconZoomOut from '../../Assets/svg/icon_zoom_out';\r\nimport IconZoomIn from '../../Assets/svg/icon_zoom_in';\r\nimport * as helper from '../common/scs-html-helper';\r\nimport './threeSixtyAnimation.scss';\r\nimport { SCSScrollLock } from '../common/scs-scrollLock';\r\nimport LoadingSpinner from '../common/loadingSpinner/loadingSpinner';\r\nimport IconPlayStop from '../../Assets/svg/icon_play_stop';\r\nimport { TransformWrapper, TransformComponent, ReactZoomPanPinchRef } from 'react-zoom-pan-pinch';\r\n\r\nimport {ImageController} from '../common/imageController';\r\n\r\nconst minZoomLevel = 0;\r\nconst maxZoomLevel = 2;\r\n\r\nexport default class ThreeSixtyAnimation extends React.Component {\r\n \r\n private animationTimer: ReturnType;\r\n private windowResizeTimer: ReturnType;\r\n private animationRef = React.createRef();\r\n private threeDImagesRef = React.createRef();\r\n private zoomBtn = React.createRef();\r\n private threeDOverlay: HTMLElement;\r\n private imageLoadedProgress: number;\r\n private scrollLock: SCSScrollLock;\r\n private reactZoomPanPinchRef: ReactZoomPanPinchRef;\r\n private offset = 0;\r\n\r\n private imageController: ImageController;\r\n\r\n // image move feature:\r\n private gMouseDownX = 0;\r\n private gMouseDownY = 0;\r\n private gMouseDownOffsetX = 0;\r\n private gMouseDownOffsetY = 0;\r\n private activeImageContainer: HTMLElement;\r\n //--\r\n \r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dragging: false,\r\n imageIndex: 1,\r\n animationSequenceIndex: 1, // mostly used in pf component slider\r\n dragStartImageIndex: 0,\r\n playAnimation: true,\r\n dragStartScreenX: 0,\r\n animationIsLoaded: false,\r\n currentImageHeight: 0,\r\n zoomInLevel: minZoomLevel,\r\n imageMovementIsEnabled: false,\r\n loadContentAfterPageLoad: this.props.loadContentAfterPageLoad,\r\n zoomedImageIndex: null,\r\n zoomedImageHeight: null,\r\n loadAnimation: false, // prevents image load during component render time\r\n displayThreeSixtyOverlay: false, // needed for kiosk pc\r\n imageHeight: null\r\n };\r\n\r\n this.imageLoadedProgress = 0;\r\n this.imageController = ImageController.instance;\r\n\r\n // Init events:\r\n this.handleRotationByHand = this.handleRotationByHand.bind(this);\r\n this.handleRotationByTouch = this.handleRotationByTouch.bind(this);\r\n this.handleTouchend = this.handleTouchend.bind(this);\r\n this.handleMouseDown = this.handleMouseDown.bind(this);\r\n this.handleTouchDown = this.handleTouchDown.bind(this);\r\n this.preventDragHandler = this.preventDragHandler.bind(this);\r\n this.handleStartStopClick = this.handleStartStopClick.bind(this); \r\n this.restartAnimation = this.restartAnimation.bind(this);\r\n this.handleWindowResize = this.handleWindowResize.bind(this);\r\n this.handleZoomInClick = this.handleZoomInClick.bind(this);\r\n this.handleZoomOutClick = this.handleZoomOutClick.bind(this);\r\n this.openThreeSixtyOverlay = this.openThreeSixtyOverlay.bind(this);\r\n \r\n this.onPinchingStart = this.onPinchingStart.bind(this);\r\n this.onPinchingStop = this.onPinchingStop.bind(this);\r\n this.handleOnInit = this.handleOnInit.bind(this);\r\n this.onEnterViewport = this.onEnterViewport.bind(this);\r\n\r\n // image zoom feature:\r\n if(this.props.showOverlayAnimation) {\r\n this.updateZoomedImagePosition = this.updateZoomedImagePosition.bind(this);\r\n this.updateZoomedImagePositionTouch = this.updateZoomedImagePositionTouch.bind(this);\r\n }\r\n //--\r\n }\r\n\r\n componentDidMount() {\r\n if(this.animationRef && this.animationRef.current)\r\n this.animationRef.current.setAttribute('group', '');\r\n\r\n if(this.zoomBtn && this.zoomBtn.current) {\r\n this.zoomBtn.current.setAttribute('group', '');\r\n\r\n if (this.zoomBtn.current.children) {\r\n let index = 1;\r\n Array.from(this.zoomBtn.current.children).forEach((el: Element) => {\r\n el.setAttribute('focusable', '');\r\n el.setAttribute('order', (index++).toString());\r\n });\r\n }\r\n }\r\n\r\n document.addEventListener('mousemove', this.handleRotationByHand, false);\r\n document.addEventListener('mouseup', this.handleTouchend, false);\r\n window.addEventListener('resize', this.handleWindowResize, false);\r\n this.threeDOverlay = document.getElementById(this.props.containerId);\r\n\r\n if (this.props.showOverlayAnimation && this.threeDOverlay) {\r\n window.shell.subscribeTo('SCS.Open.Gallery3DView',\r\n (displayG3dOverlay: boolean) => {\r\n if (displayG3dOverlay)\r\n this.openThreeSixtyOverlay();\r\n },\r\n 'SCS.Gallery3DView');\r\n } else {\r\n document.addEventListener('scroll', this.onEnterViewport, true);\r\n }\r\n\r\n if(window.shell) {\r\n window.shell.subscribeTo('SCS.Show.ThreeSixtyView',\r\n (payload) => {\r\n this.handleShowThreeSixtyViewEvent(payload.containerId, payload.showThreeDView);\r\n },\r\n this.props.containerId + '.ShowThreeDView');\r\n\r\n window.shell.subscribeTo('SCS.PlayPauseAnimation',\r\n (payload) => {\r\n if (this.props.containerId === payload.containerId) {\r\n this.playStopAnimation(payload.play3d);\r\n }\r\n },\r\n this.props.containerId + '.ShowThreeDView');\r\n } \r\n }\r\n\r\n componentWillUnmount() {\r\n // No longer need to keep endless loop if component is unmounted:\r\n // clear previous timeout:\r\n clearTimeout(this.animationTimer);\r\n this.setState({ playAnimation: false });\r\n\r\n document.removeEventListener('mousemove', this.handleRotationByHand, false);\r\n document.removeEventListener('mouseup', this.handleTouchend, false);\r\n window.removeEventListener('resize', this.handleWindowResize);\r\n\r\n if (this.props.showOverlayAnimation && this.threeDOverlay)\r\n window.shell.unsubscribeFrom('SCS.Open.Gallery3DView', 'SCS.Gallery3DView');\r\n\r\n window.shell.unsubscribeFrom('SCS.Show.ThreeSixtyView', \r\n this.props.containerId + '.ShowThreeDView');\r\n window.shell.unsubscribeFrom('SCS.PlayPauseAnimation', \r\n this.props.containerId + '.ShowThreeDView');\r\n }\r\n\r\n public handleShowThreeSixtyViewEvent(containerId: string, showThreeDView: boolean): void {\r\n if (this.props.containerId === containerId) {\r\n this.setState({\r\n loadContentAfterPageLoad: showThreeDView,\r\n loadAnimation: true\r\n });\r\n }\r\n }\r\n\r\n private setImageSize(): void {\r\n const newImageHeight: number = this.imageController.getImageHeight(\r\n this.props.generalData);\r\n this.setState({imageHeight: newImageHeight});\r\n }\r\n\r\n public initAnimation(): void {\r\n this.setImageSize();\r\n\r\n // handling regular 3d animation:\r\n if (this.state.loadContentAfterPageLoad && !helper.isMobileShop()) {\r\n this.setState({loadAnimation: true});\r\n } else if (this.state.loadContentAfterPageLoad && this.props.loadContentAfterPageLoadMobile \r\n && helper.isMobileShop()) {\r\n // only for specific cases when we need to show 3d on mobile at once: \r\n // (additional description in PDP)\r\n this.setState({loadAnimation: true});\r\n }\r\n\r\n this.onEnterViewport();\r\n }\r\n\r\n public handleWindowResize(): void {\r\n // clear previous timeout:\r\n clearTimeout(this.windowResizeTimer);\r\n\r\n this.windowResizeTimer = setTimeout(() => {\r\n this.setImageSize();\r\n }, 500);\r\n\r\n\r\n if(this.props.showOverlayAnimation \r\n && this.threeDOverlay && this.state.loadContentAfterPageLoad ) {\r\n if (!helper.isMobileShop() && !helper.isTabletView())\r\n // handling gallery overlay:\r\n this.openThreeSixtyOverlay();\r\n }\r\n else {\r\n // resize simple 360 animation in details page view (not mobile or tablet)\r\n this.initAnimation();\r\n }\r\n }\r\n\r\n public openThreeSixtyOverlay(): void {\r\n if(!this.state.loadContentAfterPageLoad) {\r\n this.setState({\r\n loadContentAfterPageLoad: true,\r\n loadAnimation: true,\r\n displayThreeSixtyOverlay: true\r\n }, () => {\r\n this.setOverlayViewWindowSize();\r\n\r\n if(helper.isTabletView() || helper.isMobileShop()) {\r\n this.scrollLock = SCSScrollLock.instance;\r\n this.threeDImagesRef.current.addEventListener('touchstart', this.handleTouchDown, false);\r\n this.threeDImagesRef.current.addEventListener('touchend', this.handleTouchend, false);\r\n this.threeDImagesRef.current.addEventListener('touchmove', this.handleRotationByTouch, false);\r\n }\r\n });\r\n }\r\n else {\r\n this.setOverlayViewWindowSize();\r\n }\r\n }\r\n\r\n private setOverlayViewWindowSize(): void {\r\n let new_height = 900; // default value is needed only for tests\r\n if (this.threeDOverlay)\r\n new_height = this.threeDOverlay.clientHeight > 900\r\n ? 900 : this.threeDOverlay.clientHeight;\r\n\r\n // only desktop devices has controls\r\n if (this.props.showOverlayAnimation && !helper.isMobileShop()) {\r\n new_height = new_height - 130 - 70; // remove zoom on/out buttons size - start/stop and close buttons\r\n }\r\n\r\n // clientHeight - threeSixtyThumbnails:\r\n if (this.props.hasThreeSixtyThumbnails && !helper.isDeskTopView()) {\r\n new_height = new_height - 130;\r\n }\r\n\r\n this.setThreeDImagesContainerDimensions(new_height);\r\n\r\n this.playStopAnimation(true);\r\n }\r\n\r\n private setThreeDImagesContainerDimensions(height: number): void {\r\n this.setState({ \r\n currentImageHeight: height,\r\n loadAnimation: true\r\n }, () => {\r\n // If height is greater then max value, use maximum allowed height:\r\n if (this.animationRef.current.clientHeight > 0\r\n && this.animationRef.current.clientHeight > height) {\r\n this.threeDImagesRef.current.style.height = height + 'px';\r\n } else {\r\n this.threeDImagesRef.current.style.height = this.state.currentImageHeight + 'px';\r\n }\r\n });\r\n }\r\n\r\n private playAnimation(index: number, animationSequenceIndex: number): void {\r\n if (this.state.playAnimation && this.props.animationSequence.length > 1) {\r\n if (index === this.props.animationSequence.length) {\r\n index = 0; // reset rotation\r\n animationSequenceIndex = 0; // reset slider\r\n }\r\n\r\n // set next 3D image index:\r\n this.setState({ imageIndex: this.props.animationSequence[index].imageIndex });\r\n\r\n // provide imag image index to observer component:\r\n if(this.props.updateSliderIndex)\r\n this.props.updateSliderIndex(animationSequenceIndex);\r\n\r\n // clear previous timeout:\r\n clearTimeout(this.animationTimer);\r\n\r\n this.animationTimer = setTimeout(() => {\r\n this.playAnimation(++index, ++animationSequenceIndex);\r\n }, this.props.animationSpeed);\r\n }\r\n }\r\n\r\n private handleRotationByTouch(event: TouchEvent): void {\r\n if (this.state.dragging && !this.state.imageMovementIsEnabled) {\r\n this.updateImageIndex(event.touches[0].screenX);\r\n }\r\n }\r\n\r\n private handleRotationByHand(event: MouseEvent): void {\r\n if (this.state.dragging && !this.state.imageMovementIsEnabled) {\r\n this.updateImageIndex(event.screenX);\r\n }\r\n }\r\n\r\n private updateImageIndex(currentPositionX: number): void {\r\n const index = this.imageController.getRotatedImageIndex(currentPositionX,\r\n this.props.animationSequence.length, this.state.dragStartScreenX,\r\n this.state.dragStartImageIndex);\r\n\r\n if (index !== this.state.imageIndex) {\r\n this.setState({ imageIndex: this.props.animationSequence[index].imageIndex });\r\n }\r\n }\r\n\r\n private handleTouchend(): void { \r\n if(!this.state.imageMovementIsEnabled)\r\n this.setState({ dragging: false });\r\n else {\r\n // image move feature:\r\n window.removeEventListener('mousemove', this.updateZoomedImagePosition, true);\r\n window.removeEventListener('touchmove', this.updateZoomedImagePositionTouch, true);\r\n\r\n if(helper.isTabletView())\r\n this.scrollLock.unlock();\r\n //--\r\n }\r\n }\r\n\r\n private handleTouchDown(event: TouchEvent): void {\r\n if(this.state.imageMovementIsEnabled) {\r\n this.scrollLock.lock();\r\n const touch = event.touches[0];\r\n this.handleImageMovement(touch.clientX, touch.clientY);\r\n }\r\n else {\r\n this.setState(state => ({\r\n playAnimation: false,\r\n dragging: true,\r\n dragStartScreenX: event.touches[0].screenX,\r\n dragStartImageIndex: state.imageIndex\r\n }));\r\n }\r\n }\r\n\r\n private handleMouseDown(event): void {\r\n if(this.state.imageMovementIsEnabled) {\r\n this.handleImageMovement(event.clientX, event.clientY);\r\n }\r\n else {\r\n event.persist();\r\n\r\n this.setState(state => ({\r\n playAnimation: false,\r\n dragging: true,\r\n dragStartScreenX: event.screenX,\r\n dragStartImageIndex: state.imageIndex,\r\n }));\r\n }\r\n }\r\n\r\n // image move feature:\r\n private handleImageMovement(clientX: number, clientY: number): void {\r\n this.gMouseDownX = clientX;\r\n this.gMouseDownY = clientY;\r\n \r\n //The following block gets the X offset (the difference between where it starts and where it was clicked)\r\n const leftPart = this.activeImageContainer.style.left;\r\n const leftPos = leftPart.indexOf('px');\r\n const leftNumString = leftPart.slice(0, leftPos); // Get the X value of the object.\r\n\r\n this.gMouseDownOffsetX = this.gMouseDownX - parseInt(leftNumString, 10);\r\n \r\n // The following block gets the existing Y offset \r\n // (the difference between where it starts and where it was clicked)\r\n if(this.activeImageContainer.style.top) {\r\n const topPart = this.activeImageContainer.style.top; \r\n \r\n const topPos = topPart.indexOf('px');\r\n const topNumString = topPart.slice(0, topPos); // Get the Y value of the object. \r\n\r\n this.gMouseDownOffsetY = this.gMouseDownY - parseInt(topNumString, 10);\r\n }\r\n\r\n window.addEventListener('mousemove', this.updateZoomedImagePosition, true);\r\n\r\n if(helper.isTabletView())\r\n window.addEventListener('touchmove', this.updateZoomedImagePositionTouch, true);\r\n }\r\n\r\n private updateZoomedImagePosition(event: MouseEvent): void {\r\n let topAmount: number;\r\n\r\n // Set top position value for a first time after mouse is down and image move starts:\r\n if(!this.activeImageContainer.style.top) {\r\n this.gMouseDownOffsetY = (parseInt(this.threeDImagesRef.current.style.height, 10) / 2) * -1;\r\n topAmount = this.gMouseDownOffsetY;\r\n\r\n // set value for future image move:\r\n this.gMouseDownOffsetY = event.clientY - this.gMouseDownOffsetY;\r\n }\r\n else {\r\n topAmount = event.clientY - this.gMouseDownOffsetY;\r\n } \r\n\r\n this.activeImageContainer.style.top = topAmount + 'px';\r\n const leftAmount = event.clientX - this.gMouseDownOffsetX;\r\n this.activeImageContainer.style.left = leftAmount + 'px';\r\n }\r\n\r\n private updateZoomedImagePositionTouch(event: TouchEvent): void {\r\n let topAmount: number;\r\n\r\n // Set top position value for a first time after mouse is down and image move starts:\r\n if(!this.activeImageContainer.style.top) {\r\n this.gMouseDownOffsetY = (parseInt(this.threeDImagesRef.current.style.height, 10) / 2) * -1;\r\n topAmount = this.gMouseDownOffsetY;\r\n\r\n // set value for future image move:\r\n this.gMouseDownOffsetY = event.touches[0].clientY - this.gMouseDownOffsetY;\r\n }\r\n else {\r\n topAmount = event.touches[0].clientY - this.gMouseDownOffsetY;\r\n }\r\n\r\n this.activeImageContainer.style.top = topAmount + 'px';\r\n const leftAmount = event.touches[0].clientX - this.gMouseDownOffsetX;\r\n this.activeImageContainer.style.left = leftAmount + 'px';\r\n }\r\n //--\r\n\r\n private preventDragHandler(event): void {\r\n event.preventDefault();\r\n }\r\n\r\n private handleStartStopClick(): void {\r\n if(this.state.playAnimation) {\r\n // stop animation:\r\n this.playStopAnimation(false);\r\n }\r\n else {\r\n // start animation:\r\n // restore zoomed image state:\r\n this.resetDefaultImageSize();\r\n this.playStopAnimation(true);\r\n }\r\n }\r\n\r\n private handleZoomInClick(): void {\r\n this.playStopAnimation(false);\r\n\r\n this.activeImageContainer = this.animationRef.current.querySelector('.active_image');\r\n\r\n // Zoom in limit exceeded:\r\n if(this.state.zoomInLevel === maxZoomLevel)\r\n return;\r\n\r\n if(this.state.zoomInLevel === minZoomLevel) {\r\n this.setState({imageMovementIsEnabled: true});\r\n }\r\n\r\n const tmpZoomInLevel = this.state.zoomInLevel + 1;\r\n\r\n this.setState({\r\n zoomInLevel: tmpZoomInLevel,\r\n zoomedImageHeight: this.state.currentImageHeight + this.state.currentImageHeight * tmpZoomInLevel,\r\n zoomedImageIndex: parseInt(this.activeImageContainer.dataset.index)\r\n }, ()=>{\r\n this.activeImageContainer.style.position = 'absolute';\r\n this.activeImageContainer.style.width = 'auto';\r\n this.activeImageContainer.style.height = 'auto';\r\n this.activeImageContainer.style.maxWidth = 'initial';\r\n this.activeImageContainer.style.maxHeight = 'initial';\r\n this.activeImageContainer.style.transform = 'translateX(-50%)';\r\n\r\n if(!this.activeImageContainer.style.left) {\r\n this.activeImageContainer.style.left = this.threeDImagesRef.current.clientWidth / 2 + 'px';\r\n }\r\n });\r\n }\r\n\r\n private handleZoomOutClick(): void {\r\n // Zoom in bottom limit exceeded:\r\n if(this.state.zoomInLevel === minZoomLevel) {\r\n return;\r\n }\r\n\r\n const tmpZoomInLevel = this.state.zoomInLevel - 1;\r\n\r\n if(tmpZoomInLevel === minZoomLevel) {\r\n this.resetDefaultImageSize();\r\n }\r\n else {\r\n this.setState({\r\n zoomInLevel: tmpZoomInLevel,\r\n zoomedImageHeight: this.state.zoomedImageHeight - this.state.currentImageHeight * tmpZoomInLevel\r\n });\r\n }\r\n }\r\n\r\n public resetDefaultImageSize(): void {\r\n if (this.activeImageContainer) {\r\n this.activeImageContainer.style.removeProperty('position');\r\n this.activeImageContainer.style.removeProperty('top');\r\n this.activeImageContainer.style.removeProperty('left');\r\n this.activeImageContainer.style.removeProperty('transform');\r\n this.activeImageContainer.style.removeProperty('height');\r\n this.activeImageContainer.style.removeProperty('width');\r\n this.activeImageContainer.style.removeProperty('max-height');\r\n this.activeImageContainer.style.removeProperty('max-width');\r\n }\r\n\r\n // reset default size:\r\n this.setState({\r\n zoomInLevel: minZoomLevel,\r\n imageMovementIsEnabled: false, // enable rotation by hand\r\n zoomedImageIndex: null,\r\n zoomedImageHeight: null,\r\n });\r\n\r\n if (helper.isMobileShop() && !!this.reactZoomPanPinchRef) {\r\n this.reactZoomPanPinchRef.resetTransform();\r\n this.reactZoomPanPinchRef.instance.setup.panning.disabled = true;\r\n }\r\n\r\n // this.scrollLock can be not yet initialized while 3d overlay was not open, it just not needed yet:\r\n if((helper.isTabletView() || helper.isMobileShop()) && this.scrollLock) \r\n this.scrollLock.unlock();\r\n }\r\n\r\n private renderElementsForThreeSixtyView(): JSX.Element {\r\n return (\r\n this.props.showOverlayAnimation ?\r\n
\r\n {this.getImageElements()}\r\n
\r\n :
{this.getImageElements()}
\r\n );\r\n }\r\n\r\n private handleImageLoaded(): void {\r\n this.imageLoadedProgress++;\r\n\r\n if (this.props.imageUrlArray.length === this.imageLoadedProgress)\r\n {\r\n // reset load process counter:\r\n this.imageLoadedProgress = 0;\r\n \r\n this.setState({\r\n animationIsLoaded: true\r\n }, ()=> {\r\n // start/restart animation rotation if only it was not stopped bus user before:\r\n if (!this.props.preventAutoPlay)\r\n this.playStopAnimation(true);\r\n\r\n if(window.shell)\r\n window.shell.publishTo('SCS.Animation.WasLoaded', {\r\n containerId: this.props.containerId});\r\n });\r\n }\r\n }\r\n\r\n private getAltTag(): string {\r\n if (!this.props.productInfo)\r\n return '';\r\n const categoryName = \r\n this.props.productInfo.categoryName ? ', ' + this.props.productInfo.categoryName : '';\r\n const designation = \r\n this.props.productInfo.designation ? ', ' + this.props.productInfo.designation : '';\r\n const colorName = \r\n this.props.productInfo.colorName ? ', ' + this.props.productInfo.colorName : '';\r\n return this.props.productInfo.l10n.localizationKey + categoryName + designation + colorName;\r\n }\r\n\r\n private getImageElements(): ReactNode {\r\n return this.state.loadAnimation ?\r\n this.props.imageUrlArray.map((imgUrl, imageIndex) => {\r\n const newIndex: number = imageIndex + 1;\r\n\r\n return {this.getAltTag()}\r\n\r\n })\r\n :\r\n <>\r\n }\r\n\r\n private getImageUrl(imgUrl: string, index: number): string {\r\n let imgHeight = this.state.imageHeight;\r\n\r\n if (this.state.zoomedImageIndex && this.state.zoomedImageIndex === index) {\r\n imgHeight = this.state.zoomedImageHeight ?? this.state.currentImageHeight;\r\n }\r\n\r\n return [imgUrl, '&height=', imgHeight].join('');\r\n }\r\n\r\n public playStopAnimation(play: boolean): void {\r\n this.setState({ playAnimation: play }, () => {\r\n if (play)\r\n this.playAnimation(this.state.imageIndex, this.state.animationSequenceIndex);\r\n });\r\n }\r\n\r\n public restartAnimation(playAnimation: boolean): void {\r\n this.setState({\r\n dragging: false,\r\n imageIndex: 1,\r\n animationSequenceIndex: 1,\r\n dragStartImageIndex: 0,\r\n playAnimation: playAnimation,\r\n dragStartScreenX: 0,\r\n imageMovementIsEnabled: false\r\n }, () => {\r\n // restore zoomed image state:\r\n this.resetDefaultImageSize();\r\n\r\n // reset load process counter:\r\n this.imageLoadedProgress = 0;\r\n this.playStopAnimation(playAnimation);\r\n });\r\n }\r\n\r\n private zoomButtonsClass(): string {\r\n return this.props.hasThreeSixtyThumbnails\r\n ? ['zoom_buttons'].join(' ')\r\n : ['zoom_buttons', 'tdi_full_width'].join(' ');\r\n }\r\n\r\n private threeDImagesClass(): string {\r\n const tdiClassName = this.props.hasThreeSixtyThumbnails ? '' : 'tdi_full_width';\r\n\r\n return this.state.animationIsLoaded\r\n ? [tdiClassName, 'three_d_images', 'show_td_images'].join(' ')\r\n : [tdiClassName, 'three_d_images'].join(' ');\r\n }\r\n\r\n private threeDImageClass(renderableImageIndex: number): string {\r\n return this.state.imageIndex == renderableImageIndex || this.props.imageUrlArray.length == 1\r\n ? ['three_d_image', 'active_image'].join(' ') : 'three_d_image';\r\n } \r\n\r\n private zoomOutBtnStyleClass(): string {\r\n return this.state.zoomInLevel === minZoomLevel ? 'zoom_out_btn inactive' : 'zoom_out_btn';\r\n }\r\n\r\n private zoomInBtnStyleClass(): string {\r\n return this.state.zoomInLevel === maxZoomLevel ? 'zoom_in_btn inactive' : 'zoom_in_btn';\r\n }\r\n\r\n private onPinchingStart(ref: ReactZoomPanPinchRef): void {\r\n if(ref.state.scale === 1) {\r\n ref.instance.setup.panning.disabled = false;\r\n this.playStopAnimation(false);\r\n this.setState({imageMovementIsEnabled: true});\r\n }\r\n\r\n this.activeImageContainer = this.animationRef.current.querySelector('.active_image');\r\n }\r\n\r\n private onPinchingStop(ref: ReactZoomPanPinchRef): void {\r\n if(ref.state.scale <= 1) {\r\n ref.instance.setup.panning.disabled = true;\r\n this.resetDefaultImageSize();\r\n }\r\n else {\r\n this.setState({\r\n zoomInLevel: ref.state.scale,\r\n zoomedImageHeight: Math.round(this.state.currentImageHeight * ref.state.scale),\r\n zoomedImageIndex: parseInt(this.activeImageContainer.dataset.index)\r\n });\r\n }\r\n }\r\n\r\n private handleOnInit(ref: ReactZoomPanPinchRef): void {\r\n this.reactZoomPanPinchRef = ref;\r\n ref.instance.setup.panning.disabled = true;\r\n ref.instance.setup.doubleClick.disabled = true;\r\n }\r\n\r\n private onEnterViewport(): void {\r\n if (!this.animationRef.current) {\r\n return;\r\n } else {\r\n const top = this.animationRef.current.getBoundingClientRect().top;\r\n const viewportReached = top + this.offset >= 0 && top - this.offset <= window.innerHeight;\r\n\r\n if (viewportReached && top > 0) {\r\n this.setState({\r\n loadContentAfterPageLoad: true,\r\n loadAnimation: true\r\n });\r\n\r\n document.removeEventListener('scroll', this.onEnterViewport, true);\r\n }\r\n }\r\n }\r\n\r\n private handleKeyDown(event): void {\r\n // prevent page jump down when 3dG is closed with Space btn., click\r\n if (event.code === 'Space')\r\n event.preventDefault();\r\n\r\n if(!window.shell.tabNav)\r\n return;\r\n\r\n if (event.code === 'ArrowRight' && event.target.nextSibling) {\r\n window.shell.tabNav.focus(event.target.nextSibling);\r\n }\r\n\r\n if (event.code === 'ArrowLeft' && event.target.previousSibling) {\r\n window.shell.tabNav.focus(event.target.previousSibling);\r\n }\r\n }\r\n\r\n public render() {\r\n return (\r\n
\r\n {\r\n (helper.isMobileShop() && this.props.showOverlayAnimation) ?\r\n \r\n \r\n {this.renderElementsForThreeSixtyView()}\r\n \r\n \r\n : \r\n this.renderElementsForThreeSixtyView()\r\n }\r\n \r\n {(this.props.showOverlayAnimation && !helper.isMobileShop()) &&\r\n // only desktop devices has controls\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin\nexport default {\"breakpointDesktopMinWidth\":\"1200px\",\"dpWhite\":\"#fff\",\"dpGainsboro\":\"#e6e6e6\"};","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/* UAParser.js v1.0.38\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.38\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=500;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"sourceRoot":""}