{"version":3,"file":"static/js/main.3d4fb4f9.js","mappings":"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","sources":["../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/fn/object/create.js","../node_modules/core-js/library/fn/object/define-property.js","../node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/core-js/library/fn/symbol/index.js","../node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_enum-keys.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_has.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_is-array.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/_iter-step.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_meta.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_object-gopd.js","../node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/core-js/library/modules/_object-gopn.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/core-js/library/modules/_object-sap.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_set-proto.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_wks-define.js","../node_modules/core-js/library/modules/_wks-ext.js","../node_modules/core-js/library/modules/_wks.js","../node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/modules/es6.object.create.js","../node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/es6.symbol.js","../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-json-editor-ajrm/es/mitsuketa/index.js","../node_modules/react-json-editor-ajrm/locale/en.js","../node_modules/react-lottie/dist/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/redux-persist/lib/storage/createWebStorage.js","../node_modules/redux-persist/lib/storage/getStorage.js","../node_modules/redux-persist/lib/storage/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","../node_modules/use-sync-external-store/with-selector.js","../node_modules/void-elements/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/html-parse-stringify/src/stringify.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/useSSR.js","services/i18n.js","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/combineReducers.ts","../node_modules/redux/src/compose.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/immer/src/utils/env.ts","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/immer.ts","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/redux/src/utils/isAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/combineSlices.ts","../node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts","../node_modules/redux-persist/es/constants.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../node_modules/redux-persist/es/createPersistoid.js","../node_modules/redux-persist/es/getStoredState.js","../node_modules/redux-persist/es/purgeStoredState.js","../node_modules/redux-persist/es/persistReducer.js","../node_modules/redux-persist/es/persistStore.js","store/orders/reducer.js","store/store.js","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/redux/src/applyMiddleware.ts","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/@radix-ui/react-icons/src/ChevronDownIcon.tsx","../node_modules/@radix-ui/react-icons/src/Cross2Icon.tsx","../node_modules/@radix-ui/react-context/src/createContext.tsx","../node_modules/@radix-ui/primitive/src/primitive.tsx","../node_modules/@radix-ui/react-compose-refs/src/composeRefs.tsx","../node_modules/@radix-ui/react-slot/src/Slot.tsx","../node_modules/@radix-ui/react-primitive/src/Primitive.tsx","../node_modules/@radix-ui/react-use-callback-ref/src/useCallbackRef.tsx","../node_modules/@radix-ui/react-use-controllable-state/src/useControllableState.tsx","../node_modules/@radix-ui/react-direction/src/Direction.tsx","../node_modules/@radix-ui/react-use-layout-effect/src/useLayoutEffect.tsx","../node_modules/@radix-ui/react-presence/src/Presence.tsx","../node_modules/@radix-ui/react-presence/src/useStateMachine.tsx","../node_modules/@radix-ui/react-id/src/id.tsx","../node_modules/@radix-ui/react-collection/src/Collection.tsx","../node_modules/@radix-ui/react-dismissable-layer/src/DismissableLayer.tsx","../node_modules/@radix-ui/react-use-escape-keydown/src/useEscapeKeydown.tsx","../node_modules/@radix-ui/react-use-previous/src/usePrevious.tsx","../node_modules/@radix-ui/react-visually-hidden/src/VisuallyHidden.tsx","../node_modules/@radix-ui/react-navigation-menu/src/NavigationMenu.tsx","../node_modules/clsx/dist/clsx.mjs","../node_modules/class-variance-authority/dist/index.mjs","../node_modules/tailwind-merge/src/lib/class-group-utils.ts","../node_modules/tailwind-merge/src/lib/lru-cache.ts","../node_modules/tailwind-merge/src/lib/parse-class-name.ts","../node_modules/tailwind-merge/src/lib/config-utils.ts","../node_modules/tailwind-merge/src/lib/merge-classlist.ts","../node_modules/tailwind-merge/src/lib/tw-join.ts","../node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts","../node_modules/tailwind-merge/src/lib/from-theme.ts","../node_modules/tailwind-merge/src/lib/validators.ts","../node_modules/tailwind-merge/src/lib/default-config.ts","../node_modules/tailwind-merge/src/lib/tw-merge.ts","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/addDays.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/en-US.js","../node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/date-fns/_lib/defaultOptions.js","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/date-fns/startOfDay.js","../node_modules/date-fns/differenceInCalendarDays.js","../node_modules/date-fns/_lib/normalizeDates.js","../node_modules/date-fns/startOfYear.js","../node_modules/date-fns/getDayOfYear.js","../node_modules/date-fns/startOfWeek.js","../node_modules/date-fns/startOfISOWeek.js","../node_modules/date-fns/getISOWeekYear.js","../node_modules/date-fns/startOfISOWeekYear.js","../node_modules/date-fns/getISOWeek.js","../node_modules/date-fns/getWeekYear.js","../node_modules/date-fns/startOfWeekYear.js","../node_modules/date-fns/getWeek.js","../node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/date-fns/_lib/format/formatters.js","../node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/date-fns/_lib/protectedTokens.js","../node_modules/date-fns/isDate.js","../node_modules/date-fns/isValid.js","../node_modules/date-fns/format.js","services/AppConstant.js","constant/textConstants.js","lib/utils.js","components/ui/navigation-menu.jsx","../node_modules/@radix-ui/react-focus-scope/src/FocusScope.tsx","../node_modules/@radix-ui/react-portal/src/Portal.tsx","../node_modules/@radix-ui/react-focus-guards/src/FocusGuards.tsx","../node_modules/tslib/tslib.es6.mjs","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/aria-hidden/dist/es2015/index.js","../node_modules/@radix-ui/react-dialog/src/Dialog.tsx","components/ui/sheet.jsx","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/createLucideIcon.ts","../node_modules/lucide-react/src/icons/chevron-right.ts","../node_modules/lucide-react/src/icons/check.ts","../node_modules/lucide-react/src/icons/circle.ts","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/@radix-ui/react-arrow/src/Arrow.tsx","../node_modules/@radix-ui/react-popper/src/Popper.tsx","../node_modules/@radix-ui/react-use-size/src/useSize.tsx","../node_modules/@radix-ui/react-roving-focus/src/RovingFocusGroup.tsx","../node_modules/@radix-ui/react-menu/src/Menu.tsx","../node_modules/@radix-ui/react-dropdown-menu/src/DropdownMenu.tsx","components/ui/dropdown-menu.jsx","components/ui/icons.js","components/ui/badge.jsx","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/@radix-ui/react-avatar/src/Avatar.tsx","components/ui/avatar.jsx","../node_modules/lucide-react/src/icons/shopping-cart.ts","../node_modules/lucide-react/src/icons/user.ts","../node_modules/lucide-react/src/icons/package.ts","../node_modules/lucide-react/src/icons/log-out.ts","../node_modules/lucide-react/src/icons/align-left.ts","components/Header.js","components/Footer.js","pages/home.js","components/ui/input.jsx","../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/useController.ts","../node_modules/react-hook-form/src/useWatch.ts","../node_modules/react-hook-form/src/useFormState.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasPromiseValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/useForm.ts","services/ApiConstant.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/@babel/runtime/helpers/esm/OverloadYield.js","../node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js","../node_modules/@babel/runtime/helpers/esm/asyncIterator.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","services/ApiService.js","../node_modules/lucide-react/src/icons/lock-keyhole.ts","../node_modules/lucide-react/src/icons/eye-off.ts","../node_modules/lucide-react/src/icons/eye.ts","../node_modules/lucide-react/src/icons/loader-circle.ts","pages/login.js","../node_modules/lucide-react/src/icons/search.ts","components/Spinner.js","store/orders/action.js","components/ui/button.jsx","components/ui/card.jsx","../node_modules/lucide-react/src/icons/truck.ts","../node_modules/lucide-react/src/icons/minus.ts","../node_modules/lucide-react/src/icons/plus.ts","../node_modules/lucide-react/src/icons/trash-2.ts","components/postOrder/ViewCart.js","../node_modules/lucide-react/src/icons/shopping-bag.ts","components/postOrder/EmptyCart.js","components/ui/table.jsx","components/postOrder/OrderDetails.js","../node_modules/lucide-react/src/icons/arrow-left.ts","components/postOrder/ConfirmOrderList.js","../node_modules/lucide-react/src/icons/book-open.ts","../node_modules/lucide-react/src/icons/calendar.ts","../node_modules/lucide-react/src/icons/hash.ts","../node_modules/lucide-react/src/icons/bookmark.ts","components/postOrder/BookOrderComponent.js","../node_modules/@radix-ui/number/src/number.ts","../node_modules/@radix-ui/react-select/src/Select.tsx","../node_modules/lucide-react/src/icons/chevron-down.ts","../node_modules/lucide-react/src/icons/chevron-up.ts","components/ui/select.jsx","components/postOrder/DeliveryAddressForm.js","pages/order/index.js","pages/contactUs.js","../node_modules/@babel/runtime/helpers/esm/objectSpread.js","../node_modules/react-json-editor-ajrm/es/themes.js","../node_modules/react-json-editor-ajrm/es/err.js","../node_modules/react-json-editor-ajrm/es/locale/index.js","../node_modules/react-json-editor-ajrm/es/locale/en.js","../node_modules/react-json-editor-ajrm/es/index.js","components/LottySpinner.js","pages/searchApi.js","../node_modules/lucide-react/src/icons/circle-alert.ts","../node_modules/lucide-react/src/icons/package-2.ts","pages/bookDetails/index.js","pages/order/orderList.js","../node_modules/@radix-ui/react-collapsible/src/Collapsible.tsx","../node_modules/@radix-ui/react-accordion/src/Accordion.tsx","components/ui/accordion.jsx","../node_modules/lucide-react/src/icons/clock.ts","pages/order/checkOutPage.js","components/Navigation.js","../node_modules/lucide-react/src/icons/move-up.ts","components/ScrollToTop.js","App.js","reportWebVitals.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","index.js"],"sourcesContent":["module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function 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 (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || 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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3\r\n */\n\n/**\r\n * Performs deep search on object tree, removes all properties with matching key, returns a new identity without the specified property\r\n * @param {Any} identity\r\n * @param {string} keyName\r\n * @param {Optional Number} maxDepth\r\n * @return {Any} identity\r\n */\nfunction deepRemoveAll_Key(identity, keyName, maxDepth) {\n if (getType(keyName) !== 'string') return undefined;\n if (keyName === '') return undefined;\n let clonedIdentity = deepClone(identity);\n var paths = locateAll_Key(clonedIdentity, keyName, maxDepth);\n if (paths === [] || paths === false) return clonedIdentity;\n paths.forEach(path => {\n if (path === '') path = keyName;else path += '.' + keyName;\n path = path.split('.');\n var ref = clonedIdentity;\n if (!Array.isArray(path)) delete ref[path];\n\n for (var i = 0; i < path.length; i++) {\n var key = path[i];\n\n if (key in ref) {\n if (i < path.length - 1) ref = ref[key];else delete ref[key];\n } else break;\n }\n });\n return clonedIdentity;\n}\n/**\r\n * Performs deep search on object tree, removes the first property with matching key, returns a new identity without the specified property\r\n * @param {Any} identity\r\n * @param {string} keyName\r\n * @param {Optional Number} maxDepth\r\n * @return {Any} identity\r\n */\n\n\nfunction deepRemove_Key(identity, keyName, maxDepth) {\n if (getType(keyName) !== 'string') return undefined;\n if (keyName === '') return undefined;\n let clonedIdentity = deepClone(identity);\n var path = locate_Key(clonedIdentity, keyName, maxDepth);\n if (path === false) return clonedIdentity;\n if (path === '') path = keyName;else path += '.' + keyName;\n path = path.split('.');\n var ref = clonedIdentity;\n if (!Array.isArray(path)) delete ref[path];\n path.forEach((key, i) => {\n if (i < path.length - 1) ref = ref[key];else delete ref[key];\n });\n return clonedIdentity;\n}\n/**\r\n * Performs deep search on object tree, and renames the all matching keys\r\n * @param {Any} identity\r\n * @param {string} keyName\r\n * @param {string} newKeyName\r\n * @param {Optional Number} maxDepth\r\n * @return {Any} identity\r\n */\n\n\nfunction renameKeys(identity, keyName, newKeyName, maxDepth = null) {\n if (getType(keyName) !== 'string') return undefined;\n if (getType(newKeyName) !== 'string') return undefined;\n if (keyName === '') return undefined;\n if (newKeyName === '') return undefined;\n\n function _renameKeys(identity, keyName, newKeyName, maxDepth, currentDepth = 0) {\n let keys;\n\n switch (getType(identity)) {\n case 'array':\n var Arr = [];\n keys = Object.keys(identity);\n\n for (var i = 0, l = keys.length; i < l; i++) {\n let key = keys[i],\n subIdentity = identity[key];\n Arr[key] = _renameKeys(subIdentity, keyName, newKeyName, maxDepth, currentDepth + 1);\n }\n\n return Arr;\n\n case 'object':\n var Obj = {};\n keys = Object.keys(identity);\n\n for (var i = 0, l = keys.length; i < l; i++) {\n let key = keys[i],\n subIdentity = identity[key];\n if (maxDepth !== null ? currentDepth < maxDepth : true) if (key === keyName) key = newKeyName;\n Obj[key] = _renameKeys(subIdentity, keyName, newKeyName, maxDepth, currentDepth + 1);\n }\n\n return Obj;\n\n case 'string':\n return '' + identity;\n\n case 'number':\n return 0 + identity;\n\n case 'boolean':\n if (identity) return true;\n return false;\n\n case 'null':\n return null;\n\n case 'undefined':\n return undefined;\n }\n }\n\n return _renameKeys(identity, keyName, newKeyName, maxDepth, 0);\n}\n/**\r\n * Performs deep search on object tree, then renames the first matching key\r\n * @param {Any} identity\r\n * @param {string} keyName\r\n * @param {string} newKeyName\r\n * @param {Optional Number} maxDepth\r\n * @return {Any} identity\r\n */\n\n\nfunction renameKey(identity, keyName, newKeyName, maxDepth = null) {\n if (getType(keyName) !== 'string') return undefined;\n if (getType(newKeyName) !== 'string') return undefined;\n if (keyName === '') return undefined;\n if (newKeyName === '') return undefined;\n var applied = false;\n\n function _renameKey(identity, keyName, newKeyName, maxDepth, currentDepth = 0) {\n let keys;\n\n switch (getType(identity)) {\n case 'array':\n var Arr = [];\n keys = Object.keys(identity);\n\n for (var i = 0, l = keys.length; i < l; i++) {\n let key = keys[i],\n subIdentity = identity[key];\n Arr[key] = _renameKey(subIdentity, keyName, newKeyName, maxDepth, currentDepth + 1);\n }\n\n return Arr;\n\n case 'object':\n var Obj = {};\n keys = Object.keys(identity);\n\n for (var i = 0, l = keys.length; i < l; i++) {\n let key = keys[i],\n subIdentity = identity[key];\n if (maxDepth !== null ? currentDepth < maxDepth : true) if (!applied) if (key === keyName) {\n key = newKeyName;\n applied = true;\n }\n Obj[key] = _renameKey(subIdentity, keyName, newKeyName, maxDepth, currentDepth + 1);\n }\n\n return Obj;\n\n case 'string':\n return '' + identity;\n\n case 'number':\n return 0 + identity;\n\n case 'boolean':\n if (identity) return true;\n return false;\n\n case 'null':\n return null;\n\n case 'undefined':\n return undefined;\n }\n }\n\n return _renameKey(identity, keyName, newKeyName, maxDepth, 0);\n}\n/**\r\n * Creates a non-reference clone that is an exact copy to the identity provided.\r\n * @param {Any} identity\r\n * @param {Optional Number} maxDepth\r\n * @param {Optional Number} startDepth\r\n * @return {Any} identity\r\n */\n\n\nfunction deepClone(identity, maxDepth = null, startDepth = null) {\n var R = [];\n\n function _deepClone(identity, maxDepth, startDepth, currentDepth = 0) {\n let keys;\n\n if (startDepth !== null ? currentDepth < startDepth : false) {\n if (isIterable(identity)) {\n keys = Object.keys(identity);\n keys.forEach(key => {\n _deepClone(identity[key], maxDepth, startDepth, currentDepth + 1);\n });\n }\n\n return;\n }\n\n if (startDepth !== null ? currentDepth == startDepth : false) {\n if (startDepth == 0) {\n R = _deepClone(identity, maxDepth, null, currentDepth);\n return;\n }\n\n if (isIterable(identity)) R.push(_deepClone(identity, maxDepth, startDepth, currentDepth + 1));\n return;\n }\n\n switch (getType(identity)) {\n case 'array':\n var Arr = [];\n keys = Object.keys(identity);\n if (maxDepth !== null ? currentDepth < maxDepth : true) for (var i = 0, l = keys.length; i < l; i++) {\n const key = keys[i],\n subIdentity = identity[key];\n Arr[key] = _deepClone(subIdentity, maxDepth, startDepth, currentDepth + 1);\n }\n return Arr;\n\n case 'object':\n var Obj = {};\n keys = Object.keys(identity);\n if (maxDepth !== null ? currentDepth < maxDepth : true) for (var i = 0, l = keys.length; i < l; i++) {\n const key = keys[i],\n subIdentity = identity[key];\n Obj[key] = _deepClone(subIdentity, maxDepth, startDepth, currentDepth + 1);\n }\n return Obj;\n\n case 'string':\n return '' + identity;\n\n case 'number':\n return 0 + identity;\n\n case 'boolean':\n if (identity) return true;\n return false;\n\n case 'null':\n return null;\n\n case 'undefined':\n return undefined;\n }\n }\n\n if (startDepth === null) return _deepClone(identity, maxDepth, startDepth, 0);\n\n _deepClone(identity, maxDepth, startDepth, 0);\n\n return R;\n}\n/**\r\n * Performs deep search on collection to find all matches to the key name, and returns a list of identities containing the matched instances. If no matches found, it returns `undefined`.\r\n * @param {Any} collection\r\n * @param {Any} keyName\r\n * @param {Optional Number} maxDepth\r\n * @return {Array || undefined} Identities\r\n */\n\n\nfunction deepFilter_Key(collection, keyName, maxDepth = null) {\n if (getType(keyName) !== 'string') return undefined;\n if (keyName === '') return undefined;\n var paths = locateAll_Key(collection, keyName, maxDepth);\n if (paths === false) return undefined;\n const results = paths.map(path => {\n if (path === false) return undefined;\n if (path === '') path = keyName;else path += '.' + keyName;\n path = path.split('.');\n var result = collection;\n if (!Array.isArray(path)) return result[path];\n path.forEach(key => {\n result = result[key];\n });\n return result;\n });\n return results;\n}\n/**\r\n * Performs deep search on collection to find all matches to the key name, returns the location of each match in a string array. If no matches found, it returns `false`.\r\n * @param {Any} collection\r\n * @param {Any} keyName\r\n * @param {Optional Number} maxDepth\r\n * @return {Array || false} Paths\r\n */\n\n\nfunction locateAll_Key(collection, keyName, maxDepth = null) {\n if (getType(keyName) !== 'string') return undefined;\n if (keyName === '') return undefined;\n var R = [];\n\n function _locateAll_Key(collection, keyName, xKey = '', path = '', maxDepth = null, currentDepth = 0) {\n if (xKey === keyName) R[R.length] = path;\n var result = false;\n if (maxDepth !== null) if (currentDepth >= maxDepth) return result;\n if (isIterable(collection)) for (var i = 0, keys = Object.keys(collection), l = keys.length; i < l; i++) {\n const key = keys[i],\n subcollection = collection[key];\n\n _locateAll_Key(subcollection, keyName, key, (path === '' ? path : path + '.') + key, maxDepth, currentDepth + 1);\n }\n }\n\n _locateAll_Key(collection, keyName, '', '', maxDepth);\n\n R = R.map(path => {\n if (getType(path) === 'boolean') return path;\n if (path === '') return path;\n path = path.split('.');\n path.pop();\n path = path.join('.');\n return path;\n });\n return R.length === 0 ? false : R;\n}\n/**\r\n * Performs deep search on collection to find a match to the key name, and returns the first identity containing the match. If no match found, it returns `undefined`.\r\n * @param {Any} collection\r\n * @param {Any} keyName\r\n * @param {Optional number} maxDepth\r\n * @return {Identity || undefined} identity\r\n */\n\n\nfunction deepGet_Key(collection, keyName, maxDepth = null) {\n if (getType(keyName) !== 'string') return undefined;\n if (keyName === '') return undefined;\n var path = locate_Key(collection, keyName, maxDepth);\n if (path === false) return undefined;\n if (path === '') path = keyName;else path += '.' + keyName;\n path = path.split('.');\n var result = collection;\n if (!Array.isArray(path)) return result[path];\n path.forEach(key => {\n result = result[key];\n });\n return result;\n}\n/**\r\n * Performs deep search on collection to find a match to the key name, will return the path of the first instance matched. If no match found, it returns `false`.\r\n * @param {Any} collection\r\n * @param {Any} keyName\r\n * @param {Optional number} maxDepth\r\n * @return {String || false} Path\r\n */\n\n\nfunction locate_Key(collection, keyName, maxDepth = null) {\n if (getType(keyName) !== 'string') return undefined;\n if (keyName === '') return undefined;\n\n function _locate_Key(collection, keyName, path = '', maxDepth, currentDepth = 0) {\n if (path === keyName) return path;\n var result = false;\n if (maxDepth !== null) if (currentDepth >= maxDepth) return result;\n if (isIterable(collection)) for (var i = 0, keys = Object.keys(collection), l = keys.length; i < l; i++) {\n const key = keys[i],\n subcollection = collection[key],\n res = _locate_Key(subcollection, keyName, key, maxDepth, currentDepth + 1);\n\n if (res) {\n path = path === '' ? path : path + '.';\n result = path + res;\n break;\n }\n }\n return result;\n }\n\n var path = _locate_Key(collection, keyName, '', maxDepth, 0);\n\n if (getType(path) === 'boolean') return path;\n if (path === '') return path;\n path = path.split('.');\n path.pop();\n path = path.join('.');\n return path;\n}\n/**\r\n * Performs deep search for identity on collection to return the location's depth of the first match. If no match found, it returns `false`.\r\n * @param {Any} collection\r\n * @param {Any} identity\r\n * @param {Optional Number} maxDepth\r\n * @return {boolean}\r\n */\n\n\nfunction matchDepth(collection, identity, maxDepth = null) {\n var path = locate(collection, identity, maxDepth);\n if (path === false) return false;\n if (path === '') return 0;\n path = path.split('.');\n return path.length;\n}\n/**\r\n * Walks through the entire object tree to return the maximum number of layers it contains.\r\n * @param {Any} identity\r\n * @param {Optional Number} maxDepth\r\n */\n\n\nfunction maxDepth(identity, maxLayer = null) {\n let R = 0;\n\n function _maxDepth(identity, maxLayer, currentDepth = 0) {\n if (R < currentDepth) R = currentDepth;\n if (maxLayer !== null) if (currentDepth >= maxLayer) return;\n\n if (isIterable(identity)) {\n var keys = Object.keys(identity);\n keys.forEach(key => {\n var subIdentity = identity[key];\n\n _maxDepth(subIdentity, maxLayer, currentDepth + 1);\n });\n }\n }\n\n _maxDepth(identity, maxLayer);\n\n return R;\n}\n/**\r\n * Performs deep search for identity on collection, returns the number of matches found.\r\n * @param {Any} collection\r\n * @param {Any} identity\r\n * @param {Number} nthDepth\r\n * @param {Optional Number} maxDepth\r\n * @return {Any} Returns number of matches found.\r\n */\n\n\nfunction countMatches(collection, identity, nthDepth = null, maxDepth = null) {\n var depth,\n nthDepth_isNull = nthDepth === null,\n maxDepth_isNull = maxDepth === null;\n if (nthDepth_isNull && maxDepth_isNull) depth = null;else if (!nthDepth_isNull && !maxDepth_isNull) {\n if (nthDepth < maxDepth) depth = nthDepth;else depth = maxDepth;\n } else if (nthDepth) depth = nthDepth;else depth = maxDepth;\n var paths = locateAll(collection, identity, depth);\n if (paths === false) return 0;\n if (nthDepth === null) return paths.length;\n\n if (getType(nthDepth) === 'number') {\n let count = 0;\n paths.forEach(path => {\n path = path.split('.');\n if (path.length === nthDepth) count++;\n });\n return count;\n }\n\n return undefined;\n}\n/**\r\n* Performs deep search for each identity on collection, to shorten the identities to those that meets the match criteria\r\n* @param {Any} collection\r\n* @param {Any} identities\r\n* @param {Any} property\r\n* @param {Optional Number} maxDepth\r\n* @return {Any} Returns a collection of the same type as the 'identities' parameter provided with only the identities that matched.\r\n*/\n\n\nfunction onlyFalsy(collection, identities, property, maxDepth = null) {\n if (getType(identities) === 'array') {\n let result = [];\n identities.forEach(identity => {\n const subCollection = deepFilter(collection, identity);\n if (isTruthy(subCollection)) if (foundFalsy(subCollection, property, maxDepth)) result.push(identity);\n });\n return result;\n }\n\n if (getType(identities) === 'object') {\n let result = {};\n Object.keys(identities).forEach(key => {\n const identity = identities[key],\n subCollection = deepFilter(collection, identity);\n if (isTruthy(subCollection)) if (foundFalsy(subCollection, property, maxDepth)) result[key] = identity;\n });\n return result;\n }\n\n if (foundFalsy(collection, property, maxDepth)) return identities;\n}\n/**\r\n * Performs deep search on collection to find any match to the property and evalutates if truthy\r\n * @param {Any} collection\r\n * @param {Property} identity\r\n * @param {Optional Number} maxDepth\r\n * @return {boolean} If match confirmed and truthy will return true, otherwise false\r\n */\n\n\nfunction foundFalsy(collection, identity, maxDepth = null) {\n identity = singleProperty(identity);\n if (isFalsy(identity)) return undefined;\n\n function _foundFalsy(collection, identity, maxDepth, currentDepth = 0) {\n if (containsKeys(collection, [identity])) return isFalsy(collection[identity]);\n if (maxDepth !== null) if (currentDepth >= maxDepth) return false;\n if (isIterable(collection)) for (var i = 0, keys = Object.keys(collection), l = keys.length; i < l; i++) {\n const key = keys[i],\n subcollection = collection[key],\n res = _foundFalsy(subcollection, identity, maxDepth, currentDepth + 1);\n\n if (res) return true;\n }\n return false;\n }\n\n return _foundFalsy(collection, identity, maxDepth);\n}\n/**\r\n * Performs deep search for each identity on collection, to shorten the identities to those that meets the match criteria\r\n * @param {Any} collection\r\n * @param {Any} identities\r\n * @param {Any} property\r\n * @param {Optional Number} maxDepth\r\n * @return {Any} Returns a collection of the same type as the 'identities' parameter provided with only the identities that matched.\r\n */\n\n\nfunction onlyTruthy(collection, identities, property, maxDepth = null) {\n if (getType(identities) === 'array') {\n let result = [];\n identities.forEach(identity => {\n const subCollection = deepFilter(collection, identity);\n if (isTruthy(subCollection)) if (foundTruthy(subCollection, property, maxDepth)) result.push(identity);\n });\n return result;\n }\n\n if (getType(identities) === 'object') {\n let result = {};\n Object.keys(identities).forEach(key => {\n const identity = identities[key],\n subCollection = deepFilter(collection, identity);\n if (isTruthy(subCollection)) if (foundTruthy(subCollection, property, maxDepth)) result[key] = identity;\n });\n return result;\n }\n\n if (foundTruthy(collection, property, maxDepth)) return identities;\n}\n/**\r\n * Performs deep search on collection to find any match to the property and evalutates if truthy\r\n * @param {Any} collection\r\n * @param {Property} identity\r\n * @param {Optional Number} maxDepth\r\n * @return {boolean} If match confirmed and truthy will return true, otherwise false\r\n */\n\n\nfunction foundTruthy(collection, identity, maxDepth = null) {\n identity = singleProperty(identity);\n if (isFalsy(identity)) return undefined;\n\n function _foundTruthy(collection, identity, maxDepth, currentDepth = 0) {\n if (containsKeys(collection, [identity])) return isTruthy(collection[identity]);\n if (maxDepth !== null) if (currentDepth >= maxDepth) return false;\n if (isIterable(collection)) for (var i = 0, keys = Object.keys(collection), l = keys.length; i < l; i++) {\n const key = keys[i],\n subcollection = collection[key],\n res = _foundTruthy(subcollection, identity, maxDepth, currentDepth + 1);\n\n if (res) return true;\n }\n return false;\n }\n\n return _foundTruthy(collection, identity, maxDepth, 0);\n}\n/**\r\n * Validates if identity is equal to a property definition or contains a single property key.\r\n * @param {Property} identity\r\n * @return {String || boolean} If criteria matched will return property name as string, otherwise false\r\n */\n\n\nfunction singleProperty(identity) {\n const propCount = length(identity);\n if (propCount > 1) return false;\n if (propCount === 1) return Object.keys(identity)[0];\n if (propCount === 0) if (['string', 'number'].indexOf(getType(identity)) > -1) return identity;\n return false;\n}\n/**\r\n * Determines if identity is non-falsy\r\n * @param {Any} identity\r\n * @return {boolean} Returns true if criteria matched, otherwise false.\r\n */\n\n\nfunction isTruthy(identity) {\n return !isFalsy(identity);\n}\n/**\r\n * Determines if identity is falsy\r\n * @param {Any} identity\r\n * @return {boolean} Returns true if criteria matched, otherwise false.\r\n */\n\n\nfunction isFalsy(identity) {\n if (falser(identity) === false) return true;\n return false;\n}\n/**\r\n * Converts false-like values into actual boolean value of false\r\n * @param {Any} identity\r\n * @return {Any || boolean} Returns false is value is falsy, otherwise returns original value.\r\n */\n\n\nfunction falser(identity) {\n if (isIterable(identity)) return identity;\n if (['null', 'undefined'].indexOf(getType(identity)) > -1) return false;\n if (['', 0, false].indexOf(identity) > -1) return false;\n return identity;\n}\n/**\r\n * Check the length of the top-most depth of the identity\r\n * @param {Any} identity\r\n * @return {integer} Greater than or equal to 0.\r\n */\n\n\nfunction length(identity) {\n if (['array', 'object'].indexOf(getType(identity)) === -1) return 0;\n return Object.keys(identity).length;\n}\n/**\r\n * Performs deep search for each identity on collection, to shorten the identities to those that does meets the match criteria\r\n * @param {Any} collection\r\n * @param {Any} identities\r\n * @param {Optional Number} maxDepth\r\n * @return {Any} Returns a collection of the same type as the 'identities' parameter provided with only the identities that were not matched.\r\n */\n\n\nfunction onlyMissing(collection, identities, maxDepth = null) {\n if (getType(identities) === 'array') {\n let result = [];\n identities.forEach(identity => {\n if (!exists(collection, identity, maxDepth)) result.push(identity);\n });\n return result;\n }\n\n if (getType(identities) === 'object') {\n let result = {};\n Object.keys(identities).forEach(key => {\n let identity = identities[key];\n if (!exists(collection, identity, maxDepth)) result[key] = identity;\n });\n return result;\n }\n\n if (!exists(collection, identities, maxDepth)) return identities;\n}\n/**\r\n * Performs deep search for each identity on collection, to shorten the identities to those that meets the match criteria\r\n * @param {Any} collection\r\n * @param {Any} identities\r\n * @param {Optional Number} maxDepth\r\n * @return {Any} Returns a collection of the same type as the 'identities' parameter provided with only the identities that matched.\r\n */\n\n\nfunction onlyExisting(collection, identities, maxDepth = null) {\n if (getType(identities) === 'array') {\n let result = [];\n identities.forEach(identity => {\n if (exists(collection, identity, maxDepth)) result.push(identity);\n });\n return result;\n }\n\n if (getType(identities) === 'object') {\n let result = {};\n Object.keys(identities).forEach(key => {\n let identity = identities[key];\n if (exists(collection, identity, maxDepth)) result[key] = identity;\n });\n return result;\n }\n\n if (exists(collection, identities, maxDepth)) return identities;\n}\n/**\r\n * Performs deep search on collection to find any match to the identity\r\n * @param {Any} collection\r\n * @param {Any} identity\r\n * @param {Optional Number} maxDepth\r\n * @return {boolean} If a match is confirmed will return true, otherwise false\r\n */\n\n\nfunction exists(collection, identity, maxDepth = null, currentDepth = 0) {\n if (identical(collection, identity)) return true;\n if (isIterable(identity)) if (sameType(collection, identity)) if (containsKeys(collection, Object.keys(identity))) {\n const trimmed = trim(collection, Object.keys(identity));\n if (identical(trimmed, identity)) return true;\n }\n if (maxDepth === null ? true : currentDepth < maxDepth) if (isIterable(collection)) for (var i = 0, keys = Object.keys(collection), l = keys.length; i < l; i++) {\n const key = keys[i],\n subcollection = collection[key],\n res = exists(subcollection, identity, maxDepth, currentDepth + 1);\n if (res) return true;\n }\n return false;\n}\n/**\r\n * Performs deep search on collection to find all matches to the identity, will return a list of identities containing the match. If no matches found, it returns `undefined`.\r\n * @param {Any} collection\r\n * @param {Any} identity\r\n * @param {Optional Number} maxDepth\r\n * @return {Array || undefined} identities\r\n */\n\n\nfunction deepFilter(collection, identity, maxDepth = null) {\n var paths = locateAll(collection, identity, maxDepth);\n if (paths === false) return undefined;\n const results = paths.map(path => {\n if (path === '') return collection;\n path = path.split('.');\n if (['array', 'object'].indexOf(getType(identity)) === -1) path.splice(-1, 1);\n var result = collection;\n if (!Array.isArray(path)) return result[path];\n path.forEach(key => {\n result = result[key];\n });\n return result;\n });\n return results;\n}\n/**\r\n * Performs deep search on collection to find all matches to the identity, returns a string array containing the location of all matches. If no matches found, it returns `false`.\r\n * @param {Any} collection\r\n * @param {Any} identity\r\n * @param {Optional Number} maxDepth\r\n * @return {Array || false} Paths\r\n */\n\n\nfunction locateAll(collection, identity, maxDepth = null) {\n var R = [];\n\n function _locateAll(collection, identity, path = '', maxDepth, currentDepth) {\n if (isIterable(identity)) if (sameType(collection, identity)) if (containsKeys(collection, Object.keys(identity))) {\n const trimmed = trim(collection, Object.keys(identity));\n if (identical(trimmed, identity)) R[R.length] = path;\n }\n if (identical(collection, identity)) R[R.length] = path;\n var result = false;\n if (maxDepth !== null) if (currentDepth >= maxDepth) return result;\n if (isIterable(collection)) for (var i = 0, keys = Object.keys(collection), l = keys.length; i < l; i++) {\n const key = keys[i],\n subcollection = collection[key];\n\n _locateAll(subcollection, identity, (path === '' ? path : path + '.') + key, maxDepth, currentDepth + 1);\n }\n }\n\n _locateAll(collection, identity, '', maxDepth, 0);\n\n return R.length === 0 ? false : R;\n}\n/**\r\n * Performs deep search on collection to find a match to the identity, will return the identity containing of the first instance matched. If no matches found, it returns `undefined`.\r\n * @param {Any} collection\r\n * @param {Any} identity\r\n * @param {Optional Number} maxDepth\r\n * @return {identity || undefined} identity\r\n */\n\n\nfunction deepGet(collection, identity, maxDepth = null) {\n var path = locate(collection, identity, maxDepth);\n if (path === false) return undefined;\n if (path === '') return collection;\n path = path.split('.');\n if (['array', 'object'].indexOf(getType(identity)) === -1) path.splice(-1, 1);\n var result = collection;\n if (!Array.isArray(path)) return result[path];\n path.forEach(key => {\n result = result[key];\n });\n return result;\n}\n/**\r\n * Performs deep search on collection to find a match to the identity, will return the path of the first instance matched as string. If no matches found, returns `false`.\r\n * @param {Any} collection\r\n * @param {Any} identity\r\n * @param {Optional number} maxDepth\r\n * @return {string || false} path\r\n */\n\n\nfunction locate(collection, identity, maxDepth = null) {\n function _locate(collection, identity, path = '', maxDepth, currentDepth) {\n if (isIterable(identity)) if (sameType(collection, identity)) if (containsKeys(collection, Object.keys(identity))) {\n const trimmed = trim(collection, Object.keys(identity));\n if (identical(trimmed, identity)) return path;\n }\n if (identical(collection, identity)) return path;\n var result = false;\n if (maxDepth !== null) if (currentDepth >= maxDepth) return result;\n if (isIterable(collection)) for (var i = 0, keys = Object.keys(collection), l = keys.length; i < l; i++) {\n const key = keys[i],\n subcollection = collection[key],\n res = _locate(subcollection, identity, key, maxDepth, currentDepth + 1);\n\n if (res) {\n path = path === '' ? path : path + '.';\n result = path + res;\n break;\n }\n }\n return result;\n }\n\n return _locate(collection, identity, '', maxDepth, 0);\n}\n/**\r\n * Trims an identity to only contain the specified properties.\r\n * @param {Any} identity\r\n * @param {Any} keyList\r\n * @return {Object or Array} Returns , otherwise false\r\n */\n\n\nfunction trim(identity, keyList) {\n const identityType = getType(identity);\n if (['array', 'object'].indexOf(identityType) === -1) return undefined;\n const keyCount = keyList.length;\n if (keyCount === 0) return undefined;\n var newIdentity;\n\n switch (identityType) {\n case 'object':\n newIdentity = {};\n keyList.forEach(key => {\n if (key in identity) newIdentity[key] = identity[key];\n });\n break;\n\n case 'array':\n newIdentity = [];\n keyList.forEach(key => {\n if (key in identity) newIdentity.push(identity[key]);\n });\n break;\n }\n\n return newIdentity;\n}\n/**\r\n * Check if identity contains all of the specified keys\r\n * @param {Any} identity\r\n * @param {Array} keyList\r\n * @return {boolean} true || false\r\n */\n\n\nfunction containsKeys(identity, keyList) {\n const keyCount = keyList.length;\n if (keyCount === 0 || !isIterable(identity)) return false;\n const identitykeys = Object.keys(identity);\n var result = true;\n\n for (var i = 0; i < keyCount; i++) {\n const key = '' + keyList[i];\n\n if (identitykeys.indexOf(key) === -1) {\n result = false;\n break;\n }\n }\n\n return result;\n}\n/**\r\n * Check if identity has one or more keys to iterate\r\n * @param {Any} identity\r\n * @return {boolean} true || false\r\n */\n\n\nfunction isIterable(identity) {\n if (['array', 'object'].indexOf(getType(identity)) === -1) return false;\n if (Object.keys(identity).length === 0) return false;\n return true;\n}\n/**\r\n * Compares two identities, will return either true if identical, otherwise false.\r\n * @param {Any} identityA\r\n * @param {Any} identityB\r\n * @return {boolean} true || false\r\n */\n\n\nfunction identical(identityA, identityB) {\n const structureMatch = sameStructure(identityA, identityB);\n if (structureMatch === false) return structureMatch;\n if (['array', 'object'].indexOf(structureMatch) === -1) return identityA === identityB;\n const Keys = Object.keys(identityA),\n KeyCount = Keys.length;\n var childMatch = true;\n\n for (var i = 0; i < KeyCount; i++) {\n const Key = Keys[i],\n identicalMatch = identical(identityA[Key], identityB[Key]);\n\n if (identicalMatch === false) {\n childMatch = identicalMatch;\n break;\n }\n\n ;\n }\n\n return childMatch;\n}\n/**\r\n * Compares data structure of two identities, will return either the dataType or true/false.\r\n * @param {Any} identityA\r\n * @param {Any} identityB\r\n * @return {String || False} DataType as string for positive match, otherwise false\r\n */\n\n\nfunction sameStructure(identityA, identityB) {\n const typeMatch = sameType(identityA, identityB);\n if (typeMatch === false) return false;\n\n if (['array', 'object'].indexOf(typeMatch) > -1) {\n const AKeys = Object.keys(identityA),\n BKeys = Object.keys(identityB),\n AKeyCount = AKeys.length,\n BKeyCount = BKeys.length;\n if (!(AKeyCount === BKeyCount)) return false;\n if (AKeyCount === 0) return true;\n\n for (var i = 0; i < AKeyCount; i++) {\n if (AKeys[i] !== BKeys[i]) return false;\n }\n }\n\n return typeMatch;\n}\n/**\r\n * Compares data type of two identities, will dataType if true.\r\n * @param {Any} identityA\r\n * @param {Any} identityB\r\n * @return {boolean} true || false\r\n */\n\n\nfunction sameType(identityA, identityB) {\n const typeA = getType(identityA);\n return typeA === getType(identityB) ? typeA : false;\n}\n/**\r\n * Gets data type; makes distintion between object, array, and null.\r\n * @param {Any} identity\r\n * @return {String} dataType\r\n */\n\n\nfunction getType(identity) {\n if (identity === null) return 'null';\n const it = typeof identity;\n if (it === 'object') if (Array.isArray(identity)) return 'array';\n return it;\n}\n\nvar mitsuketa = {\n getType: function (identity) {\n return getType(identity);\n },\n sameType: function (identityA, identityB) {\n return sameType(identityA, identityB);\n },\n sameStructure: function (identityA, identityB) {\n return sameStructure(identityA, identityB);\n },\n identical: function (identityA, identityB) {\n return identical(identityA, identityB);\n },\n isIterable: function (identity) {\n return isIterable(identity);\n },\n containsKeys: function (identity, keyList) {\n return containsKeys(identity, keyList);\n },\n trim: function (identity, keyList) {\n return trim(identity, keyList);\n },\n locate: function (collection, identity, maxDepth) {\n return locate(collection, identity, maxDepth);\n },\n deepGet: function (collection, identity, maxDepth) {\n return deepGet(collection, identity, maxDepth);\n },\n locateAll: function (collection, identity, maxDepth) {\n return locateAll(collection, identity, maxDepth);\n },\n deepFilter: function (collection, identity, maxDepth) {\n return deepFilter(collection, identity, maxDepth);\n },\n exists: function (collection, identity, maxDepth) {\n return exists(collection, identity, maxDepth);\n },\n onlyExisting: function (collection, identities, maxDepth) {\n return onlyExisting(collection, identities, maxDepth);\n },\n onlyMissing: function (collection, identities, maxDepth) {\n return onlyMissing(collection, identities, maxDepth);\n },\n length: function (identity) {\n return length(identity);\n },\n isFalsy: function (identity) {\n return isFalsy(identity);\n },\n isTruthy: function (identity) {\n return isTruthy(identity);\n },\n foundTruthy: function (collection, identity, maxDepth) {\n return foundTruthy(collection, identity, maxDepth);\n },\n onlyTruthy: function (collection, identities, property, maxDepth) {\n return onlyTruthy(collection, identities, property, maxDepth);\n },\n foundFalsy: function (collection, identity, maxDepth) {\n return foundFalsy(collection, identity, maxDepth);\n },\n onlyFalsy: function (collection, identities, property, maxDepth) {\n return onlyFalsy(collection, identities, property, maxDepth);\n },\n countMatches: function (collection, identity, nthDepth, maxDepth) {\n return countMatches(collection, identity, nthDepth, maxDepth);\n },\n matchDepth: function (collection, identity, maxDepth) {\n return matchDepth(collection, identity, maxDepth);\n },\n maxDepth: function (identity, maxLayer) {\n return maxDepth(identity, maxLayer);\n },\n locate_Key: function (collection, keyName, maxDepth) {\n return locate_Key(collection, keyName, maxDepth);\n },\n deepGet_Key: function (collection, keyName, maxDepth) {\n return deepGet_Key(collection, keyName, maxDepth);\n },\n locateAll_Key: function (collection, keyName, maxDepth) {\n return locateAll_Key(collection, keyName, maxDepth);\n },\n deepFilter_Key: function (collection, keyName, maxDepth) {\n return deepFilter_Key(collection, keyName, maxDepth);\n },\n deepClone: function (identity, maxDepth, startDepth) {\n return deepClone(identity, maxDepth, startDepth);\n },\n renameKey: function (identity, keyName, newKeyName, maxDepth) {\n return renameKey(identity, keyName, newKeyName, maxDepth);\n },\n renameKeys: function (identity, keyName, newKeyName, maxDepth) {\n return renameKeys(identity, keyName, newKeyName, maxDepth);\n },\n deepRemove_Key: function (identity, keyName, maxDepth) {\n return deepRemove_Key(identity, keyName, maxDepth);\n },\n deepRemoveAll_Key: function (identity, keyName, maxDepth) {\n return deepRemoveAll_Key(identity, keyName, maxDepth);\n }\n};\nmodule.exports = exports = mitsuketa;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n format: \"{reason} at line {line}\",\n symbols: {\n colon: \"colon\",\n // :\n comma: \"comma\",\n // , ، 、\n semicolon: \"semicolon\",\n // ;\n slash: \"slash\",\n // / relevant for comment syntax support\n backslash: \"backslash\",\n // \\ relevant for escaping character\n brackets: {\n round: \"round brackets\",\n // ( )\n square: \"square brackets\",\n // [ ]\n curly: \"curly brackets\",\n // { }\n angle: \"angle brackets\" // < >\n\n },\n period: \"period\",\n // . Also known as full point, full stop, or dot\n quotes: {\n single: \"single quote\",\n // '\n double: \"double quote\",\n // \"\n grave: \"grave accent\" // ` used on Javascript ES6 Syntax for String Templates\n\n },\n space: \"space\",\n //    \n ampersand: \"ampersand\",\n //\t&\n asterisk: \"asterisk\",\n //\t* relevant for some comment sytanx\n at: \"at sign\",\n //\t@ multiple uses in other coding languages including certain data types\n equals: \"equals sign\",\n //\t=\n hash: \"hash\",\n //\t#\n percent: \"percent\",\n //\t%\n plus: \"plus\",\n //\t+\n minus: \"minus\",\n //\t−\n dash: \"dash\",\n //\t−\n hyphen: \"hyphen\",\n //\t−\n tilde: \"tilde\",\n //\t~\n underscore: \"underscore\",\n //\t_\n bar: \"vertical bar\" //\t|\n\n },\n types: {\n key: \"key\",\n value: \"value\",\n number: \"number\",\n string: \"string\",\n primitive: \"primitive\",\n boolean: \"boolean\",\n character: \"character\",\n integer: \"integer\",\n array: \"array\",\n float: \"float\" //... Reference: https://en.wikipedia.org/wiki/List_of_data_structures\n\n },\n invalidToken: {\n tokenSequence: {\n prohibited: \"'{firstToken}' token cannot be followed by '{secondToken}' token(s)\",\n permitted: \"'{firstToken}' token can only be followed by '{secondToken}' token(s)\"\n },\n termSequence: {\n prohibited: \"A {firstTerm} cannot be followed by a {secondTerm}\",\n permitted: \"A {firstTerm} can only be followed by a {secondTerm}\"\n },\n double: \"'{token}' token cannot be followed by another '{token}' token\",\n useInstead: \"'{badToken}' token is not accepted. Use '{goodToken}' instead\",\n unexpected: \"Unexpected '{token}' token found\"\n },\n brace: {\n curly: {\n missingOpen: \"Missing '{' open curly brace\",\n missingClose: \"Open '{' curly brace is missing closing '}' curly brace\",\n cannotWrap: \"'{token}' token cannot be wrapped in '{}' curly braces\"\n },\n square: {\n missingOpen: \"Missing '[' open square brace\",\n missingClose: \"Open '[' square brace is missing closing ']' square brace\",\n cannotWrap: \"'{token}' token cannot be wrapped in '[]' square braces\"\n }\n },\n string: {\n missingOpen: \"Missing/invalid opening string '{quote}' token\",\n missingClose: \"Missing/invalid closing string '{quote}' token\",\n mustBeWrappedByQuotes: \"Strings must be wrapped by quotes\",\n nonAlphanumeric: \"Non-alphanumeric token '{token}' is not allowed outside string notation\",\n unexpectedKey: \"Unexpected key found at string position\"\n },\n key: {\n numberAndLetterMissingQuotes: \"Key beginning with number and containing letters must be wrapped by quotes\",\n spaceMissingQuotes: \"Key containing space must be wrapped by quotes\",\n unexpectedString: \"Unexpected string found at key position\"\n },\n noTrailingOrLeadingComma: \"Trailing or leading commas in arrays and objects are not permitted\"\n};\nexports.default = _default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _lottieWeb = require('lottie-web');\n\nvar _lottieWeb2 = _interopRequireDefault(_lottieWeb);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Lottie = function (_React$Component) {\n (0, _inherits3.default)(Lottie, _React$Component);\n\n function Lottie() {\n var _ref;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, Lottie);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Lottie.__proto__ || (0, _getPrototypeOf2.default)(Lottie)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickToPause = function () {\n // The pause() method is for handling pausing by passing a prop isPaused\n // This method is for handling the ability to pause by clicking on the animation\n if (_this.anim.isPaused) {\n _this.anim.play();\n } else {\n _this.anim.pause();\n }\n }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n (0, _createClass3.default)(Lottie, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n options = _props.options,\n eventListeners = _props.eventListeners;\n var loop = options.loop,\n autoplay = options.autoplay,\n animationData = options.animationData,\n rendererSettings = options.rendererSettings,\n segments = options.segments;\n\n\n this.options = {\n container: this.el,\n renderer: 'svg',\n loop: loop !== false,\n autoplay: autoplay !== false,\n segments: segments !== false,\n animationData: animationData,\n rendererSettings: rendererSettings\n };\n\n this.options = (0, _extends3.default)({}, this.options, options);\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(eventListeners);\n this.setSpeed();\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps /* , nextState */) {\n /* Recreate the animation handle if the data is changed */\n if (this.options.animationData !== nextProps.options.animationData) {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options = (0, _extends3.default)({}, this.options, nextProps.options);\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(nextProps.eventListeners);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isStopped) {\n this.stop();\n } else if (this.props.segments) {\n this.playSegments();\n } else {\n this.play();\n }\n\n this.pause();\n this.setSpeed();\n this.setDirection();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options.animationData = null;\n this.anim = null;\n }\n }, {\n key: 'setSpeed',\n value: function setSpeed() {\n this.anim.setSpeed(this.props.speed);\n }\n }, {\n key: 'setDirection',\n value: function setDirection() {\n this.anim.setDirection(this.props.direction);\n }\n }, {\n key: 'play',\n value: function play() {\n this.anim.play();\n }\n }, {\n key: 'playSegments',\n value: function playSegments() {\n this.anim.playSegments(this.props.segments);\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.anim.stop();\n }\n }, {\n key: 'pause',\n value: function pause() {\n if (this.props.isPaused && !this.anim.isPaused) {\n this.anim.pause();\n } else if (!this.props.isPaused && this.anim.isPaused) {\n this.anim.pause();\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.anim.destroy();\n }\n }, {\n key: 'registerEvents',\n value: function registerEvents(eventListeners) {\n var _this2 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this2.anim.addEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'deRegisterEvents',\n value: function deRegisterEvents(eventListeners) {\n var _this3 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this3.anim.removeEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n width = _props2.width,\n height = _props2.height,\n ariaRole = _props2.ariaRole,\n ariaLabel = _props2.ariaLabel,\n isClickToPauseDisabled = _props2.isClickToPauseDisabled,\n title = _props2.title;\n\n\n var getSize = function getSize(initial) {\n var size = void 0;\n\n if (typeof initial === 'number') {\n size = initial + 'px';\n } else {\n size = initial || '100%';\n }\n\n return size;\n };\n\n var lottieStyles = (0, _extends3.default)({\n width: getSize(width),\n height: getSize(height),\n overflow: 'hidden',\n margin: '0 auto',\n outline: 'none'\n }, this.props.style);\n\n var onClickHandler = isClickToPauseDisabled ? function () {\n return null;\n } : this.handleClickToPause;\n\n return (\n // Bug with eslint rules https://github.com/airbnb/javascript/issues/1374\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _react2.default.createElement('div', {\n ref: function ref(c) {\n _this4.el = c;\n },\n style: lottieStyles,\n onClick: onClickHandler,\n title: title,\n role: ariaRole,\n 'aria-label': ariaLabel,\n tabIndex: '0'\n })\n );\n }\n }]);\n return Lottie;\n}(_react2.default.Component);\n\nexports.default = Lottie;\n\n\nLottie.propTypes = {\n eventListeners: _propTypes2.default.arrayOf(_propTypes2.default.object),\n options: _propTypes2.default.object.isRequired,\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n isStopped: _propTypes2.default.bool,\n isPaused: _propTypes2.default.bool,\n speed: _propTypes2.default.number,\n segments: _propTypes2.default.arrayOf(_propTypes2.default.number),\n direction: _propTypes2.default.number,\n ariaRole: _propTypes2.default.string,\n ariaLabel: _propTypes2.default.string,\n isClickToPauseDisabled: _propTypes2.default.bool,\n title: _propTypes2.default.string,\n style: _propTypes2.default.object\n};\n\nLottie.defaultProps = {\n eventListeners: [],\n isStopped: false,\n isPaused: false,\n speed: 1,\n ariaRole: 'button',\n ariaLabel: 'animation',\n isClickToPauseDisabled: false,\n title: ''\n};","/**\n * @license React\n * react-jsx-runtime.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 f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.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 l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>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","/**\n * @license React\n * use-sync-external-store-with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = React.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"57728038\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"spondes-react:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkspondes_react\"] = self[\"webpackChunkspondes_react\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","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\";\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 _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 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 };","const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = function (obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace('_', '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key == null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved?.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys == null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = options.count !== undefined && !isString(options.count);\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0;\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...options,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && !isString(options.replace) ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language || resolved.usedLng, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && resolved && resolved.res) options.lng = this.language || resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey?.[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && !isString(options.count);\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0;\n const needsContextHandling = options.context !== undefined && (isString(options.context) || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (!Intl) {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = function (data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (val, lng, options) => {\n let optForCache = options;\n if (options && options.interpolationkey && options.formatParams && options.formatParams[options.interpolationkey] && options[options.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [options.interpolationkey]: undefined\n };\n }\n const key = lng + JSON.stringify(optForCache);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n};\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs?.indexOf?.('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n if (typeof options.initImmediate === 'boolean') options.initAsync = options.initImmediate;\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = isString(lngs) ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n if (options.keyPrefix !== '') options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.translator?.translate(...args);\n }\n exists() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n return Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, {});\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n options || (options = {})\n options.components || (options.components = empty)\n const result = []\n const arr = []\n let current\n let level = -1\n let inComponent = false\n\n // handle text at top level\n if (html.indexOf('<') !== 0) {\n var end = html.indexOf('<')\n result.push({\n type: 'text',\n content: end === -1 ? html : html.substring(0, end),\n })\n }\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== '') {\n return\n } else {\n inComponent = false\n }\n }\n const isOpen = tag.charAt(1) !== '/'\n const isComment = tag.startsWith(''\n return buff\n }\n}\n\nexport default function (doc) {\n return doc.reduce(function (token, rootEl) {\n return token + stringify('', rootEl)\n }, '')\n}\n","export const warn = (i18n, code, msg, rest) => {\n const args = [msg, {\n code,\n ...(rest || {})\n }];\n if (i18n?.services?.logger?.forward) {\n return i18n.services.logger.forward(args, 'warn', 'react-i18next::', true);\n }\n if (isString(args[0])) args[0] = `react-i18next:: ${args[0]}`;\n if (i18n?.services?.logger?.warn) {\n i18n.services.logger.warn(...args);\n } else if (console?.warn) {\n console.warn(...args);\n }\n};\nconst alreadyWarned = {};\nexport const warnOnce = (i18n, code, msg, rest) => {\n if (isString(msg) && alreadyWarned[msg]) return;\n if (isString(msg)) alreadyWarned[msg] = new Date();\n warn(i18n, code, msg, rest);\n};\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport const loadNamespaces = (i18n, ns, cb) => {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n};\nexport const loadLanguages = (i18n, lng, ns, cb) => {\n if (isString(ns)) ns = [ns];\n if (i18n.options.preload && i18n.options.preload.indexOf(lng) > -1) return loadNamespaces(i18n, ns, cb);\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n};\nexport const hasLoadedNamespace = (ns, i18n, options = {}) => {\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce(i18n, 'NO_LANGUAGES', 'i18n.languages were undefined or empty', {\n languages: i18n.languages\n });\n return true;\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n?.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n};\nexport const getDisplayName = Component => Component.displayName || Component.name || (isString(Component) && Component.length > 0 ? Component : 'Unknown');\nexport const isString = obj => typeof obj === 'string';\nexport const isObject = obj => typeof obj === 'object' && obj !== null;","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport const setDefaults = (options = {}) => {\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n};\nexport const getDefaults = () => defaultOptions;","let i18nInstance;\nexport const setI18n = instance => {\n i18nInstance = instance;\n};\nexport const getI18n = () => i18nInstance;","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport const composeInitialProps = ForComponent => async ctx => {\n const componentsInitialProps = (await ForComponent.getInitialProps?.(ctx)) ?? {};\n const i18nInitialProps = getInitialProps();\n return {\n ...componentsInitialProps,\n ...i18nInitialProps\n };\n};\nexport const getInitialProps = () => {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces?.getUsedNamespaces() ?? [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n};","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace, isString, isObject } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nconst alwaysNewT = (i18n, language, namespace, keyPrefix) => i18n.getFixedT(language, namespace, keyPrefix);\nconst useMemoizedT = (i18n, language, namespace, keyPrefix) => useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\nexport const useTranslation = (ns, props = {}) => {\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce(i18n, 'NO_I18NEXT_INSTANCE', 'useTranslation: You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (isString(optsOrDefaultValue)) return optsOrDefaultValue;\n if (isObject(optsOrDefaultValue) && isString(optsOrDefaultValue.defaultValue)) return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react?.wait) warnOnce(i18n, 'DEPRECATED_OPTION', 'useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options?.defaultNS;\n namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n i18n.reportNamespaces.addUsedNamespaces?.(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n const boundReset = () => {\n if (isMounted.current) setT(getNewT);\n };\n if (bindI18n) i18n?.on(bindI18n, boundReset);\n if (bindI18nStore) i18n?.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (i18n) bindI18n?.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n useEffect(() => {\n if (isMounted.current && ready) {\n setT(getT);\n }\n }, [i18n, keyPrefix, ready]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n};","import { useContext } from 'react';\nimport { getI18n, I18nContext } from './context.js';\nexport const useSSR = (initialI18nStore, initialLanguage, props = {}) => {\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n.options?.isClone) return;\n if (initialI18nStore && !i18n.initializedStoreOnce) {\n i18n.services.resourceStore.data = initialI18nStore;\n i18n.options.ns = Object.values(initialI18nStore).reduce((mem, lngResources) => {\n Object.keys(lngResources).forEach(ns => {\n if (mem.indexOf(ns) < 0) mem.push(ns);\n });\n return mem;\n }, i18n.options.ns);\n i18n.initializedStoreOnce = true;\n i18n.isInitialized = true;\n }\n if (initialLanguage && !i18n.initializedLanguageOnce) {\n i18n.changeLanguage(initialLanguage);\n i18n.initializedLanguageOnce = true;\n }\n};","import i18n from \"i18next\";\r\nimport en from \"../constant/lang/en.json\";\r\nimport de from \"../constant/lang/de.json\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\nconst resources = {\r\n en: {\r\n translation: en,\r\n },\r\n de: {\r\n translation: de,\r\n },\r\n};\r\n\r\ni18n.use(initReactI18next).init({\r\n resources,\r\n fallbackLng: \"en\",\r\n debug: true,\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n});\r\n\r\nexport default i18n;\r\n","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","declare global {\n interface SymbolConstructor {\n readonly observable: symbol;\n }\n}\nconst $$observable = /* #__PURE__ */(() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\nexport default $$observable;","/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nconst randomString = () => Math.random().toString(36).substring(7).split('').join('.');\nconst ActionTypes = {\n INIT: `@@redux/INIT${/* #__PURE__ */randomString()}`,\n REPLACE: `@@redux/REPLACE${/* #__PURE__ */randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nexport default ActionTypes;","/**\n * @param obj The object to inspect.\n * @returns True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: any): obj is object {\n if (typeof obj !== 'object' || obj === null) return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}","import { formatProdErrorMessage as _formatProdErrorMessage13 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage12 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage11 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage10 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage9 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage8 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage7 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport $$observable from './utils/symbol-observable';\nimport { Store, StoreEnhancer, Dispatch, Observer, ListenerCallback, UnknownIfNonSpecific } from './types/store';\nimport { Action } from './types/actions';\nimport { Reducer } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport { kindOf } from './utils/kindOf';\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore(reducer: Reducer, enhancer?: StoreEnhancer): Store> & Ext;\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore(reducer: Reducer, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer): Store> & Ext;\nexport function createStore(reducer: Reducer, preloadedState?: PreloadedState | StoreEnhancer | undefined, enhancer?: StoreEnhancer): Store> & Ext {\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = (preloadedState as StoreEnhancer);\n preloadedState = undefined;\n }\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, (preloadedState as PreloadedState | undefined));\n }\n let currentReducer = reducer;\n let currentState: S | PreloadedState | undefined = (preloadedState as PreloadedState | undefined);\n let currentListeners: Map | null = new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns The current state tree of your application.\n */\n function getState(): S {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n return (currentState as S);\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param listener A callback to be invoked on every dispatch.\n * @returns A function to remove this change listener.\n */\n function subscribe(listener: () => void) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action: A) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage9(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== 'string') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage10(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage11(9) : 'Reducers may not dispatch actions.');\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach(listener => {\n listener();\n });\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param nextReducer The reducer for the store to use instead.\n */\n function replaceReducer(nextReducer: Reducer): void {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage12(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = ((nextReducer as unknown) as Reducer);\n\n // This action has a similar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n dispatch(({\n type: ActionTypes.REPLACE\n } as A));\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe(observer: unknown) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage13(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = (observer as Observer);\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [$$observable]() {\n return this;\n }\n };\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch(({\n type: ActionTypes.INIT\n } as A));\n const store = (({\n dispatch: (dispatch as Dispatch),\n subscribe,\n getState,\n replaceReducer,\n [$$observable]: observable\n } as unknown) as Store & Ext);\n return store;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore(reducer: Reducer, enhancer?: StoreEnhancer): Store> & Ext;\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore(reducer: Reducer, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer): Store> & Ext;\nexport function legacy_createStore(reducer: Reducer, preloadedState?: PreloadedState | StoreEnhancer | undefined, enhancer?: StoreEnhancer): Store> & Ext {\n return createStore(reducer, (preloadedState as any), enhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Action } from './types/actions';\nimport { ActionFromReducersMapObject, PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport warning from './utils/warning';\nimport { kindOf } from './utils/kindOf';\nfunction getUnexpectedStateShapeWarningMessage(inputState: object, reducers: {\n [key: string]: Reducer;\n}, action: Action, unexpectedKeyCache: {\n [key: string]: true;\n}) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following ` + `keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter(key => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach(key => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n if (unexpectedKeys.length > 0) {\n return `Unexpected ${unexpectedKeys.length > 1 ? 'keys' : 'key'} ` + `\"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. ` + `Expected to find one of the known reducer keys instead: ` + `\"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n }\n}\nfunction assertReducerShape(reducers: {\n [key: string]: Reducer;\n}) {\n Object.keys(reducers).forEach(key => {\n const reducer = reducers[key];\n const initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n }\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. ` + `Don't try to handle '${ActionTypes.INIT}' or other actions in \"redux/*\" ` + `namespace. They are considered private. Instead, you must return the ` + `current state for any unknown actions, unless it is undefined, ` + `in which case you must return the initial state, regardless of the ` + `action type. The initial state may not be undefined, but can be null.`);\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @template S Combined state object type.\n *\n * @param reducers An object whose values correspond to different reducer\n * functions that need to be combined into one. One handy way to obtain it\n * is to use `import * as reducers` syntax. The reducers may never\n * return undefined for any action. Instead, they should return their\n * initial state if the state passed to them was undefined, and the current\n * state for any unrecognized action.\n *\n * @returns A reducer function that invokes every reducer inside the passed\n * object, and builds a state object with the same shape.\n */\nexport default function combineReducers(reducers: M): M[keyof M] extends Reducer | undefined ? Reducer, ActionFromReducersMapObject, Partial>> : never;\nexport default function combineReducers(reducers: {\n [key: string]: Reducer;\n}) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers: {\n [key: string]: Reducer;\n } = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n\n // This is used to make sure we don't warn about the same\n // keys multiple times.\n let unexpectedKeyCache: {\n [key: string]: true;\n };\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError: unknown;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state: StateFromReducersMapObject = {}, action: Action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== 'production') {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState: StateFromReducersMapObject = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : '(unknown type)'}, the slice reducer for key \"${key}\" returned undefined. ` + `To ignore an action, you must explicitly return the previous state. ` + `If you want this reducer to hold no value, you can return null instead of undefined.`);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}","type Func = (...a: T) => R;\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for the\n * resulting composite function.\n *\n * @param funcs The functions to compose.\n * @returns A function obtained by composing the argument functions from right\n * to left. For example, `compose(f, g, h)` is identical to doing\n * `(...args) => f(g(h(...args)))`.\n */\nexport default function compose(): (a: R) => R;\nexport default function compose(f: F): F;\n\n/* two functions */\nexport default function compose(f1: (a: A) => R, f2: Func): Func;\n\n/* three functions */\nexport default function compose(f1: (b: B) => R, f2: (a: A) => B, f3: Func): Func;\n\n/* four functions */\nexport default function compose(f1: (c: C) => R, f2: (b: B) => C, f3: (a: A) => B, f4: Func): Func;\n\n/* rest */\nexport default function compose(f1: (a: any) => R, ...funcs: Function[]): (...args: any[]) => R;\nexport default function compose(...funcs: Function[]): (...args: any[]) => R;\nexport default function compose(...funcs: Function[]) {\n if (funcs.length === 0) {\n // infer the argument type so it is usable in inference down the line\n return (arg: T) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args: any) => a(b(...args)));\n}","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 s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties 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.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","// src/index.ts\nfunction createThunkMiddleware(extraArgument) {\n const middleware = ({ dispatch, getState }) => (next) => (action) => {\n if (typeof action === \"function\") {\n return action(dispatch, getState, extraArgument);\n }\n return next(action);\n };\n return middleware;\n}\nvar thunk = createThunkMiddleware();\nvar withExtraArgument = createThunkMiddleware;\nexport {\n thunk,\n withExtraArgument\n};\n","// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n * Regardless whether they are enumerable or symbols\n */\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void\n): void\nexport function each(obj: any, iter: any) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\tReflect.ownKeys(obj).forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.entries (only string-like, enumerables) instead of each()\n\t\tObject.entries(obj).forEach(([key, value]) => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(value, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path)\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\tObject.prototype.propertyIsEnumerable.call(targetObject, prop)\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\";\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\tapplyPatches(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(copy, (key, childValue) => {\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n","import { current, isDraft } from 'immer';\nimport { createSelectorCreator, weakMapMemoize } from 'reselect';\nexport const createDraftSafeSelectorCreator: typeof createSelectorCreator = (...args: unknown[]) => {\n const createSelector = (createSelectorCreator as any)(...args);\n const createDraftSafeSelector = Object.assign((...args: unknown[]) => {\n const selector = createSelector(...args);\n const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n Object.assign(wrappedSelector, selector);\n return wrappedSelector as any;\n }, {\n withTypes: () => createDraftSafeSelector\n });\n return createDraftSafeSelector;\n};\n\n/**\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\n * the selector will act on the current draft value, instead of returning a cached value\n * that might be possibly outdated if the draft has been modified since.\n * @public\n */\nexport const createDraftSafeSelector = /* @__PURE__ */\ncreateDraftSafeSelectorCreator(weakMapMemoize);","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from 'redux';\n\n/**\n * @public\n */\nexport interface DevToolsEnhancerOptions {\n /**\n * the instance name to be showed on the monitor page. Default value is `document.title`.\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\n */\n name?: string;\n /**\n * action creators functions to be available in the Dispatcher.\n */\n actionCreators?: ActionCreator[] | {\n [key: string]: ActionCreator;\n };\n /**\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\n *\n * @default 500 ms.\n */\n latency?: number;\n /**\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\n *\n * @default 50\n */\n maxAge?: number;\n /**\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\n * functions.\n */\n serialize?: boolean | {\n /**\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\n * - `false` - will handle also circular references.\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\n * For each of them you can indicate if to include (by setting as `true`).\n * For `function` key you can also specify a custom function which handles serialization.\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\n */\n options?: undefined | boolean | {\n date?: true;\n regex?: true;\n undefined?: true;\n error?: true;\n symbol?: true;\n map?: true;\n set?: true;\n function?: true | ((fn: (...args: any[]) => any) => string);\n };\n /**\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\n * key. So you can deserialize it back while importing or persisting data.\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\n */\n replacer?: (key: string, value: unknown) => any;\n /**\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\n * as an example on how to serialize special data types and get them back.\n */\n reviver?: (key: string, value: unknown) => any;\n /**\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\n */\n immutable?: any;\n /**\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\n */\n refs?: any;\n };\n /**\n * function which takes `action` object and id number as arguments, and should return `action` object back.\n */\n actionSanitizer?: (action: A, id: number) => A;\n /**\n * function which takes `state` object and index as arguments, and should return `state` object back.\n */\n stateSanitizer?: (state: S, index: number) => S;\n /**\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n */\n actionsDenylist?: string | string[];\n /**\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n */\n actionsAllowlist?: string | string[];\n /**\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\n */\n predicate?: (state: S, action: A) => boolean;\n /**\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\n * Available only for Redux enhancer, for others use `autoPause`.\n *\n * @default true\n */\n shouldRecordChanges?: boolean;\n /**\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\n * If not specified, will commit when paused. Available only for Redux enhancer.\n *\n * @default \"@@PAUSED\"\"\n */\n pauseActionType?: string;\n /**\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\n *\n * @default false\n */\n autoPause?: boolean;\n /**\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\n * Available only for Redux enhancer.\n *\n * @default false\n */\n shouldStartLocked?: boolean;\n /**\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\n *\n * @default true\n */\n shouldHotReload?: boolean;\n /**\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\n *\n * @default false\n */\n shouldCatchErrors?: boolean;\n /**\n * If you want to restrict the extension, specify the features you allow.\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\n * Otherwise, you'll get/set the data right from the monitor part.\n */\n features?: {\n /**\n * start/pause recording of dispatched actions\n */\n pause?: boolean;\n /**\n * lock/unlock dispatching actions and side effects\n */\n lock?: boolean;\n /**\n * persist states on page reloading\n */\n persist?: boolean;\n /**\n * export history of actions in a file\n */\n export?: boolean | 'custom';\n /**\n * import history of actions from a file\n */\n import?: boolean | 'custom';\n /**\n * jump back and forth (time travelling)\n */\n jump?: boolean;\n /**\n * skip (cancel) actions\n */\n skip?: boolean;\n /**\n * drag and drop actions in the history list\n */\n reorder?: boolean;\n /**\n * dispatch custom actions or action creators\n */\n dispatch?: boolean;\n /**\n * generate tests for the selected actions\n */\n test?: boolean;\n };\n /**\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\n * Defaults to false.\n */\n trace?: boolean | ((action: A) => string);\n /**\n * The maximum number of stack trace entries to record per action. Defaults to 10.\n */\n traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n (options: DevToolsEnhancerOptions): Compose;\n (...funcs: StoreEnhancer[]): StoreEnhancer;\n}\n\n/**\n * @public\n */\nexport const composeWithDevTools: ComposeWithDevTools = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n if (arguments.length === 0) return undefined;\n if (typeof arguments[0] === 'object') return compose;\n return compose.apply(null, arguments as any as Function[]);\n};\n\n/**\n * @public\n */\nexport const devToolsEnhancer: {\n (options: DevToolsEnhancerOptions): StoreEnhancer;\n} = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION__ : function () {\n return function (noop) {\n return noop;\n };\n};","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { isAction } from 'redux';\nimport type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\n\n/**\n * An action with a string type and an associated payload. This is the\n * type of action returned by `createAction()` action creators.\n *\n * @template P The type of the action's payload.\n * @template T the type used for the action type.\n * @template M The type of the action's meta (optional)\n * @template E The type of the action's error (optional)\n *\n * @public\n */\nexport type PayloadAction

= {\n payload: P;\n type: T;\n} & ([M] extends [never] ? {} : {\n meta: M;\n}) & ([E] extends [never] ? {} : {\n error: E;\n});\n\n/**\n * A \"prepare\" method to be used as the second parameter of `createAction`.\n * Takes any number of arguments and returns a Flux Standard Action without\n * type (will be added later) that *must* contain a payload (might be undefined).\n *\n * @public\n */\nexport type PrepareAction

= ((...args: any[]) => {\n payload: P;\n}) | ((...args: any[]) => {\n payload: P;\n meta: any;\n}) | ((...args: any[]) => {\n payload: P;\n error: any;\n}) | ((...args: any[]) => {\n payload: P;\n meta: any;\n error: any;\n});\n\n/**\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\n *\n * @internal\n */\nexport type _ActionCreatorWithPreparedPayload | void, T extends string = string> = PA extends PrepareAction ? ActionCreatorWithPreparedPayload, P, T, ReturnType extends {\n error: infer E;\n} ? E : never, ReturnType extends {\n meta: infer M;\n} ? M : never> : void;\n\n/**\n * Basic type for all action creators.\n *\n * @inheritdoc {redux#ActionCreator}\n */\nexport type BaseActionCreator = {\n type: T;\n match: (action: unknown) => action is PayloadAction;\n};\n\n/**\n * An action creator that takes multiple arguments that are passed\n * to a `PrepareAction` method to create the final Action.\n * @typeParam Args arguments for the action creator function\n * @typeParam P `payload` type\n * @typeParam T `type` name\n * @typeParam E optional `error` type\n * @typeParam M optional `meta` type\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPreparedPayload extends BaseActionCreator {\n /**\n * Calling this {@link redux#ActionCreator} with `Args` will return\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\n */\n (...args: Args): PayloadAction;\n}\n\n/**\n * An action creator of type `T` that takes an optional payload of type `P`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithOptionalPayload extends BaseActionCreator {\n /**\n * Calling this {@link redux#ActionCreator} with an argument will\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\n */\n (payload?: P): PayloadAction;\n}\n\n/**\n * An action creator of type `T` that takes no payload.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithoutPayload extends BaseActionCreator {\n /**\n * Calling this {@link redux#ActionCreator} will\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\n */\n (noArgument: void): PayloadAction;\n}\n\n/**\n * An action creator of type `T` that requires a payload of type P.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPayload extends BaseActionCreator {\n /**\n * Calling this {@link redux#ActionCreator} with an argument will\n * return a {@link PayloadAction} of type `T` with a payload of `P`\n */\n (payload: P): PayloadAction;\n}\n\n/**\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithNonInferrablePayload extends BaseActionCreator {\n /**\n * Calling this {@link redux#ActionCreator} with an argument will\n * return a {@link PayloadAction} of type `T` with a payload\n * of exactly the type of the argument.\n */\n (payload: PT): PayloadAction;\n}\n\n/**\n * An action creator that produces actions with a `payload` attribute.\n *\n * @typeParam P the `payload` type\n * @typeParam T the `type` of the resulting action\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\n *\n * @public\n */\nexport type PayloadActionCreator

| void = void> = IfPrepareActionMethodProvided,\n// else\nIsAny, IsUnknownOrNonInferrable,\n// else\nIfVoid,\n// else\nIfMaybeUndefined,\n// else\nActionCreatorWithPayload>>>>>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction

(type: T): PayloadActionCreator;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator['payload'], T, PA>;\nexport function createAction(type: string, prepareAction?: Function): any {\n function actionCreator(...args: any[]) {\n if (prepareAction) {\n let prepared = prepareAction(...args);\n if (!prepared) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n }\n return {\n type,\n payload: prepared.payload,\n ...('meta' in prepared && {\n meta: prepared.meta\n }),\n ...('error' in prepared && {\n error: prepared.error\n })\n };\n }\n return {\n type,\n payload: args[0]\n };\n }\n actionCreator.toString = () => `${type}`;\n actionCreator.type = type;\n actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n return actionCreator;\n}\n\n/**\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\n */\nexport function isActionCreator(action: unknown): action is BaseActionCreator & Function {\n return typeof action === 'function' && 'type' in action &&\n // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n hasMatchFunction(action as any);\n}\n\n/**\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\n */\nexport function isFSA(action: unknown): action is {\n type: string;\n payload?: unknown;\n error?: unknown;\n meta?: unknown;\n} {\n return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key: string) {\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n}\n\n// helper types for more readable typings\n\ntype IfPrepareActionMethodProvided | void, True, False> = PA extends (...args: any[]) => any ? True : False;","import { Action } from '../types/actions';\nimport isPlainObject from './isPlainObject';\nexport default function isAction(action: unknown): action is Action {\n return isPlainObject(action) && 'type' in action && typeof (action as Record<'type', unknown>).type === 'string';\n}","import { produce as createNextState, isDraftable } from 'immer';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n let elapsed = 0;\n return {\n measureTime(fn: () => T): T {\n const started = Date.now();\n try {\n return fn();\n } finally {\n const finished = Date.now();\n elapsed += finished - started;\n }\n },\n warnIfExceeded() {\n if (elapsed > maxDelay) {\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n }\n }\n };\n}\nexport function delay(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport class Tuple = []> extends Array {\n constructor(length: number);\n constructor(...items: Items);\n constructor(...items: any[]) {\n super(...items);\n Object.setPrototypeOf(this, Tuple.prototype);\n }\n static override get [Symbol.species]() {\n return Tuple as any;\n }\n override concat>(items: Tuple): Tuple<[...Items, ...AdditionalItems]>;\n override concat>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n override concat>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n override concat(...arr: any[]) {\n return super.concat.apply(this, arr);\n }\n prepend>(items: Tuple): Tuple<[...AdditionalItems, ...Items]>;\n prepend>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n prepend>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n prepend(...arr: any[]) {\n if (arr.length === 1 && Array.isArray(arr[0])) {\n return new Tuple(...arr[0].concat(this));\n }\n return new Tuple(...arr.concat(this));\n }\n}\nexport function freezeDraftable(val: T) {\n return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\nexport function getOrInsert(map: WeakMap, key: K, value: V): V;\nexport function getOrInsert(map: Map, key: K, value: V): V;\nexport function getOrInsert(map: Map | WeakMap, key: K, value: V): V {\n if (map.has(key)) return map.get(key) as V;\n return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed(map: WeakMap, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed(map: Map, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed(map: Map | WeakMap, key: K, compute: (key: K) => V): V {\n if (map.has(key)) return map.get(key) as V;\n return map.set(key, compute(key)).get(key) as V;\n}","import type { Middleware, UnknownAction } from 'redux';\nimport type { ThunkMiddleware } from 'redux-thunk';\nimport { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk';\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\n/* PROD_START_REMOVE_UMD */\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware';\n/* PROD_STOP_REMOVE_UMD */\n\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware';\nimport type { ExcludeFromTuple } from './tsHelpers';\nimport { Tuple } from './utils';\nfunction isBoolean(x: any): x is boolean {\n return typeof x === 'boolean';\n}\ninterface ThunkOptions {\n extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n thunk?: boolean | ThunkOptions;\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;\n}\nexport type ThunkMiddlewareFor = O extends {\n thunk: false;\n} ? never : O extends {\n thunk: {\n extraArgument: infer E;\n };\n} ? ThunkMiddleware : ThunkMiddleware;\nexport type GetDefaultMiddleware = (options?: O) => Tuple], never>>;\nexport const buildGetDefaultMiddleware = (): GetDefaultMiddleware => function getDefaultMiddleware(options) {\n const {\n thunk = true,\n immutableCheck = true,\n serializableCheck = true,\n actionCreatorCheck = true\n } = options ?? {};\n let middlewareArray = new Tuple();\n if (thunk) {\n if (isBoolean(thunk)) {\n middlewareArray.push(thunkMiddleware);\n } else {\n middlewareArray.push(withExtraArgument(thunk.extraArgument));\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (immutableCheck) {\n /* PROD_START_REMOVE_UMD */\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n if (!isBoolean(immutableCheck)) {\n immutableOptions = immutableCheck;\n }\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n /* PROD_STOP_REMOVE_UMD */\n }\n if (serializableCheck) {\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n if (!isBoolean(serializableCheck)) {\n serializableOptions = serializableCheck;\n }\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n }\n if (actionCreatorCheck) {\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n if (!isBoolean(actionCreatorCheck)) {\n actionCreatorOptions = actionCreatorCheck;\n }\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n }\n }\n return middlewareArray as any;\n};","import type { StoreEnhancer } from 'redux';\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch';\nexport const prepareAutoBatched = () => (payload: T): {\n payload: T;\n meta: unknown;\n} => ({\n payload,\n meta: {\n [SHOULD_AUTOBATCH]: true\n }\n});\nconst createQueueWithTimer = (timeout: number) => {\n return (notify: () => void) => {\n setTimeout(notify, timeout);\n };\n};\nexport type AutoBatchOptions = {\n type: 'tick';\n} | {\n type: 'timer';\n timeout: number;\n} | {\n type: 'raf';\n} | {\n type: 'callback';\n queueNotification: (notify: () => void) => void;\n};\n\n/**\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\n * notifying subscribers until either the queued callback executes or the\n * next \"standard-priority\" action is dispatched.\n *\n * This allows dispatching multiple \"low-priority\" actions in a row with only\n * a single subscriber notification to the UI after the sequence of actions\n * is finished, thus improving UI re-render performance.\n *\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\n * This can be added to `action.meta` manually, or by using the\n * `prepareAutoBatched` helper.\n *\n * By default, it will queue a notification for the end of the event loop tick.\n * However, you can pass several other options to configure the behavior:\n * - `{type: 'tick'}`: queues using `queueMicrotask`\n * - `{type: 'timer', timeout: number}`: queues using `setTimeout`\n * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback\n *\n *\n */\nexport const autoBatchEnhancer = (options: AutoBatchOptions = {\n type: 'raf'\n}): StoreEnhancer => next => (...args) => {\n const store = next(...args);\n let notifying = true;\n let shouldNotifyAtEndOfTick = false;\n let notificationQueued = false;\n const listeners = new Set<() => void>();\n const queueCallback = options.type === 'tick' ? queueMicrotask : options.type === 'raf' ?\n // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10) : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n const notifyListeners = () => {\n // We're running at the end of the event loop tick.\n // Run the real listener callbacks to actually update the UI.\n notificationQueued = false;\n if (shouldNotifyAtEndOfTick) {\n shouldNotifyAtEndOfTick = false;\n listeners.forEach(l => l());\n }\n };\n return Object.assign({}, store, {\n // Override the base `store.subscribe` method to keep original listeners\n // from running if we're delaying notifications\n subscribe(listener: () => void) {\n // Each wrapped listener will only call the real listener if\n // the `notifying` flag is currently active when it's called.\n // This lets the base store work as normal, while the actual UI\n // update becomes controlled by this enhancer.\n const wrappedListener: typeof listener = () => notifying && listener();\n const unsubscribe = store.subscribe(wrappedListener);\n listeners.add(listener);\n return () => {\n unsubscribe();\n listeners.delete(listener);\n };\n },\n // Override the base `store.dispatch` method so that we can check actions\n // for the `shouldAutoBatch` flag and determine if batching is active\n dispatch(action: any) {\n try {\n // If the action does _not_ have the `shouldAutoBatch` flag,\n // we resume/continue normal notify-after-each-dispatch behavior\n notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n // If a `notifyListeners` microtask was queued, you can't cancel it.\n // Instead, we set a flag so that it's a no-op when it does run\n shouldNotifyAtEndOfTick = !notifying;\n if (shouldNotifyAtEndOfTick) {\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\n // a microtask to notify listeners at the end of the event loop tick.\n // Make sure we only enqueue this _once_ per tick.\n if (!notificationQueued) {\n notificationQueued = true;\n queueCallback(notifyListeners);\n }\n }\n // Go ahead and process the action as usual, including reducers.\n // If normal notification behavior is enabled, the store will notify\n // all of its own listeners, and the wrapper callbacks above will\n // see `notifying` is true and pass on to the real listener callbacks.\n // If we're \"batching\" behavior, then the wrapped callbacks will\n // bail out, causing the base store notification behavior to be no-ops.\n return store.dispatch(action);\n } finally {\n // Assume we're back to normal behavior after each action\n notifying = true;\n }\n }\n });\n};","import type { StoreEnhancer } from 'redux';\nimport type { AutoBatchOptions } from './autoBatchEnhancer';\nimport { autoBatchEnhancer } from './autoBatchEnhancer';\nimport { Tuple } from './utils';\nimport type { Middlewares } from './configureStore';\nimport type { ExtractDispatchExtensions } from './tsHelpers';\ntype GetDefaultEnhancersOptions = {\n autoBatch?: boolean | AutoBatchOptions;\n};\nexport type GetDefaultEnhancers> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{\n dispatch: ExtractDispatchExtensions;\n}>]>;\nexport const buildGetDefaultEnhancers = ,>(middlewareEnhancer: StoreEnhancer<{\n dispatch: ExtractDispatchExtensions;\n}>): GetDefaultEnhancers => function getDefaultEnhancers(options) {\n const {\n autoBatch = true\n } = options ?? {};\n let enhancerArray = new Tuple(middlewareEnhancer);\n if (autoBatch) {\n enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n }\n return enhancerArray as any;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6 } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nexport type TypedActionCreator = {\n (...args: any[]): Action;\n type: Type;\n};\n\n/**\n * A builder for an action <-> reducer map.\n *\n * @public\n */\nexport interface ActionReducerMapBuilder {\n /**\n * Adds a case reducer to handle a single exact action type.\n * @remarks\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n * @param reducer - The actual case reducer function.\n */\n addCase>(actionCreator: ActionCreator, reducer: CaseReducer>): ActionReducerMapBuilder;\n /**\n * Adds a case reducer to handle a single exact action type.\n * @remarks\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n * @param reducer - The actual case reducer function.\n */\n addCase>(type: Type, reducer: CaseReducer): ActionReducerMapBuilder;\n\n /**\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\n * @remarks\n * If multiple matcher reducers match, all of them will be executed in the order\n * they were defined in - even if a case reducer already matched.\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n * function\n * @param reducer - The actual case reducer function.\n *\n * @example\n ```ts\n import {\n createAction,\n createReducer,\n AsyncThunk,\n UnknownAction,\n } from \"@reduxjs/toolkit\";\n type GenericAsyncThunk = AsyncThunk;\n type PendingAction = ReturnType;\n type RejectedAction = ReturnType;\n type FulfilledAction = ReturnType;\n const initialState: Record = {};\n const resetAction = createAction(\"reset-tracked-loading-state\");\n function isPendingAction(action: UnknownAction): action is PendingAction {\n return typeof action.type === \"string\" && action.type.endsWith(\"/pending\");\n }\n const reducer = createReducer(initialState, (builder) => {\n builder\n .addCase(resetAction, () => initialState)\n // matcher can be defined outside as a type predicate function\n .addMatcher(isPendingAction, (state, action) => {\n state[action.meta.requestId] = \"pending\";\n })\n .addMatcher(\n // matcher can be defined inline as a type predicate function\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\n (state, action) => {\n state[action.meta.requestId] = \"rejected\";\n }\n )\n // matcher can just return boolean and the matcher can receive a generic argument\n .addMatcher(\n (action) => action.type.endsWith(\"/fulfilled\"),\n (state, action) => {\n state[action.meta.requestId] = \"fulfilled\";\n }\n );\n });\n ```\n */\n addMatcher(matcher: TypeGuard | ((action: any) => boolean), reducer: CaseReducer): Omit, 'addCase'>;\n\n /**\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\n * reducer was executed for this action.\n * @param reducer - The fallback \"default case\" reducer function.\n *\n * @example\n ```ts\n import { createReducer } from '@reduxjs/toolkit'\n const initialState = { otherActions: 0 }\n const reducer = createReducer(initialState, builder => {\n builder\n // .addCase(...)\n // .addMatcher(...)\n .addDefaultCase((state, action) => {\n state.otherActions++\n })\n })\n ```\n */\n addDefaultCase(reducer: CaseReducer): {};\n}\nexport function executeReducerBuilderCallback(builderCallback: (builder: ActionReducerMapBuilder) => void): [CaseReducers, ActionMatcherDescriptionCollection, CaseReducer | undefined] {\n const actionsMap: CaseReducers = {};\n const actionMatchers: ActionMatcherDescriptionCollection = [];\n let defaultCaseReducer: CaseReducer | undefined;\n const builder = {\n addCase(typeOrActionCreator: string | TypedActionCreator, reducer: CaseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n /*\n to keep the definition by the user in line with actual behavior,\n we enforce `addCase` to always be called before calling `addMatcher`\n as matching cases take precedence over matchers\n */\n if (actionMatchers.length > 0) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(26) : '`builder.addCase` should only be called before calling `builder.addMatcher`');\n }\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(27) : '`builder.addCase` should only be called before calling `builder.addDefaultCase`');\n }\n }\n const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(28) : '`builder.addCase` cannot be called with an empty action type');\n }\n if (type in actionsMap) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(29) : '`builder.addCase` cannot be called with two reducers for the same action type ' + `'${type}'`);\n }\n actionsMap[type] = reducer;\n return builder;\n },\n addMatcher(matcher: TypeGuard, reducer: CaseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(30) : '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`');\n }\n }\n actionMatchers.push({\n matcher,\n reducer\n });\n return builder;\n },\n addDefaultCase(reducer: CaseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (defaultCaseReducer) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(31) : '`builder.addDefaultCase` can only be called once');\n }\n }\n defaultCaseReducer = reducer;\n return builder;\n }\n };\n builderCallback(builder);\n return [actionsMap, actionMatchers, defaultCaseReducer];\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { InjectConfig } from './combineSlices';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, TypeGuard } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\nconst asyncThunkSymbol = /* @__PURE__ */Symbol.for('rtk-slice-createasyncthunk');\n// type is annotated because it's too long to infer\nexport const asyncThunkCreator: {\n [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n [asyncThunkSymbol]: _createAsyncThunk\n};\ntype InjectIntoConfig = InjectConfig & {\n reducerPath?: NewReducerPath;\n};\n\n/**\n * The return value of `createSlice`\n *\n * @public\n */\nexport interface Slice = SliceCaseReducers, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors = SliceSelectors> {\n /**\n * The slice name.\n */\n name: Name;\n\n /**\n * The slice reducer path.\n */\n reducerPath: ReducerPath;\n\n /**\n * The slice's reducer.\n */\n reducer: Reducer;\n\n /**\n * Action creators for the types of actions that are handled by the slice\n * reducer.\n */\n actions: CaseReducerActions;\n\n /**\n * The individual case reducer functions that were passed in the `reducers` parameter.\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\n */\n caseReducers: SliceDefinedCaseReducers;\n\n /**\n * Provides access to the initial state value given to the slice.\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\n */\n getInitialState: () => State;\n\n /**\n * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n */\n getSelectors(): Id>;\n\n /**\n * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n */\n getSelectors(selectState: (rootState: RootState) => State): Id>;\n\n /**\n * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)\n *\n * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.\n */\n get selectors(): Id>;\n\n /**\n * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\n */\n injectInto(this: this, injectable: {\n inject: (slice: {\n reducerPath: string;\n reducer: Reducer;\n }, config?: InjectConfig) => void;\n }, config?: InjectIntoConfig): InjectedSlice;\n\n /**\n * Select the slice state, using the slice's current reducerPath.\n *\n * Will throw an error if slice is not found.\n */\n selectSlice(state: { [K in ReducerPath]: State }): State;\n}\n\n/**\n * A slice after being called with `injectInto(reducer)`.\n *\n * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.\n */\ntype InjectedSlice = SliceCaseReducers, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors = SliceSelectors> = Omit, 'getSelectors' | 'selectors'> & {\n /**\n * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n */\n getSelectors(): Id>;\n\n /**\n * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n */\n getSelectors(selectState: (rootState: RootState) => State | undefined): Id>;\n\n /**\n * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)\n *\n * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.\n */\n get selectors(): Id>;\n\n /**\n * Select the slice state, using the slice's current reducerPath.\n *\n * Returns initial state if slice is not found.\n */\n selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n};\n\n/**\n * Options for `createSlice()`.\n *\n * @public\n */\nexport interface CreateSliceOptions = SliceCaseReducers, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors = SliceSelectors> {\n /**\n * The slice's name. Used to namespace the generated action types.\n */\n name: Name;\n\n /**\n * The slice's reducer path. Used when injecting into a combined slice reducer.\n */\n reducerPath?: ReducerPath;\n\n /**\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n */\n initialState: State | (() => State);\n\n /**\n * A mapping from action types to action-type-specific *case reducer*\n * functions. For every action type, a matching action creator will be\n * generated using `createAction()`.\n */\n reducers: ValidateSliceCaseReducers | ((creators: ReducerCreators) => CR);\n\n /**\n * A callback that receives a *builder* object to define\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n *\n *\n * @example\n ```ts\n import { createAction, createSlice, Action } from '@reduxjs/toolkit'\n const incrementBy = createAction('incrementBy')\n const decrement = createAction('decrement')\n interface RejectedAction extends Action {\n error: Error\n }\n function isRejectedAction(action: Action): action is RejectedAction {\n return action.type.endsWith('rejected')\n }\n createSlice({\n name: 'counter',\n initialState: 0,\n reducers: {},\n extraReducers: builder => {\n builder\n .addCase(incrementBy, (state, action) => {\n // action is inferred correctly here if using TS\n })\n // You can chain calls, or have separate `builder.addCase()` lines each time\n .addCase(decrement, (state, action) => {})\n // You can match a range of action types\n .addMatcher(\n isRejectedAction,\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\n (state, action) => {}\n )\n // and provide a default case if no other handlers matched\n .addDefaultCase((state, action) => {})\n }\n })\n ```\n */\n extraReducers?: (builder: ActionReducerMapBuilder) => void;\n\n /**\n * A map of selectors that receive the slice's state and any additional arguments, and return a result.\n */\n selectors?: Selectors;\n}\nexport enum ReducerType {\n reducer = 'reducer',\n reducerWithPrepare = 'reducerWithPrepare',\n asyncThunk = 'asyncThunk',\n}\ntype ReducerDefinition = {\n _reducerDefinitionType: T;\n};\nexport type CaseReducerDefinition = CaseReducer & ReducerDefinition;\n\n/**\n * A CaseReducer with a `prepare` method.\n *\n * @public\n */\nexport type CaseReducerWithPrepare = {\n reducer: CaseReducer;\n prepare: PrepareAction;\n};\nexport interface CaseReducerWithPrepareDefinition extends CaseReducerWithPrepare, ReducerDefinition {}\ntype AsyncThunkSliceReducerConfig = {\n pending?: CaseReducer['pending']>>;\n rejected?: CaseReducer['rejected']>>;\n fulfilled?: CaseReducer['fulfilled']>>;\n settled?: CaseReducer['rejected' | 'fulfilled']>>;\n options?: AsyncThunkOptions;\n};\ntype AsyncThunkSliceReducerDefinition = AsyncThunkSliceReducerConfig & ReducerDefinition & {\n payloadCreator: AsyncThunkPayloadCreator;\n};\n\n/**\n * Providing these as part of the config would cause circular types, so we disallow passing them\n */\ntype PreventCircular = { [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K] };\ninterface AsyncThunkCreator = PreventCircular> {\n (payloadCreator: AsyncThunkPayloadCreator, config?: AsyncThunkSliceReducerConfig): AsyncThunkSliceReducerDefinition;\n = {}>(payloadCreator: AsyncThunkPayloadCreator, config?: AsyncThunkSliceReducerConfig): AsyncThunkSliceReducerDefinition;\n withTypes>(): AsyncThunkCreator>;\n}\nexport interface ReducerCreators {\n reducer(caseReducer: CaseReducer): CaseReducerDefinition;\n reducer(caseReducer: CaseReducer>): CaseReducerDefinition>;\n asyncThunk: AsyncThunkCreator;\n preparedReducer>(prepare: Prepare, reducer: CaseReducer>>): {\n _reducerDefinitionType: ReducerType.reducerWithPrepare;\n prepare: Prepare;\n reducer: CaseReducer>>;\n };\n}\n\n/**\n * The type describing a slice's `reducers` option.\n *\n * @public\n */\nexport type SliceCaseReducers = Record | Record> | CaseReducerWithPrepare>>;\n\n/**\n * The type describing a slice's `selectors` option.\n */\nexport type SliceSelectors = {\n [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n\n/**\n * Derives the slice's `actions` property from the `reducers` options\n *\n * @public\n */\nexport type CaseReducerActions, SliceName extends string> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {\n prepare: any;\n} ? ActionCreatorForCaseReducerWithPrepare> : Definition extends AsyncThunkSliceReducerDefinition ? AsyncThunk : Definition extends {\n reducer: any;\n} ? ActionCreatorForCaseReducer> : ActionCreatorForCaseReducer> : never };\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducerWithPrepare = _ActionCreatorWithPreparedPayload;\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducer = CR extends (state: any, action: infer Action) => any ? Action extends {\n payload: infer P;\n} ? PayloadActionCreator : ActionCreatorWithoutPayload : ActionCreatorWithoutPayload;\n\n/**\n * Extracts the CaseReducers out of a `reducers` object, even if they are\n * tested into a `CaseReducerWithPrepare`.\n *\n * @internal\n */\ntype SliceDefinedCaseReducers> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition ? Id, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {\n reducer: infer Reducer;\n} ? Reducer : Definition : never };\ntype RemappedSelector = S extends Selector ? Selector & {\n unwrapped: S;\n} : never;\n\n/**\n * Extracts the final selector type from the `selectors` object.\n *\n * Removes the `string` index signature from the default value.\n */\ntype SliceDefinedSelectors, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector };\n\n/**\n * Used on a SliceCaseReducers object.\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\n * the `reducer` and the `prepare` function use the same type of `payload`.\n *\n * Might do additional such checks in the future.\n *\n * This type is only ever useful if you want to write your own wrapper around\n * `createSlice`. Please don't use it otherwise!\n *\n * @public\n */\nexport type ValidateSliceCaseReducers> = ACR & { [T in keyof ACR]: ACR[T] extends {\n reducer(s: S, action?: infer A): any;\n} ? {\n prepare(...a: never[]): Omit;\n} : {} };\nfunction getType(slice: string, actionKey: string): string {\n return `${slice}/${actionKey}`;\n}\ninterface BuildCreateSliceConfig {\n creators?: {\n asyncThunk?: typeof asyncThunkCreator;\n };\n}\nexport function buildCreateSlice({\n creators\n}: BuildCreateSliceConfig = {}) {\n const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n return function createSlice, Name extends string, Selectors extends SliceSelectors, ReducerPath extends string = Name>(options: CreateSliceOptions): Slice {\n const {\n name,\n reducerPath = name as unknown as ReducerPath\n } = options;\n if (!name) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n }\n if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n if (options.initialState === undefined) {\n console.error('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`');\n }\n }\n const reducers = (typeof options.reducers === 'function' ? options.reducers(buildReducerCreators()) : options.reducers) || {};\n const reducerNames = Object.keys(reducers);\n const context: ReducerHandlingContext = {\n sliceCaseReducersByName: {},\n sliceCaseReducersByType: {},\n actionCreators: {},\n sliceMatchers: []\n };\n const contextMethods: ReducerHandlingContextMethods = {\n addCase(typeOrActionCreator: string | TypedActionCreator, reducer: CaseReducer) {\n const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n if (!type) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(12) : '`context.addCase` cannot be called with an empty action type');\n }\n if (type in context.sliceCaseReducersByType) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(13) : '`context.addCase` cannot be called with two reducers for the same action type: ' + type);\n }\n context.sliceCaseReducersByType[type] = reducer;\n return contextMethods;\n },\n addMatcher(matcher, reducer) {\n context.sliceMatchers.push({\n matcher,\n reducer\n });\n return contextMethods;\n },\n exposeAction(name, actionCreator) {\n context.actionCreators[name] = actionCreator;\n return contextMethods;\n },\n exposeCaseReducer(name, reducer) {\n context.sliceCaseReducersByName[name] = reducer;\n return contextMethods;\n }\n };\n reducerNames.forEach(reducerName => {\n const reducerDefinition = reducers[reducerName];\n const reducerDetails: ReducerDetails = {\n reducerName,\n type: getType(name, reducerName),\n createNotation: typeof options.reducers === 'function'\n };\n if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {\n handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n } else {\n handleNormalReducerDefinition(reducerDetails, reducerDefinition as any, contextMethods);\n }\n });\n function buildReducer() {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof options.extraReducers === 'object') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n }\n }\n const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n const finalCaseReducers = {\n ...extraReducers,\n ...context.sliceCaseReducersByType\n };\n return createReducer(options.initialState, builder => {\n for (let key in finalCaseReducers) {\n builder.addCase(key, finalCaseReducers[key] as CaseReducer);\n }\n for (let sM of context.sliceMatchers) {\n builder.addMatcher(sM.matcher, sM.reducer);\n }\n for (let m of actionMatchers) {\n builder.addMatcher(m.matcher, m.reducer);\n }\n if (defaultCaseReducer) {\n builder.addDefaultCase(defaultCaseReducer);\n }\n });\n }\n const selectSelf = (state: State) => state;\n const injectedSelectorCache = new Map State | undefined, Record any>>>();\n let _reducer: ReducerWithInitialState;\n function reducer(state: State | undefined, action: UnknownAction) {\n if (!_reducer) _reducer = buildReducer();\n return _reducer(state, action);\n }\n function getInitialState() {\n if (!_reducer) _reducer = buildReducer();\n return _reducer.getInitialState();\n }\n function makeSelectorProps(reducerPath: CurrentReducerPath, injected = false): Pick, 'getSelectors' | 'selectors' | 'selectSlice' | 'reducerPath'> {\n function selectSlice(state: { [K in CurrentReducerPath]: State }) {\n let sliceState = state[reducerPath];\n if (typeof sliceState === 'undefined') {\n if (injected) {\n sliceState = getInitialState();\n } else if (process.env.NODE_ENV !== 'production') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(15) : 'selectSlice returned undefined for an uninjected slice reducer');\n }\n }\n return sliceState;\n }\n function getSelectors(selectState: (rootState: any) => State = selectSelf) {\n const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => new WeakMap());\n return getOrInsertComputed(selectorCache, selectState, () => {\n const map: Record> = {};\n for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n map[name] = wrapSelector(selector, selectState, getInitialState, injected);\n }\n return map;\n }) as any;\n }\n return {\n reducerPath,\n getSelectors,\n get selectors() {\n return getSelectors(selectSlice);\n },\n selectSlice\n };\n }\n const slice: Slice = {\n name,\n reducer,\n actions: context.actionCreators as any,\n caseReducers: context.sliceCaseReducersByName as any,\n getInitialState,\n ...makeSelectorProps(reducerPath),\n injectInto(injectable, {\n reducerPath: pathOpt,\n ...config\n } = {}) {\n const newReducerPath = pathOpt ?? reducerPath;\n injectable.inject({\n reducerPath: newReducerPath,\n reducer\n }, config);\n return {\n ...slice,\n ...makeSelectorProps(newReducerPath, true)\n } as any;\n }\n };\n return slice;\n };\n}\nfunction wrapSelector>(selector: S, selectState: Selector, getInitialState: () => State, injected?: boolean) {\n function wrapper(rootState: NewState, ...args: any[]) {\n let sliceState = selectState(rootState);\n if (typeof sliceState === 'undefined') {\n if (injected) {\n sliceState = getInitialState();\n } else if (process.env.NODE_ENV !== 'production') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(16) : 'selectState returned undefined for an uninjected slice reducer');\n }\n }\n return selector(sliceState, ...args);\n }\n wrapper.unwrapped = selector;\n return wrapper as RemappedSelector;\n}\n\n/**\n * A function that accepts an initial state, an object full of reducer\n * functions, and a \"slice name\", and automatically generates\n * action creators and action types that correspond to the\n * reducers and state.\n *\n * @public\n */\nexport const createSlice = /* @__PURE__ */buildCreateSlice();\ninterface ReducerHandlingContext {\n sliceCaseReducersByName: Record | Pick, 'fulfilled' | 'rejected' | 'pending' | 'settled'>>;\n sliceCaseReducersByType: Record>;\n sliceMatchers: ActionMatcherDescriptionCollection;\n actionCreators: Record;\n}\ninterface ReducerHandlingContextMethods {\n /**\n * Adds a case reducer to handle a single action type.\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n * @param reducer - The actual case reducer function.\n */\n addCase>(actionCreator: ActionCreator, reducer: CaseReducer>): ReducerHandlingContextMethods;\n /**\n * Adds a case reducer to handle a single action type.\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n * @param reducer - The actual case reducer function.\n */\n addCase>(type: Type, reducer: CaseReducer): ReducerHandlingContextMethods;\n\n /**\n * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.\n * @remarks\n * If multiple matcher reducers match, all of them will be executed in the order\n * they were defined in - even if a case reducer already matched.\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n * function\n * @param reducer - The actual case reducer function.\n *\n */\n addMatcher(matcher: TypeGuard, reducer: CaseReducer): ReducerHandlingContextMethods;\n /**\n * Add an action to be exposed under the final `slice.actions` key.\n * @param name The key to be exposed as.\n * @param actionCreator The action to expose.\n * @example\n * context.exposeAction(\"addPost\", createAction(\"addPost\"));\n *\n * export const { addPost } = slice.actions\n *\n * dispatch(addPost(post))\n */\n exposeAction(name: string, actionCreator: Function): ReducerHandlingContextMethods;\n /**\n * Add a case reducer to be exposed under the final `slice.caseReducers` key.\n * @param name The key to be exposed as.\n * @param reducer The reducer to expose.\n * @example\n * context.exposeCaseReducer(\"addPost\", (state, action: PayloadAction) => {\n * state.push(action.payload)\n * })\n *\n * slice.caseReducers.addPost([], addPost(post))\n */\n exposeCaseReducer(name: string, reducer: CaseReducer | Pick, 'fulfilled' | 'rejected' | 'pending' | 'settled'>): ReducerHandlingContextMethods;\n}\ninterface ReducerDetails {\n /** The key the reducer was defined under */\n reducerName: string;\n /** The predefined action type, i.e. `${slice.name}/${reducerName}` */\n type: string;\n /** Whether create. notation was used when defining reducers */\n createNotation: boolean;\n}\nfunction buildReducerCreators(): ReducerCreators {\n function asyncThunk(payloadCreator: AsyncThunkPayloadCreator, config: AsyncThunkSliceReducerConfig): AsyncThunkSliceReducerDefinition {\n return {\n _reducerDefinitionType: ReducerType.asyncThunk,\n payloadCreator,\n ...config\n };\n }\n asyncThunk.withTypes = () => asyncThunk;\n return {\n reducer(caseReducer: CaseReducer) {\n return Object.assign({\n // hack so the wrapping function has the same name as the original\n // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n [caseReducer.name](...args: Parameters) {\n return caseReducer(...args);\n }\n }[caseReducer.name], {\n _reducerDefinitionType: ReducerType.reducer\n } as const);\n },\n preparedReducer(prepare, reducer) {\n return {\n _reducerDefinitionType: ReducerType.reducerWithPrepare,\n prepare,\n reducer\n };\n },\n asyncThunk: asyncThunk as any\n };\n}\nfunction handleNormalReducerDefinition({\n type,\n reducerName,\n createNotation\n}: ReducerDetails, maybeReducerWithPrepare: CaseReducer | CaseReducerWithPrepare>, context: ReducerHandlingContextMethods) {\n let caseReducer: CaseReducer;\n let prepareCallback: PrepareAction | undefined;\n if ('reducer' in maybeReducerWithPrepare) {\n if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(17) : 'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.');\n }\n caseReducer = maybeReducerWithPrepare.reducer;\n prepareCallback = maybeReducerWithPrepare.prepare;\n } else {\n caseReducer = maybeReducerWithPrepare;\n }\n context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition {\n return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\nfunction isCaseReducerWithPrepareDefinition(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition {\n return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\nfunction handleThunkCaseReducerDefinition({\n type,\n reducerName\n}: ReducerDetails, reducerDefinition: AsyncThunkSliceReducerDefinition, context: ReducerHandlingContextMethods, cAT: typeof _createAsyncThunk | undefined) {\n if (!cAT) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(18) : 'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' + 'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.');\n }\n const {\n payloadCreator,\n fulfilled,\n pending,\n rejected,\n settled,\n options\n } = reducerDefinition;\n const thunk = cAT(type, payloadCreator, options as any);\n context.exposeAction(reducerName, thunk);\n if (fulfilled) {\n context.addCase(thunk.fulfilled, fulfilled);\n }\n if (pending) {\n context.addCase(thunk.pending, pending);\n }\n if (rejected) {\n context.addCase(thunk.rejected, rejected);\n }\n if (settled) {\n context.addMatcher(thunk.settled, settled);\n }\n context.exposeCaseReducer(reducerName, {\n fulfilled: fulfilled || noop,\n pending: pending || noop,\n rejected: rejected || noop,\n settled: settled || noop\n });\n}\nfunction noop() {}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Draft } from 'immer';\nimport { produce as createNextState, isDraft, isDraftable } from 'immer';\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { ActionReducerMapBuilder } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { NoInfer, TypeGuard } from './tsHelpers';\nimport { freezeDraftable } from './utils';\n\n/**\n * Defines a mapping from action types to corresponding action object shapes.\n *\n * @deprecated This should not be used manually - it is only used for internal\n * inference purposes and should not have any further value.\n * It might be removed in the future.\n * @public\n */\nexport type Actions = Record;\nexport type ActionMatcherDescription = {\n matcher: TypeGuard;\n reducer: CaseReducer>;\n};\nexport type ReadonlyActionMatcherDescriptionCollection = ReadonlyArray>;\nexport type ActionMatcherDescriptionCollection = Array>;\n\n/**\n * A *case reducer* is a reducer function for a specific action type. Case\n * reducers can be composed to full reducers using `createReducer()`.\n *\n * Unlike a normal Redux reducer, a case reducer is never called with an\n * `undefined` state to determine the initial state. Instead, the initial\n * state is explicitly specified as an argument to `createReducer()`.\n *\n * In addition, a case reducer can choose to mutate the passed-in `state`\n * value directly instead of returning a new state. This does not actually\n * cause the store state to be mutated directly; instead, thanks to\n * [immer](https://github.com/mweststrate/immer), the mutations are\n * translated to copy operations that result in a new state.\n *\n * @public\n */\nexport type CaseReducer = (state: Draft, action: A) => NoInfer | void | Draft>;\n\n/**\n * A mapping from action types to case reducers for `createReducer()`.\n *\n * @deprecated This should not be used manually - it is only used\n * for internal inference purposes and using it manually\n * would lead to type erasure.\n * It might be removed in the future.\n * @public\n */\nexport type CaseReducers = { [T in keyof AS]: AS[T] extends Action ? CaseReducer : void };\nexport type NotFunction = T extends Function ? never : T;\nfunction isStateFunction(x: unknown): x is () => S {\n return typeof x === 'function';\n}\nexport type ReducerWithInitialState> = Reducer & {\n getInitialState: () => S;\n};\n\n/**\n * A utility function that allows defining a reducer as a mapping from action\n * type to *case reducer* functions that handle these action types. The\n * reducer's initial state is passed as the first argument.\n *\n * @remarks\n * The body of every case reducer is implicitly wrapped with a call to\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\n * This means that rather than returning a new state object, you can also\n * mutate the passed-in state object directly; these mutations will then be\n * automatically and efficiently translated into copies, giving you both\n * convenience and immutability.\n *\n * @overloadSummary\n * This function accepts a callback that receives a `builder` object as its argument.\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\n * called to define what actions this reducer will handle.\n *\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n * @example\n```ts\nimport {\n createAction,\n createReducer,\n UnknownAction,\n PayloadAction,\n} from \"@reduxjs/toolkit\";\n\nconst increment = createAction(\"increment\");\nconst decrement = createAction(\"decrement\");\n\nfunction isActionWithNumberPayload(\n action: UnknownAction\n): action is PayloadAction {\n return typeof action.payload === \"number\";\n}\n\nconst reducer = createReducer(\n {\n counter: 0,\n sumOfNumberPayloads: 0,\n unhandledActions: 0,\n },\n (builder) => {\n builder\n .addCase(increment, (state, action) => {\n // action is inferred correctly here\n state.counter += action.payload;\n })\n // You can chain calls, or have separate `builder.addCase()` lines each time\n .addCase(decrement, (state, action) => {\n state.counter -= action.payload;\n })\n // You can apply a \"matcher function\" to incoming actions\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\n // and provide a default case if no other handlers matched\n .addDefaultCase((state, action) => {});\n }\n);\n```\n * @public\n */\nexport function createReducer>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder) => void): ReducerWithInitialState {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof mapOrBuilderCallback === 'object') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n }\n }\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n\n // Ensure the initial state gets frozen either way (if draftable)\n let getInitialState: () => S;\n if (isStateFunction(initialState)) {\n getInitialState = () => freezeDraftable(initialState());\n } else {\n const frozenInitialState = freezeDraftable(initialState);\n getInitialState = () => frozenInitialState;\n }\n function reducer(state = getInitialState(), action: any): S {\n let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n matcher\n }) => matcher(action)).map(({\n reducer\n }) => reducer)];\n if (caseReducers.filter(cr => !!cr).length === 0) {\n caseReducers = [finalDefaultCaseReducer];\n }\n return caseReducers.reduce((previousState, caseReducer): S => {\n if (caseReducer) {\n if (isDraft(previousState)) {\n // If it's already a draft, we must already be inside a `createNextState` call,\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\n // inside an existing draft. It's safe to just pass the draft to the mutator.\n const draft = previousState as Draft; // We can assume this is already a draft\n const result = caseReducer(draft, action);\n if (result === undefined) {\n return previousState;\n }\n return result as S;\n } else if (!isDraftable(previousState)) {\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\n // return the caseReducer func and not wrap it with produce.\n const result = caseReducer(previousState as any, action);\n if (result === undefined) {\n if (previousState === null) {\n return previousState;\n }\n throw Error('A case reducer on a non-draftable value must not return undefined');\n }\n return result as S;\n } else {\n // @ts-ignore createNextState() produces an Immutable> rather\n // than an Immutable, and TypeScript cannot find out how to reconcile\n // these two types.\n return createNextState(previousState, (draft: Draft) => {\n return caseReducer(draft, action);\n });\n }\n }\n return previousState;\n }, state);\n }\n reducer.getInitialState = getInitialState;\n return reducer as ReducerWithInitialState;\n}","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n\n/* TaskAbortError error codes */\nexport const taskCancelled = `task-${cancelled}` as const;\nexport const taskCompleted = `task-${completed}` as const;\nexport const listenerCancelled = `${listener}-${cancelled}` as const;\nexport const listenerCompleted = `${listener}-${completed}` as const;\nexport class TaskAbortError implements SerializedError {\n name = 'TaskAbortError';\n message: string;\n constructor(public code: string | undefined) {\n this.message = `${task} ${cancelled} (reason: ${code})`;\n }\n}","import { TaskAbortError } from './exceptions';\nimport type { AbortSignalWithReason, TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\n\n/**\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\n * @param signal\n * @param reason\n * @see {TaskAbortError}\n */\nexport const validateActive = (signal: AbortSignal): void => {\n if (signal.aborted) {\n const {\n reason\n } = signal as AbortSignalWithReason;\n throw new TaskAbortError(reason);\n }\n};\n\n/**\n * Generates a race between the promise(s) and the AbortSignal\n * This avoids `Promise.race()`-related memory leaks:\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\n */\nexport function raceWithSignal(signal: AbortSignalWithReason, promise: Promise): Promise {\n let cleanup = noop;\n return new Promise((resolve, reject) => {\n const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n if (signal.aborted) {\n notifyRejection();\n return;\n }\n cleanup = addAbortSignalListener(signal, notifyRejection);\n promise.finally(() => cleanup()).then(resolve, reject);\n }).finally(() => {\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\n cleanup = noop;\n });\n}\n\n/**\n * Runs a task and returns promise that resolves to {@link TaskResult}.\n * Second argument is an optional `cleanUp` function that always runs after task.\n *\n * **Note:** `runTask` runs the executor in the next microtask.\n * @returns\n */\nexport const runTask = async (task: () => Promise, cleanUp?: () => void): Promise> => {\n try {\n await Promise.resolve();\n const value = await task();\n return {\n status: 'ok',\n value\n };\n } catch (error: any) {\n return {\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\n error\n };\n } finally {\n cleanUp?.();\n }\n};\n\n/**\n * Given an input `AbortSignal` and a promise returns another promise that resolves\n * as soon the input promise is provided or rejects as soon as\n * `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createPause = (signal: AbortSignal) => {\n return (promise: Promise): Promise => {\n return catchRejection(raceWithSignal(signal, promise).then(output => {\n validateActive(signal);\n return output;\n }));\n };\n};\n\n/**\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createDelay = (signal: AbortSignal) => {\n const pause = createPause(signal);\n return (timeoutMs: number): Promise => {\n return pause(new Promise(resolve => setTimeout(resolve, timeoutMs)));\n };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux';\nimport { isAction } from 'redux';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport { createAction } from '../createAction';\nimport { nanoid } from '../nanoid';\nimport { TaskAbortError, listenerCancelled, listenerCompleted, taskCancelled, taskCompleted } from './exceptions';\nimport { createDelay, createPause, raceWithSignal, runTask, validateActive } from './task';\nimport type { AbortSignalWithReason, AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, FallbackAddListenerOptions, ForkOptions, ForkedTask, ForkedTaskExecutor, ListenerEntry, ListenerErrorHandler, ListenerErrorInfo, ListenerMiddleware, ListenerMiddlewareInstance, TakePattern, TaskResult, TypedAddListener, TypedCreateListenerEntry, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\nimport { abortControllerWithReason, addAbortSignalListener, assertFunction, catchRejection, noop } from './utils';\nexport { TaskAbortError } from './exceptions';\nexport type { AsyncTaskExecutor, CreateListenerMiddlewareOptions, ForkedTask, ForkedTaskAPI, ForkedTaskExecutor, ListenerEffect, ListenerEffectAPI, ListenerErrorHandler, ListenerMiddleware, ListenerMiddlewareInstance, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult, TypedAddListener, TypedRemoveListener, TypedStartListening, TypedStopListening, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\n\n//Overly-aggressive byte-shaving\nconst {\n assign\n} = Object;\n/**\n * @internal\n */\nconst INTERNAL_NIL_TOKEN = {} as const;\nconst alm = 'listenerMiddleware' as const;\nconst createFork = (parentAbortSignal: AbortSignalWithReason, parentBlockingPromises: Promise[]) => {\n const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => abortControllerWithReason(controller, parentAbortSignal.reason));\n return (taskExecutor: ForkedTaskExecutor, opts?: ForkOptions): ForkedTask => {\n assertFunction(taskExecutor, 'taskExecutor');\n const childAbortController = new AbortController();\n linkControllers(childAbortController);\n const result = runTask(async (): Promise => {\n validateActive(parentAbortSignal);\n validateActive(childAbortController.signal);\n const result = (await taskExecutor({\n pause: createPause(childAbortController.signal),\n delay: createDelay(childAbortController.signal),\n signal: childAbortController.signal\n })) as T;\n validateActive(childAbortController.signal);\n return result;\n }, () => abortControllerWithReason(childAbortController, taskCompleted));\n if (opts?.autoJoin) {\n parentBlockingPromises.push(result.catch(noop));\n }\n return {\n result: createPause>(parentAbortSignal)(result),\n cancel() {\n abortControllerWithReason(childAbortController, taskCancelled);\n }\n };\n };\n};\nconst createTakePattern = (startListening: AddListenerOverloads, signal: AbortSignal): TakePattern => {\n /**\n * A function that takes a ListenerPredicate and an optional timeout,\n * and resolves when either the predicate returns `true` based on an action\n * state combination or when the timeout expires.\n * If the parent listener is canceled while waiting, this will throw a\n * TaskAbortError.\n */\n const take = async

,>(predicate: P, timeout: number | undefined) => {\n validateActive(signal);\n\n // Placeholder unsubscribe function until the listener is added\n let unsubscribe: UnsubscribeListener = () => {};\n const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {\n // Inside the Promise, we synchronously add the listener.\n let stopListening = startListening({\n predicate: predicate as any,\n effect: (action, listenerApi): void => {\n // One-shot listener that cleans up as soon as the predicate passes\n listenerApi.unsubscribe();\n // Resolve the promise with the same arguments the predicate saw\n resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n }\n });\n unsubscribe = () => {\n stopListening();\n reject();\n };\n });\n const promises: (Promise | Promise<[Action, S, S]>)[] = [tuplePromise];\n if (timeout != null) {\n promises.push(new Promise(resolve => setTimeout(resolve, timeout, null)));\n }\n try {\n const output = await raceWithSignal(signal, Promise.race(promises));\n validateActive(signal);\n return output;\n } finally {\n // Always clean up the listener\n unsubscribe();\n }\n };\n return ((predicate: AnyListenerPredicate, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern;\n};\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n let {\n type,\n actionCreator,\n matcher,\n predicate,\n effect\n } = options;\n if (type) {\n predicate = createAction(type).match;\n } else if (actionCreator) {\n type = actionCreator!.type;\n predicate = actionCreator.match;\n } else if (matcher) {\n predicate = matcher;\n } else if (predicate) {\n // pass\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(21) : 'Creating or removing a listener requires one of the known fields for matching an action');\n }\n assertFunction(effect, 'options.listener');\n return {\n predicate,\n type,\n effect\n };\n};\n\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\nexport const createListenerEntry: TypedCreateListenerEntry = /* @__PURE__ */assign((options: FallbackAddListenerOptions) => {\n const {\n type,\n predicate,\n effect\n } = getListenerEntryPropsFrom(options);\n const entry: ListenerEntry = {\n id: nanoid(),\n effect,\n type,\n predicate,\n pending: new Set(),\n unsubscribe: () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(22) : 'Unsubscribe not initialized');\n }\n };\n return entry;\n}, {\n withTypes: () => createListenerEntry\n}) as unknown as TypedCreateListenerEntry;\nconst findListenerEntry = (listenerMap: Map, options: FallbackAddListenerOptions) => {\n const {\n type,\n effect,\n predicate\n } = getListenerEntryPropsFrom(options);\n return Array.from(listenerMap.values()).find(entry => {\n const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n return matchPredicateOrType && entry.effect === effect;\n });\n};\nconst cancelActiveListeners = (entry: ListenerEntry>) => {\n entry.pending.forEach(controller => {\n abortControllerWithReason(controller, listenerCancelled);\n });\n};\nconst createClearListenerMiddleware = (listenerMap: Map) => {\n return () => {\n listenerMap.forEach(cancelActiveListeners);\n listenerMap.clear();\n };\n};\n\n/**\n * Safely reports errors to the `errorHandler` provided.\n * Errors that occur inside `errorHandler` are notified in a new task.\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\n * @param errorHandler\n * @param errorToNotify\n */\nconst safelyNotifyError = (errorHandler: ListenerErrorHandler, errorToNotify: unknown, errorInfo: ListenerErrorInfo): void => {\n try {\n errorHandler(errorToNotify, errorInfo);\n } catch (errorHandlerError) {\n // We cannot let an error raised here block the listener queue.\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\n setTimeout(() => {\n throw errorHandlerError;\n }, 0);\n }\n};\n\n/**\n * @public\n */\nexport const addListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/add`), {\n withTypes: () => addListener\n}) as unknown as TypedAddListener;\n\n/**\n * @public\n */\nexport const clearAllListeners = /* @__PURE__ */createAction(`${alm}/removeAll`);\n\n/**\n * @public\n */\nexport const removeListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/remove`), {\n withTypes: () => removeListener\n}) as unknown as TypedRemoveListener;\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n console.error(`${alm}/error`, ...args);\n};\n\n/**\n * @public\n */\nexport const createListenerMiddleware = = ThunkDispatch, ExtraArgument = unknown>(middlewareOptions: CreateListenerMiddlewareOptions = {}) => {\n const listenerMap = new Map();\n const {\n extra,\n onError = defaultErrorHandler\n } = middlewareOptions;\n assertFunction(onError, 'onError');\n const insertEntry = (entry: ListenerEntry) => {\n entry.unsubscribe = () => listenerMap.delete(entry.id);\n listenerMap.set(entry.id, entry);\n return (cancelOptions?: UnsubscribeListenerOptions) => {\n entry.unsubscribe();\n if (cancelOptions?.cancelActive) {\n cancelActiveListeners(entry);\n }\n };\n };\n const startListening = ((options: FallbackAddListenerOptions) => {\n const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options as any);\n return insertEntry(entry);\n }) as AddListenerOverloads;\n assign(startListening, {\n withTypes: () => startListening\n });\n const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n const entry = findListenerEntry(listenerMap, options);\n if (entry) {\n entry.unsubscribe();\n if (options.cancelActive) {\n cancelActiveListeners(entry);\n }\n }\n return !!entry;\n };\n assign(stopListening, {\n withTypes: () => stopListening\n });\n const notifyListener = async (entry: ListenerEntry>, action: unknown, api: MiddlewareAPI, getOriginalState: () => StateType) => {\n const internalTaskController = new AbortController();\n const take = createTakePattern(startListening as AddListenerOverloads, internalTaskController.signal);\n const autoJoinPromises: Promise[] = [];\n try {\n entry.pending.add(internalTaskController);\n await Promise.resolve(entry.effect(action,\n // Use assign() rather than ... to avoid extra helper functions added to bundle\n assign({}, api, {\n getOriginalState,\n condition: (predicate: AnyListenerPredicate, timeout?: number) => take(predicate, timeout).then(Boolean),\n take,\n delay: createDelay(internalTaskController.signal),\n pause: createPause(internalTaskController.signal),\n extra,\n signal: internalTaskController.signal,\n fork: createFork(internalTaskController.signal, autoJoinPromises),\n unsubscribe: entry.unsubscribe,\n subscribe: () => {\n listenerMap.set(entry.id, entry);\n },\n cancelActiveListeners: () => {\n entry.pending.forEach((controller, _, set) => {\n if (controller !== internalTaskController) {\n abortControllerWithReason(controller, listenerCancelled);\n set.delete(controller);\n }\n });\n },\n cancel: () => {\n abortControllerWithReason(internalTaskController, listenerCancelled);\n entry.pending.delete(internalTaskController);\n },\n throwIfCancelled: () => {\n validateActive(internalTaskController.signal);\n }\n })));\n } catch (listenerError) {\n if (!(listenerError instanceof TaskAbortError)) {\n safelyNotifyError(onError, listenerError, {\n raisedBy: 'effect'\n });\n }\n } finally {\n await Promise.all(autoJoinPromises);\n abortControllerWithReason(internalTaskController, listenerCompleted); // Notify that the task has completed\n entry.pending.delete(internalTaskController);\n }\n };\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\n const middleware: ListenerMiddleware = api => next => action => {\n if (!isAction(action)) {\n // we only want to notify listeners for action objects\n return next(action);\n }\n if (addListener.match(action)) {\n return startListening(action.payload as any);\n }\n if (clearAllListeners.match(action)) {\n clearListenerMiddleware();\n return;\n }\n if (removeListener.match(action)) {\n return stopListening(action.payload);\n }\n\n // Need to get this state _before_ the reducer processes the action\n let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState();\n\n // `getOriginalState` can only be called synchronously.\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n const getOriginalState = (): StateType => {\n if (originalState === INTERNAL_NIL_TOKEN) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);\n }\n return originalState as StateType;\n };\n let result: unknown;\n try {\n // Actually forward the action to the reducer before we handle listeners\n result = next(action);\n if (listenerMap.size > 0) {\n const currentState = api.getState();\n // Work around ESBuild+TS transpilation issue\n const listenerEntries = Array.from(listenerMap.values());\n for (const entry of listenerEntries) {\n let runListener = false;\n try {\n runListener = entry.predicate(action, currentState, originalState);\n } catch (predicateError) {\n runListener = false;\n safelyNotifyError(onError, predicateError, {\n raisedBy: 'predicate'\n });\n }\n if (!runListener) {\n continue;\n }\n notifyListener(entry, action, api, getOriginalState);\n }\n }\n } finally {\n // Remove `originalState` store from this scope.\n originalState = INTERNAL_NIL_TOKEN;\n }\n return result;\n };\n return {\n middleware,\n startListening,\n stopListening,\n clearListeners: clearListenerMiddleware\n } as ListenerMiddlewareInstance;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { Reducer, StateFromReducersMapObject, UnknownAction } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\ntype SliceLike = {\n reducerPath: ReducerPath;\n reducer: Reducer;\n};\ntype AnySliceLike = SliceLike;\ntype SliceLikeReducerPath = A extends SliceLike ? ReducerPath : never;\ntype SliceLikeState = A extends SliceLike ? State : never;\nexport type WithSlice = { [Path in SliceLikeReducerPath]: SliceLikeState };\ntype ReducerMap = Record;\ntype ExistingSliceLike = { [ReducerPath in keyof DeclaredState]: SliceLike> }[keyof DeclaredState];\nexport type InjectConfig = {\n /**\n * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.\n */\n overrideExisting?: boolean;\n};\n\n/**\n * A reducer that allows for slices/reducers to be injected after initialisation.\n */\nexport interface CombinedSliceReducer extends Reducer> {\n /**\n * Provide a type for slices that will be injected lazily.\n *\n * One way to do this would be with interface merging:\n * ```ts\n *\n * export interface LazyLoadedSlices {}\n *\n * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices();\n *\n * // elsewhere\n *\n * declare module './reducer' {\n * export interface LazyLoadedSlices extends WithSlice {}\n * }\n *\n * const withBoolean = rootReducer.inject(booleanSlice);\n *\n * // elsewhere again\n *\n * declare module './reducer' {\n * export interface LazyLoadedSlices {\n * customName: CustomState\n * }\n * }\n *\n * const withCustom = rootReducer.inject({ reducerPath: \"customName\", reducer: customSlice.reducer })\n * ```\n */\n withLazyLoadedSlices(): CombinedSliceReducer>>;\n\n /**\n * Inject a slice.\n *\n * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n *\n * ```ts\n * rootReducer.inject(booleanSlice)\n * rootReducer.inject(baseApi)\n * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n * ```\n *\n */\n inject>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer>>;\n\n /**\n * Inject a slice.\n *\n * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n *\n * ```ts\n * rootReducer.inject(booleanSlice)\n * rootReducer.inject(baseApi)\n * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n * ```\n *\n */\n inject(slice: SliceLike, config?: InjectConfig): CombinedSliceReducer>>>;\n\n /**\n * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n *\n * ```ts\n * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n * // ^? boolean | undefined\n *\n * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n * // if action hasn't been dispatched since slice was injected, this would usually be undefined\n * // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n * return state.boolean;\n * // ^? boolean\n * })\n * ```\n *\n * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n *\n * ```ts\n *\n * export interface LazyLoadedSlices {};\n *\n * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices();\n *\n * export const rootReducer = combineSlices({ inner: innerReducer });\n *\n * export type RootState = ReturnType;\n *\n * // elsewhere\n *\n * declare module \"./reducer.ts\" {\n * export interface LazyLoadedSlices extends WithSlice {}\n * }\n *\n * const withBool = innerReducer.inject(booleanSlice);\n *\n * const selectBoolean = withBool.selector(\n * (state) => state.boolean,\n * (rootState: RootState) => state.inner\n * );\n * // now expects to be passed RootState instead of innerReducer state\n *\n * ```\n *\n * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n *\n * ```ts\n * const injectedReducer = rootReducer.inject(booleanSlice);\n * const selectBoolean = injectedReducer.selector((state) => {\n * console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n * return state.boolean\n * })\n * ```\n */\n selector: {\n /**\n * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n *\n * ```ts\n * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n * // ^? boolean | undefined\n *\n * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n * // if action hasn't been dispatched since slice was injected, this would usually be undefined\n * // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n * return state.boolean;\n * // ^? boolean\n * })\n * ```\n *\n * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n *\n * ```ts\n * const injectedReducer = rootReducer.inject(booleanSlice);\n * const selectBoolean = injectedReducer.selector((state) => {\n * console.log(injectedReducer.selector.original(state).boolean) // undefined\n * return state.boolean\n * })\n * ```\n */\n unknown>(selectorFn: Selector): (state: WithOptionalProp[0], Exclude>, ...args: Tail>) => ReturnType;\n\n /**\n * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n *\n * ```ts\n * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n * // ^? boolean | undefined\n *\n * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n * // if action hasn't been dispatched since slice was injected, this would usually be undefined\n * // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n * return state.boolean;\n * // ^? boolean\n * })\n * ```\n *\n * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n *\n * ```ts\n *\n * interface LazyLoadedSlices {};\n *\n * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices();\n *\n * const rootReducer = combineSlices({ inner: innerReducer });\n *\n * type RootState = ReturnType;\n *\n * // elsewhere\n *\n * declare module \"./reducer.ts\" {\n * interface LazyLoadedSlices extends WithSlice {}\n * }\n *\n * const withBool = innerReducer.inject(booleanSlice);\n *\n * const selectBoolean = withBool.selector(\n * (state) => state.boolean,\n * (rootState: RootState) => state.inner\n * );\n * // now expects to be passed RootState instead of innerReducer state\n *\n * ```\n *\n * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n *\n * ```ts\n * const injectedReducer = rootReducer.inject(booleanSlice);\n * const selectBoolean = injectedReducer.selector((state) => {\n * console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n * return state.boolean\n * })\n * ```\n */\n unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail>) => WithOptionalProp[0], Exclude>): (state: RootState, ...args: Tail>) => ReturnType;\n /**\n * Returns the unproxied state. Useful for debugging.\n * @param state state Proxy, that ensures injected reducers have value\n * @returns original, unproxied state\n * @throws if value passed is not a state Proxy\n */\n original: (state: DeclaredState) => InitialState & Partial;\n };\n}\ntype InitialState> = UnionToIntersection : StateFromReducersMapObject : never>;\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\nconst getReducers = (slices: Array) => slices.flatMap(sliceOrMap => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer] as const] : Object.entries(sliceOrMap));\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\nconst stateProxyMap = new WeakMap();\nconst createStateProxy = (state: State, reducerMap: Partial>) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n get: (target, prop, receiver) => {\n if (prop === ORIGINAL_STATE) return target;\n const result = Reflect.get(target, prop, receiver);\n if (typeof result === 'undefined') {\n const reducer = reducerMap[prop.toString()];\n if (reducer) {\n // ensure action type is random, to prevent reducer treating it differently\n const reducerResult = reducer(undefined, {\n type: nanoid()\n });\n if (typeof reducerResult === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n }\n return reducerResult;\n }\n }\n return result;\n }\n})) as State;\nconst original = (state: any) => {\n if (!isStateProxy(state)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(25) : 'original must be used on state Proxy');\n }\n return state[ORIGINAL_STATE];\n};\nconst noopReducer: Reducer> = (state = {}) => state;\nexport function combineSlices>(...slices: Slices): CombinedSliceReducer>> {\n const reducerMap = Object.fromEntries(getReducers(slices));\n const getReducer = () => Object.keys(reducerMap).length ? combineReducers(reducerMap) : noopReducer;\n let reducer = getReducer();\n function combinedReducer(state: Record, action: UnknownAction) {\n return reducer(state, action);\n }\n combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n const {\n reducerPath,\n reducer: reducerToInject\n } = slice;\n const currentReducer = reducerMap[reducerPath];\n if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n }\n return combinedReducer;\n }\n reducerMap[reducerPath] = reducerToInject;\n reducer = getReducer();\n return combinedReducer;\n };\n const selector = Object.assign(function makeSelector(selectorFn: (state: State, ...args: Args) => any, selectState?: (rootState: RootState, ...args: Args) => State) {\n return function selector(state: State, ...args: Args) {\n return selectorFn(createStateProxy(selectState ? selectState(state as any, ...args) : state, reducerMap), ...args);\n };\n }, {\n original\n });\n return Object.assign(combinedReducer, {\n inject,\n selector\n }) as any;\n}","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel1: \n - merges 1 level of substate\n - skips substate if already modified\n*/\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n } // otherwise hard set the new value\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}","import { KEY_PREFIX } from './constants';\nexport default function getStoredState(config) {\n var transforms = config.transforms || [];\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var debug = config.debug;\n var deserialize;\n\n if (config.deserialize === false) {\n deserialize = function deserialize(x) {\n return x;\n };\n } else if (typeof config.deserialize === 'function') {\n deserialize = config.deserialize;\n } else {\n deserialize = defaultDeserialize;\n }\n\n return storage.getItem(storageKey).then(function (serialized) {\n if (!serialized) return undefined;else {\n try {\n var state = {};\n var rawState = deserialize(serialized);\n Object.keys(rawState).forEach(function (key) {\n state[key] = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key, rawState);\n }, deserialize(rawState[key]));\n });\n return state;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n throw err;\n }\n }\n });\n}\n\nfunction defaultDeserialize(serial) {\n return JSON.parse(serial);\n}","import { KEY_PREFIX } from './constants';\nexport default function purgeStoredState(config) {\n var storage = config.storage;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n @TODO add validation / handling for:\n - persisting a reducer which has nested _persist\n - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (!config) throw new Error('config is required for persistReducer');\n if (!config.key) throw new Error('key is required in persistor config');\n if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n }\n\n var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n var debug = config.debug || false;\n var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n var getStoredState = config.getStoredState || defaultGetStoredState;\n var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n var _persistoid = null;\n var _purge = false;\n var _paused = true;\n\n var conditionalUpdate = function conditionalUpdate(state) {\n // update the persistoid only if we are rehydrated and not paused\n state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n return state;\n };\n\n return function (state, action) {\n var _ref = state || {},\n _persist = _ref._persist,\n rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n var restState = rest;\n\n if (action.type === PERSIST) {\n var _sealed = false;\n\n var _rehydrate = function _rehydrate(payload, err) {\n // dev warning if we are already sealed\n if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n if (!_sealed) {\n action.rehydrate(config.key, payload, err);\n _sealed = true;\n }\n };\n\n timeout && setTimeout(function () {\n !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n }, timeout); // @NOTE PERSIST resumes if paused.\n\n _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n if (_persist) {\n // We still need to call the base reducer because there might be nested\n // uses of persistReducer which need to be aware of the PERSIST action\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n }\n\n if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n action.register(config.key);\n getStoredState(config).then(function (restoredState) {\n var migrate = config.migrate || function (s, v) {\n return Promise.resolve(s);\n };\n\n migrate(restoredState, version).then(function (migratedState) {\n _rehydrate(migratedState);\n }, function (migrateErr) {\n if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n _rehydrate(undefined, migrateErr);\n });\n }, function (err) {\n _rehydrate(undefined, err);\n });\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: {\n version: version,\n rehydrated: false\n }\n });\n } else if (action.type === PURGE) {\n _purge = true;\n action.result(purgeStoredState(config));\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === FLUSH) {\n action.result(_persistoid && _persistoid.flush());\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === PAUSE) {\n _paused = true;\n } else if (action.type === REHYDRATE) {\n // noop on restState if purging\n if (_purge) return _objectSpread({}, restState, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n }) // @NOTE if key does not match, will continue to default else below\n\n });\n\n if (action.key === config.key) {\n var reducedState = baseReducer(restState, action);\n var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n var _newState = _objectSpread({}, reconciledRest, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n })\n });\n\n return conditionalUpdate(_newState);\n }\n } // if we have not already handled PERSIST, straight passthrough\n\n\n if (!_persist) return baseReducer(state, action); // run base reducer:\n // is state modified ? return original : return updated\n\n var newState = baseReducer(restState, action);\n if (newState === restState) return state;\n return conditionalUpdate(_objectSpread({}, newState, {\n _persist: _persist\n }));\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createStore } from 'redux';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\nvar initialState = {\n registry: [],\n bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case REGISTER:\n return _objectSpread({}, state, {\n registry: [].concat(_toConsumableArray(state.registry), [action.key])\n });\n\n case REHYDRATE:\n var firstIndex = state.registry.indexOf(action.key);\n\n var registry = _toConsumableArray(state.registry);\n\n registry.splice(firstIndex, 1);\n return _objectSpread({}, state, {\n registry: registry,\n bootstrapped: registry.length === 0\n });\n\n default:\n return state;\n }\n};\n\nexport default function persistStore(store, options, cb) {\n // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n if (process.env.NODE_ENV !== 'production') {\n var optionsToTest = options || {};\n var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n bannedKeys.forEach(function (k) {\n if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n });\n }\n\n var boostrappedCb = cb || false;\n\n var _pStore = createStore(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n var register = function register(key) {\n _pStore.dispatch({\n type: REGISTER,\n key: key\n });\n };\n\n var rehydrate = function rehydrate(key, payload, err) {\n var rehydrateAction = {\n type: REHYDRATE,\n payload: payload,\n err: err,\n key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n };\n store.dispatch(rehydrateAction);\n\n _pStore.dispatch(rehydrateAction);\n\n if (boostrappedCb && persistor.getState().bootstrapped) {\n boostrappedCb();\n boostrappedCb = false;\n }\n };\n\n var persistor = _objectSpread({}, _pStore, {\n purge: function purge() {\n var results = [];\n store.dispatch({\n type: PURGE,\n result: function result(purgeResult) {\n results.push(purgeResult);\n }\n });\n return Promise.all(results);\n },\n flush: function flush() {\n var results = [];\n store.dispatch({\n type: FLUSH,\n result: function result(flushResult) {\n results.push(flushResult);\n }\n });\n return Promise.all(results);\n },\n pause: function pause() {\n store.dispatch({\n type: PAUSE\n });\n },\n persist: function persist() {\n store.dispatch({\n type: PERSIST,\n register: register,\n rehydrate: rehydrate\n });\n }\n });\n\n if (!(options && options.manualPersist)) {\n persistor.persist();\n }\n\n return persistor;\n}","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n bookOrders: [],\r\n countryList: [],\r\n selectedBook: null,\r\n deliveryAddressList: [],\r\n isAddressListLoading: false,\r\n};\r\n\r\nconst bookOrdersSlice = createSlice({\r\n name: \"bookOrders\",\r\n initialState,\r\n reducers: {\r\n setCountryList: (state, action) => {\r\n state.countryList = action.payload;\r\n },\r\n setBookOrders: (state, action) => {\r\n state.bookOrders = action.payload;\r\n },\r\n setSelectedBook: (state, action) => {\r\n state.selectedBook = action.payload;\r\n },\r\n setDeliveryAddressList: (state, action) => {\r\n state.deliveryAddressList = action.payload;\r\n },\r\n setIsAddressListLoading: (state, action) => {\r\n state.isAddressListLoading = action.payload;\r\n },\r\n clearBookOrders: (state) => {\r\n state.bookOrders = [];\r\n state.countryList = [];\r\n state.selectedBook = null;\r\n state.deliveryAddressList = [];\r\n state.isAddressListLoading = false;\r\n },\r\n },\r\n});\r\n\r\nexport const {\r\n setBookOrders,\r\n setCountryList,\r\n clearBookOrders,\r\n setSelectedBook,\r\n setDeliveryAddressList,\r\n setIsAddressListLoading,\r\n} = bookOrdersSlice.actions;\r\nexport default bookOrdersSlice;\r\n","import { combineReducers, configureStore } from \"@reduxjs/toolkit\";\r\nimport {\r\n FLUSH,\r\n PAUSE,\r\n PURGE,\r\n PERSIST,\r\n REGISTER,\r\n REHYDRATE,\r\n persistStore,\r\n persistReducer,\r\n} from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage\";\r\nimport bookOrdersSlice from \"./orders/reducer\";\r\n\r\nconst reducers = combineReducers({\r\n bookOrders: bookOrdersSlice.reducer,\r\n});\r\n\r\nconst persistConfig = {\r\n key: \"root\",\r\n version: 1,\r\n storage,\r\n};\r\n\r\nconst persistedReducer = persistReducer(persistConfig, reducers);\r\n\r\nexport const store = configureStore({\r\n reducer: persistedReducer,\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n serializableCheck: {\r\n ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],\r\n },\r\n }),\r\n});\r\n\r\nexport const persistor = persistStore(store);\r\n","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport type { Reducer, ReducersMapObject, Middleware, Action, StoreEnhancer, Store, UnknownAction } from 'redux';\nimport { applyMiddleware, createStore, compose, combineReducers, isPlainObject } from 'redux';\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension';\nimport { composeWithDevTools } from './devtoolsExtension';\nimport type { ThunkMiddlewareFor, GetDefaultMiddleware } from './getDefaultMiddleware';\nimport { buildGetDefaultMiddleware } from './getDefaultMiddleware';\nimport type { ExtractDispatchExtensions, ExtractStoreExtensions, ExtractStateExtensions, UnknownIfNonSpecific } from './tsHelpers';\nimport type { Tuple } from './utils';\nimport type { GetDefaultEnhancers } from './getDefaultEnhancers';\nimport { buildGetDefaultEnhancers } from './getDefaultEnhancers';\n\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\nexport interface ConfigureStoreOptions> = Tuple>, E extends Tuple = Tuple, P = S> {\n /**\n * A single reducer function that will be used as the root reducer, or an\n * object of slice reducers that will be passed to `combineReducers()`.\n */\n reducer: Reducer | ReducersMapObject;\n\n /**\n * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.\n * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.\n *\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\n */\n middleware?: (getDefaultMiddleware: GetDefaultMiddleware) => M;\n\n /**\n * Whether to enable Redux DevTools integration. Defaults to `true`.\n *\n * Additional configuration can be done by passing Redux DevTools options\n */\n devTools?: boolean | DevToolsOptions;\n\n /**\n * The initial state, same as Redux's createStore.\n * You may optionally specify it to hydrate the state\n * from the server in universal apps, or to restore a previously serialized\n * user session. If you use `combineReducers()` to produce the root reducer\n * function (either directly or indirectly by passing an object as `reducer`),\n * this must be an object with the same shape as the reducer map keys.\n */\n // we infer here, and instead complain if the reducer doesn't match\n preloadedState?: P;\n\n /**\n * The store enhancers to apply. See Redux's `createStore()`.\n * All enhancers will be included before the DevTools Extension enhancer.\n * If you need to customize the order of enhancers, supply a callback\n * function that will receive a `getDefaultEnhancers` function that returns a Tuple,\n * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).\n * If you only need to add middleware, you can use the `middleware` parameter instead.\n */\n enhancers?: (getDefaultEnhancers: GetDefaultEnhancers) => E;\n}\nexport type Middlewares = ReadonlyArray>;\ntype Enhancers = ReadonlyArray;\n\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\nexport type EnhancedStore = ExtractStoreExtensions & Store>>;\n\n/**\n * A friendly abstraction over the standard Redux `createStore()` function.\n *\n * @param options The store configuration.\n * @returns A configured Redux store.\n *\n * @public\n */\nexport function configureStore> = Tuple<[ThunkMiddlewareFor]>, E extends Tuple = Tuple<[StoreEnhancer<{\n dispatch: ExtractDispatchExtensions;\n}>, StoreEnhancer]>, P = S>(options: ConfigureStoreOptions): EnhancedStore {\n const getDefaultMiddleware = buildGetDefaultMiddleware();\n const {\n reducer = undefined,\n middleware,\n devTools = true,\n preloadedState = undefined,\n enhancers = undefined\n } = options || {};\n let rootReducer: Reducer;\n if (typeof reducer === 'function') {\n rootReducer = reducer;\n } else if (isPlainObject(reducer)) {\n rootReducer = combineReducers(reducer) as unknown as Reducer;\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(1) : '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\n }\n if (process.env.NODE_ENV !== 'production' && middleware && typeof middleware !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n }\n let finalMiddleware: Tuple>;\n if (typeof middleware === 'function') {\n finalMiddleware = middleware(getDefaultMiddleware);\n if (process.env.NODE_ENV !== 'production' && !Array.isArray(finalMiddleware)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(3) : 'when using a middleware builder function, an array of middleware must be returned');\n }\n } else {\n finalMiddleware = getDefaultMiddleware();\n }\n if (process.env.NODE_ENV !== 'production' && finalMiddleware.some((item: any) => typeof item !== 'function')) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(4) : 'each middleware provided to configureStore must be a function');\n }\n let finalCompose = compose;\n if (devTools) {\n finalCompose = composeWithDevTools({\n // Enable capture of stack traces for dispatched Redux actions\n trace: process.env.NODE_ENV !== 'production',\n ...(typeof devTools === 'object' && devTools)\n });\n }\n const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);\n if (process.env.NODE_ENV !== 'production' && enhancers && typeof enhancers !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(5) : '`enhancers` field must be a callback');\n }\n let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(6) : '`enhancers` callback must return an array');\n }\n if (process.env.NODE_ENV !== 'production' && storeEnhancers.some((item: any) => typeof item !== 'function')) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(7) : 'each enhancer provided to configureStore must be a function');\n }\n if (process.env.NODE_ENV !== 'production' && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n console.error('middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`');\n }\n const composedEnhancer: StoreEnhancer = finalCompose(...storeEnhancers);\n return createStore(rootReducer, preloadedState as P, composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport compose from './compose';\nimport { Middleware, MiddlewareAPI } from './types/middleware';\nimport { StoreEnhancer, Dispatch } from './types/store';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param middlewares The middleware chain to be applied.\n * @returns A store enhancer applying the middleware.\n *\n * @template Ext Dispatch signature added by a middleware.\n * @template S The type of the state supported by a middleware.\n */\nexport default function applyMiddleware(): StoreEnhancer;\nexport default function applyMiddleware(middleware1: Middleware): StoreEnhancer<{\n dispatch: Ext1;\n}>;\nexport default function applyMiddleware(middleware1: Middleware, middleware2: Middleware): StoreEnhancer<{\n dispatch: Ext1 & Ext2;\n}>;\nexport default function applyMiddleware(middleware1: Middleware, middleware2: Middleware, middleware3: Middleware): StoreEnhancer<{\n dispatch: Ext1 & Ext2 & Ext3;\n}>;\nexport default function applyMiddleware(middleware1: Middleware, middleware2: Middleware, middleware3: Middleware, middleware4: Middleware): StoreEnhancer<{\n dispatch: Ext1 & Ext2 & Ext3 & Ext4;\n}>;\nexport default function applyMiddleware(middleware1: Middleware, middleware2: Middleware, middleware3: Middleware, middleware4: Middleware, middleware5: Middleware): StoreEnhancer<{\n dispatch: Ext1 & Ext2 & Ext3 & Ext4 & Ext5;\n}>;\nexport default function applyMiddleware(...middlewares: Middleware[]): StoreEnhancer<{\n dispatch: Ext;\n}>;\nexport default function applyMiddleware(...middlewares: Middleware[]): StoreEnhancer {\n return createStore => (reducer, preloadedState) => {\n const store = createStore(reducer, preloadedState);\n let dispatch: Dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n const middlewareAPI: MiddlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map(middleware => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}","// Default to a dummy \"batch\" implementation that just runs the callback\r\nexport function defaultNoopBatch(callback: () => void) {\r\n callback()\r\n}\r\n","import { defaultNoopBatch as batch } from './batch'\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\ntype VoidFunc = () => void\n\ntype Listener = {\n callback: VoidFunc\n next: Listener | null\n prev: Listener | null\n}\n\nfunction createListenerCollection() {\n let first: Listener | null = null\n let last: Listener | null = null\n\n return {\n clear() {\n first = null\n last = null\n },\n\n notify() {\n batch(() => {\n let listener = first\n while (listener) {\n listener.callback()\n listener = listener.next\n }\n })\n },\n\n get() {\n const listeners: Listener[] = []\n let listener = first\n while (listener) {\n listeners.push(listener)\n listener = listener.next\n }\n return listeners\n },\n\n subscribe(callback: () => void) {\n let isSubscribed = true\n\n const listener: Listener = (last = {\n callback,\n next: null,\n prev: last,\n })\n\n if (listener.prev) {\n listener.prev.next = listener\n } else {\n first = listener\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return\n isSubscribed = false\n\n if (listener.next) {\n listener.next.prev = listener.prev\n } else {\n last = listener.prev\n }\n if (listener.prev) {\n listener.prev.next = listener.next\n } else {\n first = listener.next\n }\n }\n },\n }\n}\n\ntype ListenerCollection = ReturnType\n\nexport interface Subscription {\n addNestedSub: (listener: VoidFunc) => VoidFunc\n notifyNestedSubs: VoidFunc\n handleChangeWrapper: VoidFunc\n isSubscribed: () => boolean\n onStateChange?: VoidFunc | null\n trySubscribe: VoidFunc\n tryUnsubscribe: VoidFunc\n getListeners: () => ListenerCollection\n}\n\nconst nullListeners = {\n notify() {},\n get: () => [],\n} as unknown as ListenerCollection\n\nexport function createSubscription(store: any, parentSub?: Subscription) {\n let unsubscribe: VoidFunc | undefined\n let listeners: ListenerCollection = nullListeners\n\n // Reasons to keep the subscription active\n let subscriptionsAmount = 0\n\n // Is this specific subscription subscribed (or only nested ones?)\n let selfSubscribed = false\n\n function addNestedSub(listener: () => void) {\n trySubscribe()\n\n const cleanupListener = listeners.subscribe(listener)\n\n // cleanup nested sub\n let removed = false\n return () => {\n if (!removed) {\n removed = true\n cleanupListener()\n tryUnsubscribe()\n }\n }\n }\n\n function notifyNestedSubs() {\n listeners.notify()\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange()\n }\n }\n\n function isSubscribed() {\n return selfSubscribed\n }\n\n function trySubscribe() {\n subscriptionsAmount++\n if (!unsubscribe) {\n unsubscribe = parentSub\n ? parentSub.addNestedSub(handleChangeWrapper)\n : store.subscribe(handleChangeWrapper)\n\n listeners = createListenerCollection()\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe()\n unsubscribe = undefined\n listeners.clear()\n listeners = nullListeners\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true\n trySubscribe()\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false\n tryUnsubscribe()\n }\n }\n\n const subscription: Subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners,\n }\n\n return subscription\n}\n","import { React } from '../utils/react'\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\n// Matches logic in React's `shared/ExecutionEnvironment` file\nconst canUseDOM = () =>\n !!(\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined'\n )\n\nconst isDOM = /* @__PURE__ */ canUseDOM()\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\n/**\n * Checks if the code is running in a React Native environment.\n *\n * @returns Whether the code is running in a React Native environment.\n *\n * @see {@link https://github.com/facebook/react-native/issues/1331 Reference}\n */\nconst isRunningInReactNative = () =>\n typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n\nconst isReactNative = /* @__PURE__ */ isRunningInReactNative()\n\nconst getUseIsomorphicLayoutEffect = () =>\n isDOM || isReactNative ? React.useLayoutEffect : React.useEffect\n\nexport const useIsomorphicLayoutEffect =\n /* @__PURE__ */ getUseIsomorphicLayoutEffect()\n","// Copied directly from:\n// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js\n// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.6/index.d.ts\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nimport type { ForwardRefExoticComponent, MemoExoticComponent } from 'react'\nimport { ForwardRef, Memo, isMemo } from '../utils/react-is'\n\nconst REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true,\n} as const\n\nconst KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true,\n} as const\n\nconst FORWARD_REF_STATICS = {\n $$typeof: true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n} as const\n\nconst MEMO_STATICS = {\n $$typeof: true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true,\n} as const\n\nconst TYPE_STATICS = {\n [ForwardRef]: FORWARD_REF_STATICS,\n [Memo]: MEMO_STATICS,\n} as const\n\nfunction getStatics(component: any) {\n // React v16.11 and below\n if (isMemo(component)) {\n return MEMO_STATICS\n }\n\n // React v16.12 and above\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS\n}\n\nexport type NonReactStatics<\n Source,\n C extends {\n [key: string]: true\n } = {},\n> = {\n [key in Exclude<\n keyof Source,\n Source extends MemoExoticComponent\n ? keyof typeof MEMO_STATICS | keyof C\n : Source extends ForwardRefExoticComponent\n ? keyof typeof FORWARD_REF_STATICS | keyof C\n : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n >]: Source[key]\n}\n\nconst defineProperty = Object.defineProperty\nconst getOwnPropertyNames = Object.getOwnPropertyNames\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nconst getPrototypeOf = Object.getPrototypeOf\nconst objectPrototype = Object.prototype\n\nexport default function hoistNonReactStatics<\n Target,\n Source,\n CustomStatic extends {\n [key: string]: true\n } = {},\n>(\n targetComponent: Target,\n sourceComponent: Source,\n): Target & NonReactStatics {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n const inheritedComponent = getPrototypeOf(sourceComponent)\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent)\n }\n }\n\n let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent))\n }\n\n const targetStatics = getStatics(targetComponent)\n const sourceStatics = getStatics(sourceComponent)\n\n for (let i = 0; i < keys.length; ++i) {\n const key = keys[i]\n if (\n !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&\n !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&\n !(targetStatics && targetStatics[key as keyof typeof targetStatics])\n ) {\n const descriptor = getOwnPropertyDescriptor(sourceComponent, key)\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor!)\n } catch (e) {\n // ignore\n }\n }\n }\n }\n\n return targetComponent as any\n}\n","import type { Context } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { Subscription } from '../utils/Subscription'\nimport type { ProviderProps } from './Provider'\n\nexport interface ReactReduxContextValue<\n SS = any,\n A extends Action = UnknownAction,\n> extends Pick {\n store: Store\n subscription: Subscription\n getServerState?: () => SS\n}\n\nconst ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`)\nconst gT: {\n [ContextKey]?: Map<\n typeof React.createContext,\n Context\n >\n} = (\n typeof globalThis !== 'undefined'\n ? globalThis\n : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}\n) as any\n\nfunction getContext(): Context {\n if (!React.createContext) return {} as any\n\n const contextMap = (gT[ContextKey] ??= new Map<\n typeof React.createContext,\n Context\n >())\n let realContext = contextMap.get(React.createContext)\n if (!realContext) {\n realContext = React.createContext(\n null as any,\n )\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux'\n }\n contextMap.set(React.createContext, realContext)\n }\n return realContext\n}\n\nexport const ReactReduxContext = /*#__PURE__*/ getContext()\n\nexport type ReactReduxContextInstance = typeof ReactReduxContext\n","import type { Context, ReactNode } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { DevModeCheckFrequency } from '../hooks/useSelector'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport type { ReactReduxContextValue } from './Context'\nimport { ReactReduxContext } from './Context'\n\nexport interface ProviderProps<\n A extends Action = UnknownAction,\n S = unknown,\n> {\n /**\n * The single Redux store in your application.\n */\n store: Store\n\n /**\n * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.\n */\n serverState?: S\n\n /**\n * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.\n * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.\n * Set the initial value to null, and the hooks will error\n * if this is not overwritten by Provider.\n */\n context?: Context | null>\n\n /**\n * Determines the frequency of stability checks for all selectors.\n * This setting overrides the global configuration for\n * the `useSelector` stability check, allowing you to specify how often\n * these checks should occur in development mode.\n *\n * @since 8.1.0\n */\n stabilityCheck?: DevModeCheckFrequency\n\n /**\n * Determines the frequency of identity function checks for all selectors.\n * This setting overrides the global configuration for\n * the `useSelector` identity function check, allowing you to specify how often\n * these checks should occur in development mode.\n *\n * **Note**: Previously referred to as `noopCheck`.\n *\n * @since 9.0.0\n */\n identityFunctionCheck?: DevModeCheckFrequency\n\n children: ReactNode\n}\n\nfunction Provider = UnknownAction, S = unknown>(\n providerProps: ProviderProps,\n) {\n const { children, context, serverState, store } = providerProps\n\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store)\n\n const baseContextValue = {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n }\n\n if (process.env.NODE_ENV === 'production') {\n return baseContextValue\n } else {\n const { identityFunctionCheck = 'once', stabilityCheck = 'once' } =\n providerProps\n\n return /* @__PURE__ */ Object.assign(baseContextValue, {\n stabilityCheck,\n identityFunctionCheck,\n })\n }\n }, [store, serverState])\n\n const previousState = React.useMemo(() => store.getState(), [store])\n\n useIsomorphicLayoutEffect(() => {\n const { subscription } = contextValue\n subscription.onStateChange = subscription.notifyNestedSubs\n subscription.trySubscribe()\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs()\n }\n return () => {\n subscription.tryUnsubscribe()\n subscription.onStateChange = undefined\n }\n }, [contextValue, previousState])\n\n const Context = context || ReactReduxContext\n\n return {children}\n}\n\nexport default Provider\n","import { React } from '../utils/react'\nimport { ReactReduxContext } from '../components/Context'\nimport type { ReactReduxContextValue } from '../components/Context'\n\n/**\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext(): ReactReduxContextValue {\n const contextValue = React.useContext(context)\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error(\n 'could not find react-redux context value; please ensure the component is wrapped in a ',\n )\n }\n\n return contextValue!\n }\n}\n\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const { store } = useReduxContext()\n * return

\n * }\n */\nexport const useReduxContext = /*#__PURE__*/ createReduxContextHook()\n","import type { Context } from 'react'\nimport type { Action, Store } from 'redux'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport {\n createReduxContextHook,\n useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * Represents a type that extracts the action type from a given Redux store.\n *\n * @template StoreType - The specific type of the Redux store.\n *\n * @since 9.1.0\n * @internal\n */\nexport type ExtractStoreActionType =\n StoreType extends Store ? ActionType : never\n\n/**\n * Represents a custom hook that provides access to the Redux store.\n *\n * @template StoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseStore {\n /**\n * Returns the Redux store instance.\n *\n * @returns The Redux store instance.\n */\n (): StoreType\n\n /**\n * Returns the Redux store instance with specific state and action types.\n *\n * @returns The Redux store with the specified state and action types.\n *\n * @template StateType - The specific type of the state used in the store.\n * @template ActionType - The specific type of the actions used in the store.\n */\n <\n StateType extends ReturnType = ReturnType<\n StoreType['getState']\n >,\n ActionType extends Action = ExtractStoreActionType,\n >(): Store\n\n /**\n * Creates a \"pre-typed\" version of {@linkcode useStore useStore}\n * where the type of the Redux `store` is predefined.\n *\n * This allows you to set the `store` type once, eliminating the need to\n * specify it with every {@linkcode useStore useStore} call.\n *\n * @returns A pre-typed `useStore` with the store type already defined.\n *\n * @example\n * ```ts\n * export const useAppStore = useStore.withTypes()\n * ```\n *\n * @template OverrideStoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n */\n withTypes: <\n OverrideStoreType extends StoreType,\n >() => UseStore\n}\n\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\nexport function createStoreHook<\n StateType = unknown,\n ActionType extends Action = Action,\n>(\n // @ts-ignore\n context?: Context | null> = ReactReduxContext,\n) {\n const useReduxContext =\n context === ReactReduxContext\n ? useDefaultReduxContext\n : // @ts-ignore\n createReduxContextHook(context)\n const useStore = () => {\n const { store } = useReduxContext()\n return store\n }\n\n Object.assign(useStore, {\n withTypes: () => useStore,\n })\n\n return useStore as UseStore>\n}\n\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n * const store = useStore()\n * return
{store.getState()}
\n * }\n */\nexport const useStore = /*#__PURE__*/ createStoreHook()\n","import type { Context } from 'react'\nimport type { Action, Dispatch, UnknownAction } from 'redux'\n\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport { createStoreHook, useStore as useDefaultStore } from './useStore'\n\n/**\n * Represents a custom hook that provides a dispatch function\n * from the Redux store.\n *\n * @template DispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseDispatch<\n DispatchType extends Dispatch = Dispatch,\n> {\n /**\n * Returns the dispatch function from the Redux store.\n *\n * @returns The dispatch function from the Redux store.\n *\n * @template AppDispatch - The specific type of the dispatch function.\n */\n (): AppDispatch\n\n /**\n * Creates a \"pre-typed\" version of {@linkcode useDispatch useDispatch}\n * where the type of the `dispatch` function is predefined.\n *\n * This allows you to set the `dispatch` type once, eliminating the need to\n * specify it with every {@linkcode useDispatch useDispatch} call.\n *\n * @returns A pre-typed `useDispatch` with the dispatch type already defined.\n *\n * @example\n * ```ts\n * export const useAppDispatch = useDispatch.withTypes()\n * ```\n *\n * @template OverrideDispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n */\n withTypes: <\n OverrideDispatchType extends DispatchType,\n >() => UseDispatch\n}\n\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\nexport function createDispatchHook<\n StateType = unknown,\n ActionType extends Action = UnknownAction,\n>(\n // @ts-ignore\n context?: Context | null> = ReactReduxContext,\n) {\n const useStore =\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context)\n\n const useDispatch = () => {\n const store = useStore()\n return store.dispatch\n }\n\n Object.assign(useDispatch, {\n withTypes: () => useDispatch,\n })\n\n return useDispatch as UseDispatch>\n}\n\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n *
\n * {value}\n * \n *
\n * )\n * }\n */\nexport const useDispatch = /*#__PURE__*/ createDispatchHook()\n","//import * as React from 'react'\nimport { React } from '../utils/react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport type { EqualityFn, NoInfer } from '../types'\nimport {\n createReduxContextHook,\n useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * The frequency of development mode checks.\n *\n * @since 8.1.0\n * @internal\n */\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\n\n/**\n * Represents the configuration for development mode checks.\n *\n * @since 9.0.0\n * @internal\n */\nexport interface DevModeChecks {\n /**\n * Overrides the global stability check for the selector.\n * - `once` - Run only the first time the selector is called.\n * - `always` - Run every time the selector is called.\n * - `never` - Never run the stability check.\n *\n * @default 'once'\n *\n * @since 8.1.0\n */\n stabilityCheck: DevModeCheckFrequency\n\n /**\n * Overrides the global identity function check for the selector.\n * - `once` - Run only the first time the selector is called.\n * - `always` - Run every time the selector is called.\n * - `never` - Never run the identity function check.\n *\n * **Note**: Previously referred to as `noopCheck`.\n *\n * @default 'once'\n *\n * @since 9.0.0\n */\n identityFunctionCheck: DevModeCheckFrequency\n}\n\nexport interface UseSelectorOptions {\n equalityFn?: EqualityFn\n\n /**\n * `useSelector` performs additional checks in development mode to help\n * identify and warn about potential issues in selector behavior. This\n * option allows you to customize the behavior of these checks per selector.\n *\n * @since 9.0.0\n */\n devModeChecks?: Partial\n}\n\n/**\n * Represents a custom hook that allows you to extract data from the\n * Redux store state, using a selector function. The selector function\n * takes the current state as an argument and returns a part of the state\n * or some derived data. The hook also supports an optional equality\n * function or options object to customize its behavior.\n *\n * @template StateType - The specific type of state this hook operates on.\n *\n * @public\n */\nexport interface UseSelector {\n /**\n * A function that takes a selector function as its first argument.\n * The selector function is responsible for selecting a part of\n * the Redux store's state or computing derived data.\n *\n * @param selector - A function that receives the current state and returns a part of the state or some derived data.\n * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.\n * @returns The selected part of the state or derived data.\n *\n * @template TState - The specific type of state this hook operates on.\n * @template Selected - The type of the value that the selector function will return.\n */\n (\n selector: (state: TState) => Selected,\n equalityFnOrOptions?: EqualityFn | UseSelectorOptions,\n ): Selected\n\n /**\n * Creates a \"pre-typed\" version of {@linkcode useSelector useSelector}\n * where the `state` type is predefined.\n *\n * This allows you to set the `state` type once, eliminating the need to\n * specify it with every {@linkcode useSelector useSelector} call.\n *\n * @returns A pre-typed `useSelector` with the state type already defined.\n *\n * @example\n * ```ts\n * export const useAppSelector = useSelector.withTypes()\n * ```\n *\n * @template OverrideStateType - The specific type of state this hook operates on.\n *\n * @since 9.1.0\n */\n withTypes: <\n OverrideStateType extends StateType,\n >() => UseSelector\n}\n\nconst refEquality: EqualityFn = (a, b) => a === b\n\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\nexport function createSelectorHook(\n context: React.Context | null> = ReactReduxContext,\n): UseSelector {\n const useReduxContext =\n context === ReactReduxContext\n ? useDefaultReduxContext\n : createReduxContextHook(context)\n\n const useSelector = (\n selector: (state: TState) => Selected,\n equalityFnOrOptions:\n | EqualityFn>\n | UseSelectorOptions> = {},\n ): Selected => {\n const { equalityFn = refEquality } =\n typeof equalityFnOrOptions === 'function'\n ? { equalityFn: equalityFnOrOptions }\n : equalityFnOrOptions\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`)\n }\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`)\n }\n if (typeof equalityFn !== 'function') {\n throw new Error(\n `You must pass a function as an equality function to useSelector`,\n )\n }\n }\n\n const reduxContext = useReduxContext()\n\n const { store, subscription, getServerState } = reduxContext\n\n const firstRun = React.useRef(true)\n\n const wrappedSelector = React.useCallback(\n {\n [selector.name](state: TState) {\n const selected = selector(state)\n if (process.env.NODE_ENV !== 'production') {\n const { devModeChecks = {} } =\n typeof equalityFnOrOptions === 'function'\n ? {}\n : equalityFnOrOptions\n const { identityFunctionCheck, stabilityCheck } = reduxContext\n const {\n identityFunctionCheck: finalIdentityFunctionCheck,\n stabilityCheck: finalStabilityCheck,\n } = {\n stabilityCheck,\n identityFunctionCheck,\n ...devModeChecks,\n }\n if (\n finalStabilityCheck === 'always' ||\n (finalStabilityCheck === 'once' && firstRun.current)\n ) {\n const toCompare = selector(state)\n if (!equalityFn(selected, toCompare)) {\n let stack: string | undefined = undefined\n try {\n throw new Error()\n } catch (e) {\n // eslint-disable-next-line no-extra-semi\n ;({ stack } = e as Error)\n }\n console.warn(\n 'Selector ' +\n (selector.name || 'unknown') +\n ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\n '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\n {\n state,\n selected,\n selected2: toCompare,\n stack,\n },\n )\n }\n }\n if (\n finalIdentityFunctionCheck === 'always' ||\n (finalIdentityFunctionCheck === 'once' && firstRun.current)\n ) {\n // @ts-ignore\n if (selected === state) {\n let stack: string | undefined = undefined\n try {\n throw new Error()\n } catch (e) {\n // eslint-disable-next-line no-extra-semi\n ;({ stack } = e as Error)\n }\n console.warn(\n 'Selector ' +\n (selector.name || 'unknown') +\n ' returned the root state when called. This can lead to unnecessary rerenders.' +\n '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\n { stack },\n )\n }\n }\n if (firstRun.current) firstRun.current = false\n }\n return selected\n },\n }[selector.name],\n [selector],\n )\n\n const selectedState = useSyncExternalStoreWithSelector(\n subscription.addNestedSub,\n store.getState,\n getServerState || store.getState,\n wrappedSelector,\n equalityFn,\n )\n\n React.useDebugValue(selectedState)\n\n return selectedState\n }\n\n Object.assign(useSelector, {\n withTypes: () => useSelector,\n })\n\n return useSelector as UseSelector\n}\n\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const ChevronDownIcon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default ChevronDownIcon;\n","import * as React from 'react';\nimport { IconProps } from './types';\n\nexport const Cross2Icon = React.forwardRef(\n ({ color = 'currentColor', ...props }, forwardedRef) => {\n return (\n \n \n \n );\n }\n);\n\nexport default Cross2Icon;\n","import * as React from 'react';\n\nfunction createContext(\n rootComponentName: string,\n defaultContext?: ContextValueType\n) {\n const Context = React.createContext(defaultContext);\n\n const Provider: React.FC = (props) => {\n const { children, ...context } = props;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return {children};\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(consumerName: string) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/\n\ntype Scope = { [scopeName: string]: React.Context[] } | undefined;\ntype ScopeHook = (scope: Scope) => { [__scopeProp: string]: Scope };\ninterface CreateScope {\n scopeName: string;\n (): ScopeHook;\n}\n\nfunction createContextScope(scopeName: string, createContextScopeDeps: CreateScope[] = []) {\n let defaultContexts: any[] = [];\n\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/\n\n function createContext(\n rootComponentName: string,\n defaultContext?: ContextValueType\n ) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n\n const Provider: React.FC<\n ContextValueType & { scope: Scope; children: React.ReactNode }\n > = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return {children};\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(consumerName: string, scope: Scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext] as const;\n }\n\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/\n\n const createScope: CreateScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope: Scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n\n createScope.scopeName = scopeName;\n return [createContext, composeContextScopes(createScope, ...createContextScopeDeps)] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/\n\nfunction composeContextScopes(...scopes: CreateScope[]) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n\n const createScope: CreateScope = () => {\n const scopeHooks = scopes.map((createScope) => ({\n useScope: createScope(),\n scopeName: createScope.scopeName,\n }));\n\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes, { useScope, scopeName }) => {\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes, ...currentScope };\n }, {});\n\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { createContext, createContextScope };\nexport type { CreateScope, Scope };\n","function composeEventHandlers(\n originalEventHandler?: (event: E) => void,\n ourEventHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n\n if (checkForDefaultPrevented === false || !(event as unknown as Event).defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\nexport { composeEventHandlers };\n","import * as React from 'react';\n\ntype PossibleRef = React.Ref | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef(ref: PossibleRef, value: T) {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs(...refs: PossibleRef[]): React.RefCallback {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == 'function') {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == 'function') {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs(...refs: PossibleRef[]): React.RefCallback {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n","import * as React from 'react';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotProps extends React.HTMLAttributes {\n children?: React.ReactNode;\n}\n\nconst Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n\n if (slottable) {\n // the new element to render is the one passed as a child of `Slottable`\n const newElement = slottable.props.children;\n\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n // because the new element will be the one rendered, we are only interested\n // in grabbing its children (`newElement.props.children`)\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement)\n ? (newElement.props as { children: React.ReactNode }).children\n : null;\n } else {\n return child;\n }\n });\n\n return (\n \n {React.isValidElement(newElement)\n ? React.cloneElement(newElement, undefined, newChildren)\n : null}\n \n );\n }\n\n return (\n \n {children}\n \n );\n});\n\nSlot.displayName = 'Slot';\n\n/* -------------------------------------------------------------------------------------------------\n * SlotClone\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SlotCloneProps {\n children: React.ReactNode;\n}\n\nconst SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props as AnyProps),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef,\n });\n }\n\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\n\nSlotClone.displayName = 'SlotClone';\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst Slottable = ({ children }: { children: React.ReactNode }) => {\n return <>{children};\n};\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype AnyProps = Record;\n\nfunction isSlottable(\n child: React.ReactNode\n): child is React.ReactElement, typeof Slottable> {\n return React.isValidElement(child) && child.type === Slottable;\n}\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element.props as { ref?: React.Ref }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref }).ref || (element as any).ref;\n}\n\nconst Root = Slot;\n\nexport {\n Slot,\n Slottable,\n //\n Root,\n};\nexport type { SlotProps };\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Slot } from '@radix-ui/react-slot';\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent };\ntype PrimitivePropsWithRef = React.ComponentPropsWithRef & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent\n extends React.ForwardRefExoticComponent> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\nconst Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props: PrimitivePropsWithRef, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return ;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n","import * as React from 'react';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\ntype UseControllableStateParams = {\n prop?: T | undefined;\n defaultProp?: T | undefined;\n onChange?: (state: T) => void;\n};\n\ntype SetStateFn = (prevState?: T) => T;\n\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {},\n}: UseControllableStateParams) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n\n const setValue: React.Dispatch> = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue as SetStateFn;\n const value = typeof nextValue === 'function' ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value as T);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n\n return [value, setValue] as const;\n}\n\nfunction useUncontrolledState({\n defaultProp,\n onChange,\n}: Omit, 'prop'>) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value as T);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n\n return uncontrolledState;\n}\n\nexport { useControllableState };\n","import * as React from 'react';\n\ntype Direction = 'ltr' | 'rtl';\nconst DirectionContext = React.createContext(undefined);\n\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DirectionProviderProps {\n children?: React.ReactNode;\n dir: Direction;\n}\nconst DirectionProvider: React.FC = (props) => {\n const { dir, children } = props;\n return {children};\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useDirection(localDir?: Direction) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || 'ltr';\n}\n\nconst Provider = DirectionProvider;\n\nexport {\n useDirection,\n //\n Provider,\n //\n DirectionProvider,\n};\n","import * as React from 'react';\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */\nconst useLayoutEffect = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {};\n\nexport { useLayoutEffect };\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useStateMachine } from './useStateMachine';\n\ninterface PresenceProps {\n children: React.ReactElement | ((props: { present: boolean }) => React.ReactElement);\n present: boolean;\n}\n\nconst Presence: React.FC = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n\n const child = (\n typeof children === 'function'\n ? children({ present: presence.isPresent })\n : React.Children.only(children)\n ) as React.ReactElement<{ ref?: React.Ref }>;\n\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;\n};\n\nPresence.displayName = 'Presence';\n\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/\n\nfunction usePresence(present: boolean) {\n const [node, setNode] = React.useState();\n const stylesRef = React.useRef({} as any);\n const prevPresentRef = React.useRef(present);\n const prevAnimationNameRef = React.useRef('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n });\n\n React.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [state]);\n\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n\n if (present) {\n send('MOUNT');\n } else if (currentAnimationName === 'none' || styles?.display === 'none') {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n } else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName;\n\n if (wasPresent && isAnimating) {\n send('ANIMATION_OUT');\n } else {\n send('UNMOUNT');\n }\n }\n\n prevPresentRef.current = present;\n }\n }, [present, send]);\n\n useLayoutEffect(() => {\n if (node) {\n let timeoutId: number;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n // With React 18 concurrency this update is applied a frame after the\n // animation ends, creating a flash of visible content. By setting the\n // animation fill mode to \"forwards\", we force the node to keep the\n // styles of the last keyframe, removing the flash.\n //\n // Previously we flushed the update via ReactDom.flushSync, but with\n // exit animations this resulted in the node being removed from the\n // DOM before the synthetic animationEnd event was dispatched, meaning\n // user-provided event handlers would not be called.\n // https://github.com/radix-ui/primitives/pull/1849\n send('ANIMATION_END');\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = 'forwards';\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === 'forwards') {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener('animationstart', handleAnimationStart);\n node.addEventListener('animationcancel', handleAnimationEnd);\n node.addEventListener('animationend', handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener('animationstart', handleAnimationStart);\n node.removeEventListener('animationcancel', handleAnimationEnd);\n node.removeEventListener('animationend', handleAnimationEnd);\n };\n } else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }\n }, [node, send]);\n\n return {\n isPresent: ['mounted', 'unmountSuspended'].includes(state),\n ref: React.useCallback((node: HTMLElement) => {\n if (node) stylesRef.current = getComputedStyle(node);\n setNode(node);\n }, []),\n };\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getAnimationName(styles?: CSSStyleDeclaration) {\n return styles?.animationName || 'none';\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement<{ ref?: React.Ref }>) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref;\n}\n\nexport { Presence };\nexport type { PresenceProps };\n","import * as React from 'react';\n\ntype Machine = { [k: string]: { [k: string]: S } };\ntype MachineState = keyof T;\ntype MachineEvent = keyof UnionToIntersection;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine(\n initialState: MachineState,\n machine: M & Machine>\n) {\n return React.useReducer((state: MachineState, event: MachineEvent): MachineState => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n// We `toString()` to prevent bundlers from trying to `import { useId } from 'react';`\nconst useReactId = (React as any)['useId'.toString()] || (() => undefined);\nlet count = 0;\n\nfunction useId(deterministicId?: string): string {\n const [id, setId] = React.useState(useReactId());\n // React versions older than 18 will have client-side ids only.\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\nexport { useId };\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Slot } from '@radix-ui/react-slot';\n\ntype SlotProps = React.ComponentPropsWithoutRef;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like ``.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\n\nfunction createCollection(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionRef: React.RefObject;\n itemMap: Map<\n React.RefObject,\n { ref: React.RefObject } & ItemData\n >;\n };\n\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: new Map() }\n );\n\n const CollectionProvider: React.FC<{ children?: React.ReactNode; scope: any }> = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(new Map()).current;\n return (\n \n {children}\n \n );\n };\n\n CollectionProvider.displayName = PROVIDER_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return {children};\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...(itemData as unknown as ItemData) });\n return () => void context.itemMap.delete(ref);\n });\n\n return (\n \n {children}\n \n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current!) - orderedNodes.indexOf(b.ref.current!)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n\n return getItems;\n }\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useEscapeKeydown } from '@radix-ui/react-use-escape-keydown';\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/\n\nconst DISMISSABLE_LAYER_NAME = 'DismissableLayer';\nconst CONTEXT_UPDATE = 'dismissableLayer.update';\nconst POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\n\nlet originalBodyPointerEvents: string;\n\nconst DismissableLayerContext = React.createContext({\n layers: new Set(),\n layersWithOutsidePointerEventsDisabled: new Set(),\n branches: new Set(),\n});\n\ntype DismissableLayerElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface DismissableLayerProps extends PrimitiveDivProps {\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n disableOutsidePointerEvents?: boolean;\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;\n /**\n * Event handler called when the focus moves outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void;\n /**\n * Event handler called when an interaction happens outside the `DismissableLayer`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void;\n /**\n * Handler called when the `DismissableLayer` should be dismissed\n */\n onDismiss?: () => void;\n}\n\nconst DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node) => setNode(node));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1); // prettier-ignore\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled); // prettier-ignore\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target as HTMLElement;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n const focusOutside = useFocusOutside((event) => {\n const target = event.target as HTMLElement;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (\n disableOutsidePointerEvents &&\n context.layersWithOutsidePointerEventsDisabled.size === 1\n ) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n\n return (\n \n );\n }\n);\n\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/\n\nconst BRANCH_NAME = 'DismissableLayerBranch';\n\ntype DismissableLayerBranchElement = React.ElementRef;\ninterface DismissableLayerBranchProps extends PrimitiveDivProps {}\n\nconst DismissableLayerBranch = React.forwardRef<\n DismissableLayerBranchElement,\n DismissableLayerBranchProps\n>((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n\n return ;\n});\n\nDismissableLayerBranch.displayName = BRANCH_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;\ntype FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;\n\n/**\n * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */\nfunction usePointerDownOutside(\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside) as EventListener;\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {});\n\n React.useEffect(() => {\n const handlePointerDown = (event: PointerEvent) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n\n function handleAndDispatchPointerDownOutsideEvent() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n }\n\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */\n if (event.pointerType === 'touch') {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener('click', handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent();\n }\n } else {\n // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener('click', handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => (isPointerInsideReactTreeRef.current = true),\n };\n}\n\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\nfunction useFocusOutside(\n onFocusOutside?: (event: FocusOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const handleFocusOutside = useCallbackRef(onFocusOutside) as EventListener;\n const isFocusInsideReactTreeRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleFocus = (event: FocusEvent) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false,\n });\n }\n };\n ownerDocument.addEventListener('focusin', handleFocus);\n return () => ownerDocument.removeEventListener('focusin', handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n\n return {\n onFocusCapture: () => (isFocusInsideReactTreeRef.current = true),\n onBlurCapture: () => (isFocusInsideReactTreeRef.current = false),\n };\n}\n\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\n\nfunction handleAndDispatchCustomEvent(\n name: string,\n handler: ((event: E) => void) | undefined,\n detail: { originalEvent: OriginalEvent } & (E extends CustomEvent ? D : never),\n { discrete }: { discrete: boolean }\n) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler as EventListener, { once: true });\n\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\n\nconst Root = DismissableLayer;\nconst Branch = DismissableLayerBranch;\n\nexport {\n DismissableLayer,\n DismissableLayerBranch,\n //\n Root,\n Branch,\n};\nexport type { DismissableLayerProps };\n","import * as React from 'react';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\n/**\n * Listens for when the escape key is down\n */\nfunction useEscapeKeydown(\n onEscapeKeyDownProp?: (event: KeyboardEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener('keydown', handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener('keydown', handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\n\nexport { useEscapeKeydown };\n","import * as React from 'react';\n\nfunction usePrevious(value: T) {\n const ref = React.useRef({ value, previous: value });\n\n // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\nexport { usePrevious };\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * VisuallyHidden\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'VisuallyHidden';\n\ntype VisuallyHiddenElement = React.ElementRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\ninterface VisuallyHiddenProps extends PrimitiveSpanProps {}\n\nconst VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return (\n \n );\n }\n);\n\nVisuallyHidden.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = VisuallyHidden;\n\nexport {\n VisuallyHidden,\n //\n Root,\n};\nexport type { VisuallyHiddenProps };\n","/// \n\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { composeRefs, useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Orientation = 'vertical' | 'horizontal';\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAVIGATION_MENU_NAME = 'NavigationMenu';\n\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n NavigationMenuTriggerElement,\n { value: string }\n>(NAVIGATION_MENU_NAME);\n\nconst [FocusGroupCollection, useFocusGroupCollection, createFocusGroupCollectionScope] =\n createCollection(NAVIGATION_MENU_NAME);\n\ntype ScopedProps

= P & { __scopeNavigationMenu?: Scope };\nconst [createNavigationMenuContext, createNavigationMenuScope] = createContextScope(\n NAVIGATION_MENU_NAME,\n [createCollectionScope, createFocusGroupCollectionScope]\n);\n\ntype ContentData = {\n ref?: React.Ref;\n} & ViewportContentMounterProps;\n\ntype NavigationMenuContextValue = {\n isRootMenu: boolean;\n value: string;\n previousValue: string;\n baseId: string;\n dir: Direction;\n orientation: Orientation;\n rootNavigationMenu: NavigationMenuElement | null;\n indicatorTrack: HTMLDivElement | null;\n onIndicatorTrackChange(indicatorTrack: HTMLDivElement | null): void;\n viewport: NavigationMenuViewportElement | null;\n onViewportChange(viewport: NavigationMenuViewportElement | null): void;\n onViewportContentChange(contentValue: string, contentData: ContentData): void;\n onViewportContentRemove(contentValue: string): void;\n onTriggerEnter(itemValue: string): void;\n onTriggerLeave(): void;\n onContentEnter(): void;\n onContentLeave(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n};\n\nconst [NavigationMenuProviderImpl, useNavigationMenuContext] =\n createNavigationMenuContext(NAVIGATION_MENU_NAME);\n\nconst [ViewportContentProvider, useViewportContentContext] = createNavigationMenuContext<{\n items: Map;\n}>(NAVIGATION_MENU_NAME);\n\ntype NavigationMenuElement = React.ElementRef;\ntype PrimitiveNavProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuProps\n extends Omit,\n PrimitiveNavProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n dir?: Direction;\n orientation?: Orientation;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 200\n */\n delayDuration?: number;\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number;\n}\n\nconst NavigationMenu = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n delayDuration = 200,\n skipDelayDuration = 300,\n orientation = 'horizontal',\n dir,\n ...NavigationMenuProps\n } = props;\n const [navigationMenu, setNavigationMenu] = React.useState(null);\n const composedRef = useComposedRefs(forwardedRef, (node) => setNavigationMenu(node));\n const direction = useDirection(dir);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const skipDelayTimerRef = React.useRef(0);\n const [isOpenDelayed, setIsOpenDelayed] = React.useState(true);\n const [value = '', setValue] = useControllableState({\n prop: valueProp,\n onChange: (value) => {\n const isOpen = value !== '';\n const hasSkipDelayDuration = skipDelayDuration > 0;\n\n if (isOpen) {\n window.clearTimeout(skipDelayTimerRef.current);\n if (hasSkipDelayDuration) setIsOpenDelayed(false);\n } else {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => setIsOpenDelayed(true),\n skipDelayDuration\n );\n }\n\n onValueChange?.(value);\n },\n defaultProp: defaultValue,\n });\n\n const startCloseTimer = React.useCallback(() => {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = window.setTimeout(() => setValue(''), 150);\n }, [setValue]);\n\n const handleOpen = React.useCallback(\n (itemValue: string) => {\n window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n },\n [setValue]\n );\n\n const handleDelayedOpen = React.useCallback(\n (itemValue: string) => {\n const isOpenItem = value === itemValue;\n if (isOpenItem) {\n // If the item is already open (e.g. we're transitioning from the content to the trigger)\n // then we want to clear the close timer immediately.\n window.clearTimeout(closeTimerRef.current);\n } else {\n openTimerRef.current = window.setTimeout(() => {\n window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n }, delayDuration);\n }\n },\n [value, setValue, delayDuration]\n );\n\n React.useEffect(() => {\n return () => {\n window.clearTimeout(openTimerRef.current);\n window.clearTimeout(closeTimerRef.current);\n window.clearTimeout(skipDelayTimerRef.current);\n };\n }, []);\n\n return (\n {\n window.clearTimeout(openTimerRef.current);\n if (isOpenDelayed) handleDelayedOpen(itemValue);\n else handleOpen(itemValue);\n }}\n onTriggerLeave={() => {\n window.clearTimeout(openTimerRef.current);\n startCloseTimer();\n }}\n onContentEnter={() => window.clearTimeout(closeTimerRef.current)}\n onContentLeave={startCloseTimer}\n onItemSelect={(itemValue) => {\n setValue((prevValue) => (prevValue === itemValue ? '' : itemValue));\n }}\n onItemDismiss={() => setValue('')}\n >\n \n \n );\n }\n);\n\nNavigationMenu.displayName = NAVIGATION_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'NavigationMenuSub';\n\ntype NavigationMenuSubElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuSubProps\n extends Omit,\n PrimitiveDivProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n orientation?: Orientation;\n}\n\nconst NavigationMenuSub = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n ...subProps\n } = props;\n const context = useNavigationMenuContext(SUB_NAME, __scopeNavigationMenu);\n const [value = '', setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue,\n });\n\n return (\n setValue(itemValue)}\n onItemSelect={(itemValue) => setValue(itemValue)}\n onItemDismiss={() => setValue('')}\n >\n \n \n );\n }\n);\n\nNavigationMenuSub.displayName = SUB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface NavigationMenuProviderPrivateProps {\n isRootMenu: boolean;\n scope: Scope;\n children: React.ReactNode;\n orientation: Orientation;\n dir: Direction;\n rootNavigationMenu: NavigationMenuElement | null;\n value: string;\n onTriggerEnter(itemValue: string): void;\n onTriggerLeave?(): void;\n onContentEnter?(): void;\n onContentLeave?(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n}\n\ninterface NavigationMenuProviderProps extends NavigationMenuProviderPrivateProps {}\n\nconst NavigationMenuProvider: React.FC = (\n props: ScopedProps\n) => {\n const {\n scope,\n isRootMenu,\n rootNavigationMenu,\n dir,\n orientation,\n children,\n value,\n onItemSelect,\n onItemDismiss,\n onTriggerEnter,\n onTriggerLeave,\n onContentEnter,\n onContentLeave,\n } = props;\n const [viewport, setViewport] = React.useState(null);\n const [viewportContent, setViewportContent] = React.useState>(new Map());\n const [indicatorTrack, setIndicatorTrack] = React.useState(null);\n\n return (\n {\n setViewportContent((prevContent) => {\n prevContent.set(contentValue, contentData);\n return new Map(prevContent);\n });\n }, [])}\n onViewportContentRemove={React.useCallback((contentValue) => {\n setViewportContent((prevContent) => {\n if (!prevContent.has(contentValue)) return prevContent;\n prevContent.delete(contentValue);\n return new Map(prevContent);\n });\n }, [])}\n >\n \n \n {children}\n \n \n \n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuList\n * -----------------------------------------------------------------------------------------------*/\n\nconst LIST_NAME = 'NavigationMenuList';\n\ntype NavigationMenuListElement = React.ElementRef;\ntype PrimitiveUnorderedListProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuListProps extends PrimitiveUnorderedListProps {}\n\nconst NavigationMenuList = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, ...listProps } = props;\n const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);\n\n const list = (\n \n );\n\n return (\n \n \n {context.isRootMenu ? {list} : list}\n \n \n );\n }\n);\n\nNavigationMenuList.displayName = LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'NavigationMenuItem';\n\ntype FocusProxyElement = React.ElementRef;\n\ntype NavigationMenuItemContextValue = {\n value: string;\n triggerRef: React.RefObject;\n contentRef: React.RefObject;\n focusProxyRef: React.RefObject;\n wasEscapeCloseRef: React.MutableRefObject;\n onEntryKeyDown(): void;\n onFocusProxyEnter(side: 'start' | 'end'): void;\n onRootContentClose(): void;\n onContentFocusOutside(): void;\n};\n\nconst [NavigationMenuItemContextProvider, useNavigationMenuItemContext] =\n createNavigationMenuContext(ITEM_NAME);\n\ntype NavigationMenuItemElement = React.ElementRef;\ntype PrimitiveListItemProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuItemProps extends PrimitiveListItemProps {\n value?: string;\n}\n\nconst NavigationMenuItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;\n const autoValue = useId();\n // We need to provide an initial deterministic value as `useId` will return\n // empty string on the first render and we don't want to match our internal \"closed\" value.\n const value = valueProp || autoValue || 'LEGACY_REACT_AUTO_VALUE';\n const contentRef = React.useRef(null);\n const triggerRef = React.useRef(null);\n const focusProxyRef = React.useRef(null);\n const restoreContentTabOrderRef = React.useRef(() => {});\n const wasEscapeCloseRef = React.useRef(false);\n\n const handleContentEntry = React.useCallback((side = 'start') => {\n if (contentRef.current) {\n restoreContentTabOrderRef.current();\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) focusFirst(side === 'start' ? candidates : candidates.reverse());\n }\n }, []);\n\n const handleContentExit = React.useCallback(() => {\n if (contentRef.current) {\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) restoreContentTabOrderRef.current = removeFromTabOrder(candidates);\n }\n }, []);\n\n return (\n \n \n \n );\n }\n);\n\nNavigationMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'NavigationMenuTrigger';\n\ntype NavigationMenuTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst NavigationMenuTrigger = React.forwardRef<\n NavigationMenuTriggerElement,\n NavigationMenuTriggerProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, disabled, ...triggerProps } = props;\n const context = useNavigationMenuContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, itemContext.triggerRef, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, itemContext.value);\n const contentId = makeContentId(context.baseId, itemContext.value);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const wasClickCloseRef = React.useRef(false);\n const open = itemContext.value === context.value;\n\n return (\n <>\n \n \n {\n wasClickCloseRef.current = false;\n itemContext.wasEscapeCloseRef.current = false;\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse(() => {\n if (\n disabled ||\n wasClickCloseRef.current ||\n itemContext.wasEscapeCloseRef.current ||\n hasPointerMoveOpenedRef.current\n )\n return;\n context.onTriggerEnter(itemContext.value);\n hasPointerMoveOpenedRef.current = true;\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse(() => {\n if (disabled) return;\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n })\n )}\n onClick={composeEventHandlers(props.onClick, () => {\n context.onItemSelect(itemContext.value);\n wasClickCloseRef.current = open;\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const verticalEntryKey = context.dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n context.orientation\n ];\n if (open && event.key === entryKey) {\n itemContext.onEntryKeyDown();\n // Prevent FocusGroupItem from handling the event\n event.preventDefault();\n }\n })}\n />\n \n \n\n {/* Proxy tab order between trigger and content */}\n {open && (\n <>\n {\n const content = itemContext.contentRef.current;\n const prevFocusedElement = event.relatedTarget as HTMLElement | null;\n const wasTriggerFocused = prevFocusedElement === ref.current;\n const wasFocusFromContent = content?.contains(prevFocusedElement);\n\n if (wasTriggerFocused || !wasFocusFromContent) {\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end');\n }\n }}\n />\n\n {/* Restructure a11y tree to make content accessible to screen reader when using the viewport */}\n {context.viewport && }\n \n )}\n \n );\n});\n\nNavigationMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuLink\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_NAME = 'NavigationMenuLink';\nconst LINK_SELECT = 'navigationMenu.linkSelect';\n\ntype NavigationMenuLinkElement = React.ElementRef;\ntype PrimitiveLinkProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuLinkProps extends Omit {\n active?: boolean;\n onSelect?: (event: Event) => void;\n}\n\nconst NavigationMenuLink = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, active, onSelect, ...linkProps } = props;\n\n return (\n \n {\n const target = event.target as HTMLElement;\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true,\n });\n target.addEventListener(LINK_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(target, linkSelectEvent);\n\n if (!linkSelectEvent.defaultPrevented && !event.metaKey) {\n const rootContentDismissEvent = new CustomEvent(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n dispatchDiscreteCustomEvent(target, rootContentDismissEvent);\n }\n },\n { checkForDefaultPrevented: false }\n )}\n />\n \n );\n }\n);\n\nNavigationMenuLink.displayName = LINK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'NavigationMenuIndicator';\n\ntype NavigationMenuIndicatorElement = NavigationMenuIndicatorImplElement;\ninterface NavigationMenuIndicatorProps extends NavigationMenuIndicatorImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuIndicator = React.forwardRef<\n NavigationMenuIndicatorElement,\n NavigationMenuIndicatorProps\n>((props: ScopedProps, forwardedRef) => {\n const { forceMount, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, props.__scopeNavigationMenu);\n const isVisible = Boolean(context.value);\n\n return context.indicatorTrack\n ? ReactDOM.createPortal(\n \n \n ,\n context.indicatorTrack\n )\n : null;\n});\n\nNavigationMenuIndicator.displayName = INDICATOR_NAME;\n\ntype NavigationMenuIndicatorImplElement = React.ElementRef;\ninterface NavigationMenuIndicatorImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuIndicatorImpl = React.forwardRef<\n NavigationMenuIndicatorImplElement,\n NavigationMenuIndicatorImplProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, __scopeNavigationMenu);\n const getItems = useCollection(__scopeNavigationMenu);\n const [activeTrigger, setActiveTrigger] = React.useState(\n null\n );\n const [position, setPosition] = React.useState<{ size: number; offset: number } | null>(null);\n const isHorizontal = context.orientation === 'horizontal';\n const isVisible = Boolean(context.value);\n\n React.useEffect(() => {\n const items = getItems();\n const triggerNode = items.find((item) => item.value === context.value)?.ref.current;\n if (triggerNode) setActiveTrigger(triggerNode);\n }, [getItems, context.value]);\n\n /**\n * Update position when the indicator or parent track size changes\n */\n const handlePositionChange = () => {\n if (activeTrigger) {\n setPosition({\n size: isHorizontal ? activeTrigger.offsetWidth : activeTrigger.offsetHeight,\n offset: isHorizontal ? activeTrigger.offsetLeft : activeTrigger.offsetTop,\n });\n }\n };\n useResizeObserver(activeTrigger, handlePositionChange);\n useResizeObserver(context.indicatorTrack, handlePositionChange);\n\n // We need to wait for the indicator position to be available before rendering to\n // snap immediately into position rather than transitioning from initial\n return position ? (\n \n ) : null;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'NavigationMenuContent';\n\ntype NavigationMenuContentElement = NavigationMenuContentImplElement;\ninterface NavigationMenuContentProps\n extends Omit {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuContent = React.forwardRef<\n NavigationMenuContentElement,\n NavigationMenuContentProps\n>((props: ScopedProps, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const composedRefs = useComposedRefs(itemContext.contentRef, forwardedRef);\n const open = itemContext.value === context.value;\n\n const commonProps = {\n value: itemContext.value,\n triggerRef: itemContext.triggerRef,\n focusProxyRef: itemContext.focusProxyRef,\n wasEscapeCloseRef: itemContext.wasEscapeCloseRef,\n onContentFocusOutside: itemContext.onContentFocusOutside,\n onRootContentClose: itemContext.onRootContentClose,\n ...contentProps,\n };\n\n return !context.viewport ? (\n \n \n \n ) : (\n \n );\n});\n\nNavigationMenuContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ViewportContentMounterElement = NavigationMenuContentImplElement;\ninterface ViewportContentMounterProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ViewportContentMounter = React.forwardRef<\n ViewportContentMounterElement,\n ViewportContentMounterProps\n>((props: ScopedProps, forwardedRef) => {\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const { onViewportContentChange, onViewportContentRemove } = context;\n\n useLayoutEffect(() => {\n onViewportContentChange(props.value, {\n ref: forwardedRef,\n ...props,\n });\n }, [props, forwardedRef, onViewportContentChange]);\n\n useLayoutEffect(() => {\n return () => onViewportContentRemove(props.value);\n }, [props.value, onViewportContentRemove]);\n\n // Content is proxied into the viewport\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ROOT_CONTENT_DISMISS = 'navigationMenu.rootContentDismiss';\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end';\ntype NavigationMenuContentImplElement = React.ElementRef;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\n\ninterface NavigationMenuContentImplPrivateProps {\n value: string;\n triggerRef: React.RefObject;\n focusProxyRef: React.RefObject;\n wasEscapeCloseRef: React.MutableRefObject;\n onContentFocusOutside(): void;\n onRootContentClose(): void;\n}\ninterface NavigationMenuContentImplProps\n extends Omit,\n NavigationMenuContentImplPrivateProps {}\n\nconst NavigationMenuContentImpl = React.forwardRef<\n NavigationMenuContentImplElement,\n NavigationMenuContentImplProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n triggerRef,\n focusProxyRef,\n wasEscapeCloseRef,\n onRootContentClose,\n onContentFocusOutside,\n ...contentProps\n } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, __scopeNavigationMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const getItems = useCollection(__scopeNavigationMenu);\n const prevMotionAttributeRef = React.useRef(null);\n\n const { onItemDismiss } = context;\n\n React.useEffect(() => {\n const content = ref.current;\n\n // Bubble dismiss to the root content node and focus its trigger\n if (context.isRootMenu && content) {\n const handleClose = () => {\n onItemDismiss();\n onRootContentClose();\n if (content.contains(document.activeElement)) triggerRef.current?.focus();\n };\n content.addEventListener(ROOT_CONTENT_DISMISS, handleClose);\n return () => content.removeEventListener(ROOT_CONTENT_DISMISS, handleClose);\n }\n }, [context.isRootMenu, props.value, triggerRef, onItemDismiss, onRootContentClose]);\n\n const motionAttribute = React.useMemo(() => {\n const items = getItems();\n const values = items.map((item) => item.value);\n if (context.dir === 'rtl') values.reverse();\n const index = values.indexOf(context.value);\n const prevIndex = values.indexOf(context.previousValue);\n const isSelected = value === context.value;\n const wasSelected = prevIndex === values.indexOf(value);\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected) return prevMotionAttributeRef.current;\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1) return index > prevIndex ? 'from-end' : 'from-start';\n // If we're leaving this item for another\n if (wasSelected && index !== -1) return index > prevIndex ? 'to-start' : 'to-end';\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null;\n })();\n\n prevMotionAttributeRef.current = attribute;\n return attribute;\n }, [context.previousValue, context.value, context.dir, getItems, value]);\n\n return (\n \n {\n const rootContentDismissEvent = new Event(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n ref.current?.dispatchEvent(rootContentDismissEvent);\n }}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n onContentFocusOutside();\n const target = event.target as HTMLElement;\n // Only dismiss content when focus moves outside of the menu\n if (context.rootNavigationMenu?.contains(target)) event.preventDefault();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const target = event.target as HTMLElement;\n const isTrigger = getItems().some((item) => item.ref.current?.contains(target));\n const isRootViewport = context.isRootMenu && context.viewport?.contains(target);\n if (isTrigger || isRootViewport || !context.isRootMenu) event.preventDefault();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === 'Tab' && !isMetaKey;\n if (isTabKey) {\n const candidates = getTabbableCandidates(event.currentTarget);\n const focusedElement = document.activeElement;\n const index = candidates.findIndex((candidate) => candidate === focusedElement);\n const isMovingBackwards = event.shiftKey;\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length);\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n event.preventDefault();\n } else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n focusProxyRef.current?.focus();\n }\n }\n })}\n onEscapeKeyDown={composeEventHandlers(props.onEscapeKeyDown, (_event) => {\n // prevent the dropdown from reopening\n // after the escape key has been pressed\n wasEscapeCloseRef.current = true;\n })}\n />\n \n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'NavigationMenuViewport';\n\ntype NavigationMenuViewportElement = NavigationMenuViewportImplElement;\ninterface NavigationMenuViewportProps\n extends Omit {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuViewport = React.forwardRef<\n NavigationMenuViewportElement,\n NavigationMenuViewportProps\n>((props: ScopedProps, forwardedRef) => {\n const { forceMount, ...viewportProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, props.__scopeNavigationMenu);\n const open = Boolean(context.value);\n\n return (\n \n \n \n );\n});\n\nNavigationMenuViewport.displayName = VIEWPORT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype NavigationMenuViewportImplElement = React.ElementRef;\ninterface NavigationMenuViewportImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuViewportImpl = React.forwardRef<\n NavigationMenuViewportImplElement,\n NavigationMenuViewportImplProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, children, ...viewportImplProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, __scopeNavigationMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.onViewportChange);\n const viewportContentContext = useViewportContentContext(\n CONTENT_NAME,\n props.__scopeNavigationMenu\n );\n const [size, setSize] = React.useState<{ width: number; height: number } | null>(null);\n const [content, setContent] = React.useState(null);\n const viewportWidth = size ? size?.width + 'px' : undefined;\n const viewportHeight = size ? size?.height + 'px' : undefined;\n const open = Boolean(context.value);\n // We persist the last active content value as the viewport may be animating out\n // and we want the content to remain mounted for the lifecycle of the viewport.\n const activeContentValue = open ? context.value : context.previousValue;\n\n /**\n * Update viewport size to match the active content node.\n * We prefer offset dimensions over `getBoundingClientRect` as the latter respects CSS transform.\n * For example, if content animates in from `scale(0.5)` the dimensions would be anything\n * from `0.5` to `1` of the intended size.\n */\n const handleSizeChange = () => {\n if (content) setSize({ width: content.offsetWidth, height: content.offsetHeight });\n };\n useResizeObserver(content, handleSizeChange);\n\n return (\n \n {Array.from(viewportContentContext.items).map(([value, { ref, forceMount, ...props }]) => {\n const isActive = activeContentValue === value;\n return (\n \n {\n // We only want to update the stored node when another is available\n // as we need to smoothly transition between them.\n if (isActive && node) setContent(node);\n })}\n />\n \n );\n })}\n \n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_GROUP_NAME = 'FocusGroup';\n\ntype FocusGroupElement = React.ElementRef;\ninterface FocusGroupProps extends PrimitiveDivProps {}\n\nconst FocusGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const context = useNavigationMenuContext(FOCUS_GROUP_NAME, __scopeNavigationMenu);\n\n return (\n \n \n \n \n \n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_KEYS = ['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'];\nconst FOCUS_GROUP_ITEM_NAME = 'FocusGroupItem';\n\ntype FocusGroupItemElement = React.ElementRef;\ninterface FocusGroupItemProps extends PrimitiveButtonProps {}\n\nconst FocusGroupItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const getItems = useFocusGroupCollection(__scopeNavigationMenu);\n const context = useNavigationMenuContext(FOCUS_GROUP_ITEM_NAME, __scopeNavigationMenu);\n\n return (\n \n {\n const isFocusNavigationKey = ['Home', 'End', ...ARROW_KEYS].includes(event.key);\n if (isFocusNavigationKey) {\n let candidateNodes = getItems().map((item) => item.ref.current!);\n const prevItemKey = context.dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const prevKeys = [prevItemKey, 'ArrowUp', 'End'];\n if (prevKeys.includes(event.key)) candidateNodes.reverse();\n if (ARROW_KEYS.includes(event.key)) {\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n\n // Prevent page scroll while navigating\n event.preventDefault();\n }\n })}\n />\n \n );\n }\n);\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\n\nfunction removeFromTabOrder(candidates: HTMLElement[]) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute('tabindex') || '';\n candidate.setAttribute('tabindex', '-1');\n });\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex as string;\n candidate.setAttribute('tabindex', prevTabIndex);\n });\n };\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nfunction whenMouse(handler: React.PointerEventHandler): React.PointerEventHandler {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = NavigationMenu;\nconst Sub = NavigationMenuSub;\nconst List = NavigationMenuList;\nconst Item = NavigationMenuItem;\nconst Trigger = NavigationMenuTrigger;\nconst Link = NavigationMenuLink;\nconst Indicator = NavigationMenuIndicator;\nconst Content = NavigationMenuContent;\nconst Viewport = NavigationMenuViewport;\n\nexport {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n};\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n};\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;ttypeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import {\n AnyClassGroupIds,\n AnyConfig,\n AnyThemeGroupIds,\n ClassGroup,\n ClassValidator,\n Config,\n ThemeGetter,\n ThemeObject,\n} from './types'\n\nexport interface ClassPartObject {\n nextPart: Map\n validators: ClassValidatorObject[]\n classGroupId?: AnyClassGroupIds\n}\n\ninterface ClassValidatorObject {\n classGroupId: AnyClassGroupIds\n validator: ClassValidator\n}\n\nconst CLASS_PART_SEPARATOR = '-'\n\nexport const createClassGroupUtils = (config: AnyConfig) => {\n const classMap = createClassMap(config)\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config\n\n const getClassGroupId = (className: string) => {\n const classParts = className.split(CLASS_PART_SEPARATOR)\n\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift()\n }\n\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className)\n }\n\n const getConflictingClassGroupIds = (\n classGroupId: AnyClassGroupIds,\n hasPostfixModifier: boolean,\n ) => {\n const conflicts = conflictingClassGroups[classGroupId] || []\n\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]!]\n }\n\n return conflicts\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nconst getGroupRecursive = (\n classParts: string[],\n classPartObject: ClassPartObject,\n): AnyClassGroupIds | undefined => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[0]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n const classGroupFromNextClassPart = nextClassPartObject\n ? getGroupRecursive(classParts.slice(1), nextClassPartObject)\n : undefined\n\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart\n }\n\n if (classPartObject.validators.length === 0) {\n return undefined\n }\n\n const classRest = classParts.join(CLASS_PART_SEPARATOR)\n\n return classPartObject.validators.find(({ validator }) => validator(classRest))?.classGroupId\n}\n\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/\n\nconst getGroupIdForArbitraryProperty = (className: string) => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)![1]\n const property = arbitraryPropertyClassName?.substring(\n 0,\n arbitraryPropertyClassName.indexOf(':'),\n )\n\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property\n }\n }\n}\n\n/**\n * Exported for testing only\n */\nexport const createClassMap = (config: Config) => {\n const { theme, prefix } = config\n const classMap: ClassPartObject = {\n nextPart: new Map(),\n validators: [],\n }\n\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(\n Object.entries(config.classGroups),\n prefix,\n )\n\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme)\n })\n\n return classMap\n}\n\nconst processClassesRecursively = (\n classGroup: ClassGroup,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject,\n) => {\n classGroup.forEach((classDefinition) => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n return\n }\n\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(\n classDefinition(theme),\n classPartObject,\n classGroupId,\n theme,\n )\n return\n }\n\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId,\n })\n\n return\n }\n\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(\n classGroup,\n getPart(classPartObject, key),\n classGroupId,\n theme,\n )\n })\n })\n}\n\nconst getPart = (classPartObject: ClassPartObject, path: string) => {\n let currentClassPartObject = classPartObject\n\n path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: [],\n })\n }\n\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart)!\n })\n\n return currentClassPartObject\n}\n\nconst isThemeGetter = (func: ClassValidator | ThemeGetter): func is ThemeGetter =>\n (func as ThemeGetter).isThemeGetter\n\nconst getPrefixedClassGroupEntries = (\n classGroupEntries: Array<[classGroupId: string, classGroup: ClassGroup]>,\n prefix: string | undefined,\n): Array<[classGroupId: string, classGroup: ClassGroup]> => {\n if (!prefix) {\n return classGroupEntries\n }\n\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map((classDefinition) => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition\n }\n\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(\n Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]),\n )\n }\n\n return classDefinition\n })\n\n return [classGroupId, prefixedClassGroup]\n })\n}\n","// Export is needed because TypeScript complains about an error otherwise:\n// Error: …/tailwind-merge/src/config-utils.ts(8,17): semantic error TS4058: Return type of exported function has or is using name 'LruCache' from external module \"…/tailwind-merge/src/lru-cache\" but cannot be named.\nexport interface LruCache {\n get(key: Key): Value | undefined\n set(key: Key, value: Value): void\n}\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nexport const createLruCache = (maxCacheSize: number): LruCache => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {},\n }\n }\n\n let cacheSize = 0\n let cache = new Map()\n let previousCache = new Map()\n\n const update = (key: Key, value: Value) => {\n cache.set(key, value)\n cacheSize++\n\n if (cacheSize > maxCacheSize) {\n cacheSize = 0\n previousCache = cache\n cache = new Map()\n }\n }\n\n return {\n get(key) {\n let value = cache.get(key)\n\n if (value !== undefined) {\n return value\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value)\n return value\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value)\n } else {\n update(key, value)\n }\n },\n }\n}\n","import { AnyConfig } from './types'\n\nexport const IMPORTANT_MODIFIER = '!'\n\nexport const createParseClassName = (config: AnyConfig) => {\n const { separator, experimentalParseClassName } = config\n const isSeparatorSingleCharacter = separator.length === 1\n const firstSeparatorCharacter = separator[0]\n const separatorLength = separator.length\n\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = (className: string) => {\n const modifiers = []\n\n let bracketDepth = 0\n let modifierStart = 0\n let postfixModifierPosition: number | undefined\n\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index]\n\n if (bracketDepth === 0) {\n if (\n currentCharacter === firstSeparatorCharacter &&\n (isSeparatorSingleCharacter ||\n className.slice(index, index + separatorLength) === separator)\n ) {\n modifiers.push(className.slice(modifierStart, index))\n modifierStart = index + separatorLength\n continue\n }\n\n if (currentCharacter === '/') {\n postfixModifierPosition = index\n continue\n }\n }\n\n if (currentCharacter === '[') {\n bracketDepth++\n } else if (currentCharacter === ']') {\n bracketDepth--\n }\n }\n\n const baseClassNameWithImportantModifier =\n modifiers.length === 0 ? className : className.substring(modifierStart)\n const hasImportantModifier =\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)\n const baseClassName = hasImportantModifier\n ? baseClassNameWithImportantModifier.substring(1)\n : baseClassNameWithImportantModifier\n\n const maybePostfixModifierPosition =\n postfixModifierPosition && postfixModifierPosition > modifierStart\n ? postfixModifierPosition - modifierStart\n : undefined\n\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n }\n }\n\n if (experimentalParseClassName) {\n return (className: string) => experimentalParseClassName({ className, parseClassName })\n }\n\n return parseClassName\n}\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nexport const sortModifiers = (modifiers: string[]) => {\n if (modifiers.length <= 1) {\n return modifiers\n }\n\n const sortedModifiers: string[] = []\n let unsortedModifiers: string[] = []\n\n modifiers.forEach((modifier) => {\n const isArbitraryVariant = modifier[0] === '['\n\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier)\n unsortedModifiers = []\n } else {\n unsortedModifiers.push(modifier)\n }\n })\n\n sortedModifiers.push(...unsortedModifiers.sort())\n\n return sortedModifiers\n}\n","import { createClassGroupUtils } from './class-group-utils'\nimport { createLruCache } from './lru-cache'\nimport { createParseClassName } from './parse-class-name'\nimport { AnyConfig } from './types'\n\nexport type ConfigUtils = ReturnType\n\nexport const createConfigUtils = (config: AnyConfig) => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config),\n})\n","import { ConfigUtils } from './config-utils'\nimport { IMPORTANT_MODIFIER, sortModifiers } from './parse-class-name'\n\nconst SPLIT_CLASSES_REGEX = /\\s+/\n\nexport const mergeClassList = (classList: string, configUtils: ConfigUtils) => {\n const { parseClassName, getClassGroupId, getConflictingClassGroupIds } = configUtils\n\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict: string[] = []\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX)\n\n let result = ''\n\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index]!\n\n const { modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition } =\n parseClassName(originalClassName)\n\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition)\n let classGroupId = getClassGroupId(\n hasPostfixModifier\n ? baseClassName.substring(0, maybePostfixModifierPosition)\n : baseClassName,\n )\n\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n classGroupId = getClassGroupId(baseClassName)\n\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n hasPostfixModifier = false\n }\n\n const variantModifier = sortModifiers(modifiers).join(':')\n\n const modifierId = hasImportantModifier\n ? variantModifier + IMPORTANT_MODIFIER\n : variantModifier\n\n const classId = modifierId + classGroupId\n\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue\n }\n\n classGroupsInConflict.push(classId)\n\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier)\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i]!\n classGroupsInConflict.push(modifierId + group)\n }\n\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n }\n\n return result\n}\n","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\n\nexport type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false\ntype ClassNameArray = ClassNameValue[]\n\nexport function twJoin(...classLists: ClassNameValue[]): string\nexport function twJoin() {\n let index = 0\n let argument: ClassNameValue\n let resolvedValue: string\n let string = ''\n\n while (index < arguments.length) {\n if ((argument = arguments[index++])) {\n if ((resolvedValue = toValue(argument))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n return string\n}\n\nconst toValue = (mix: ClassNameArray | string) => {\n if (typeof mix === 'string') {\n return mix\n }\n\n let resolvedValue: string\n let string = ''\n\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((resolvedValue = toValue(mix[k] as ClassNameArray | string))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n\n return string\n}\n","import { createConfigUtils } from './config-utils'\nimport { mergeClassList } from './merge-classlist'\nimport { ClassNameValue, twJoin } from './tw-join'\nimport { AnyConfig } from './types'\n\ntype CreateConfigFirst = () => AnyConfig\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\ntype TailwindMerge = (...classLists: ClassNameValue[]) => string\ntype ConfigUtils = ReturnType\n\nexport function createTailwindMerge(\n createConfigFirst: CreateConfigFirst,\n ...createConfigRest: CreateConfigSubsequent[]\n): TailwindMerge {\n let configUtils: ConfigUtils\n let cacheGet: ConfigUtils['cache']['get']\n let cacheSet: ConfigUtils['cache']['set']\n let functionToCall = initTailwindMerge\n\n function initTailwindMerge(classList: string) {\n const config = createConfigRest.reduce(\n (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),\n createConfigFirst() as AnyConfig,\n )\n\n configUtils = createConfigUtils(config)\n cacheGet = configUtils.cache.get\n cacheSet = configUtils.cache.set\n functionToCall = tailwindMerge\n\n return tailwindMerge(classList)\n }\n\n function tailwindMerge(classList: string) {\n const cachedResult = cacheGet(classList)\n\n if (cachedResult) {\n return cachedResult\n }\n\n const result = mergeClassList(classList, configUtils)\n cacheSet(classList, result)\n\n return result\n }\n\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments as any))\n }\n}\n","import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'\n\nexport const fromTheme = <\n AdditionalThemeGroupIds extends string = never,\n DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,\n>(key: NoInfer): ThemeGetter => {\n const themeGetter = (theme: ThemeObject) =>\n theme[key] || []\n\n themeGetter.isThemeGetter = true as const\n\n return themeGetter\n}\n","const arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i\nconst fractionRegex = /^\\d+\\/\\d+$/\nconst stringLengths = new Set(['px', 'full', 'screen'])\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/\nconst lengthUnitRegex =\n /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/\nconst imageRegex =\n /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/\n\nexport const isLength = (value: string) =>\n isNumber(value) || stringLengths.has(value) || fractionRegex.test(value)\n\nexport const isArbitraryLength = (value: string) =>\n getIsArbitraryValue(value, 'length', isLengthOnly)\n\nexport const isNumber = (value: string) => Boolean(value) && !Number.isNaN(Number(value))\n\nexport const isArbitraryNumber = (value: string) => getIsArbitraryValue(value, 'number', isNumber)\n\nexport const isInteger = (value: string) => Boolean(value) && Number.isInteger(Number(value))\n\nexport const isPercent = (value: string) => value.endsWith('%') && isNumber(value.slice(0, -1))\n\nexport const isArbitraryValue = (value: string) => arbitraryValueRegex.test(value)\n\nexport const isTshirtSize = (value: string) => tshirtUnitRegex.test(value)\n\nconst sizeLabels = new Set(['length', 'size', 'percentage'])\n\nexport const isArbitrarySize = (value: string) => getIsArbitraryValue(value, sizeLabels, isNever)\n\nexport const isArbitraryPosition = (value: string) =>\n getIsArbitraryValue(value, 'position', isNever)\n\nconst imageLabels = new Set(['image', 'url'])\n\nexport const isArbitraryImage = (value: string) => getIsArbitraryValue(value, imageLabels, isImage)\n\nexport const isArbitraryShadow = (value: string) => getIsArbitraryValue(value, '', isShadow)\n\nexport const isAny = () => true\n\nconst getIsArbitraryValue = (\n value: string,\n label: string | Set,\n testValue: (value: string) => boolean,\n) => {\n const result = arbitraryValueRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1])\n }\n\n return testValue(result[2]!)\n }\n\n return false\n}\n\nconst isLengthOnly = (value: string) =>\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)\n\nconst isNever = () => false\n\nconst isShadow = (value: string) => shadowRegex.test(value)\n\nconst isImage = (value: string) => imageRegex.test(value)\n","import { fromTheme } from './from-theme'\nimport { Config, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\nimport {\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize,\n} from './validators'\n\nexport const getDefaultConfig = () => {\n const colors = fromTheme('colors')\n const spacing = fromTheme('spacing')\n const blur = fromTheme('blur')\n const brightness = fromTheme('brightness')\n const borderColor = fromTheme('borderColor')\n const borderRadius = fromTheme('borderRadius')\n const borderSpacing = fromTheme('borderSpacing')\n const borderWidth = fromTheme('borderWidth')\n const contrast = fromTheme('contrast')\n const grayscale = fromTheme('grayscale')\n const hueRotate = fromTheme('hueRotate')\n const invert = fromTheme('invert')\n const gap = fromTheme('gap')\n const gradientColorStops = fromTheme('gradientColorStops')\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions')\n const inset = fromTheme('inset')\n const margin = fromTheme('margin')\n const opacity = fromTheme('opacity')\n const padding = fromTheme('padding')\n const saturate = fromTheme('saturate')\n const scale = fromTheme('scale')\n const sepia = fromTheme('sepia')\n const skew = fromTheme('skew')\n const space = fromTheme('space')\n const translate = fromTheme('translate')\n\n const getOverscroll = () => ['auto', 'contain', 'none'] as const\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing] as const\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing] as const\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength] as const\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue] as const\n const getPositions = () =>\n [\n 'bottom',\n 'center',\n 'left',\n 'left-bottom',\n 'left-top',\n 'right',\n 'right-bottom',\n 'right-top',\n 'top',\n ] as const\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'] as const\n const getBlendModes = () =>\n [\n 'normal',\n 'multiply',\n 'screen',\n 'overlay',\n 'darken',\n 'lighten',\n 'color-dodge',\n 'color-burn',\n 'hard-light',\n 'soft-light',\n 'difference',\n 'exclusion',\n 'hue',\n 'saturation',\n 'color',\n 'luminosity',\n ] as const\n const getAlign = () =>\n ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'] as const\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue] as const\n const getBreaks = () =>\n ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'] as const\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue]\n\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary(),\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{ aspect: ['auto', 'square', 'video', isArbitraryValue] }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{ columns: [isTshirtSize] }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{ 'break-after': getBreaks() }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{ 'break-before': getBreaks() }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{ 'box-decoration': ['slice', 'clone'] }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{ box: ['border', 'content'] }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: [\n 'block',\n 'inline-block',\n 'inline',\n 'flex',\n 'inline-flex',\n 'table',\n 'inline-table',\n 'table-caption',\n 'table-cell',\n 'table-column',\n 'table-column-group',\n 'table-footer-group',\n 'table-header-group',\n 'table-row-group',\n 'table-row',\n 'flow-root',\n 'grid',\n 'inline-grid',\n 'contents',\n 'list-item',\n 'hidden',\n ],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{ float: ['right', 'left', 'none', 'start', 'end'] }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{ clear: ['left', 'right', 'both', 'none', 'start', 'end'] }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{ object: ['contain', 'cover', 'fill', 'none', 'scale-down'] }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{ object: [...getPositions(), isArbitraryValue] }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{ overflow: getOverflow() }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{ 'overflow-x': getOverflow() }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{ 'overflow-y': getOverflow() }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{ overscroll: getOverscroll() }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{ 'overscroll-x': getOverscroll() }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{ 'overscroll-y': getOverscroll() }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{ inset: [inset] }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{ 'inset-x': [inset] }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{ 'inset-y': [inset] }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{ start: [inset] }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{ end: [inset] }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{ top: [inset] }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{ right: [inset] }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{ bottom: [inset] }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{ left: [inset] }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{ z: ['auto', isInteger, isArbitraryValue] }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{ basis: getSpacingWithAutoAndArbitrary() }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{ flex: ['row', 'row-reverse', 'col', 'col-reverse'] }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{ flex: ['wrap', 'wrap-reverse', 'nowrap'] }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{ flex: ['1', 'auto', 'initial', 'none', isArbitraryValue] }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{ grow: getZeroAndEmpty() }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{ shrink: getZeroAndEmpty() }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{ order: ['first', 'last', 'none', isInteger, isArbitraryValue] }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{ 'grid-cols': [isAny] }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [\n {\n col: [\n 'auto',\n { span: ['full', isInteger, isArbitraryValue] },\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{ 'col-start': getNumberWithAutoAndArbitrary() }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{ 'col-end': getNumberWithAutoAndArbitrary() }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{ 'grid-rows': [isAny] }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [\n { row: ['auto', { span: [isInteger, isArbitraryValue] }, isArbitraryValue] },\n ],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{ 'row-start': getNumberWithAutoAndArbitrary() }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{ 'row-end': getNumberWithAutoAndArbitrary() }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{ 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue] }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{ 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue] }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{ gap: [gap] }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{ 'gap-x': [gap] }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{ 'gap-y': [gap] }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{ justify: ['normal', ...getAlign()] }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{ 'justify-items': ['start', 'end', 'center', 'stretch'] }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{ 'justify-self': ['auto', 'start', 'end', 'center', 'stretch'] }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{ content: ['normal', ...getAlign(), 'baseline'] }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{ items: ['start', 'end', 'center', 'baseline', 'stretch'] }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{ self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline'] }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{ 'place-content': [...getAlign(), 'baseline'] }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{ 'place-items': ['start', 'end', 'center', 'baseline', 'stretch'] }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{ 'place-self': ['auto', 'start', 'end', 'center', 'stretch'] }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{ p: [padding] }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{ px: [padding] }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{ py: [padding] }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{ ps: [padding] }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{ pe: [padding] }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{ pt: [padding] }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{ pr: [padding] }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{ pb: [padding] }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{ pl: [padding] }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{ m: [margin] }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{ mx: [margin] }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{ my: [margin] }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{ ms: [margin] }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{ me: [margin] }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{ mt: [margin] }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{ mr: [margin] }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{ mb: [margin] }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{ ml: [margin] }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{ 'space-x': [space] }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{ 'space-y': [space] }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [\n {\n w: [\n 'auto',\n 'min',\n 'max',\n 'fit',\n 'svw',\n 'lvw',\n 'dvw',\n isArbitraryValue,\n spacing,\n ],\n },\n ],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{ 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit'] }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [\n {\n 'max-w': [\n isArbitraryValue,\n spacing,\n 'none',\n 'full',\n 'min',\n 'max',\n 'fit',\n 'prose',\n { screen: [isTshirtSize] },\n isTshirtSize,\n ],\n },\n ],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [\n {\n h: [\n isArbitraryValue,\n spacing,\n 'auto',\n 'min',\n 'max',\n 'fit',\n 'svh',\n 'lvh',\n 'dvh',\n ],\n },\n ],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [\n { 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh'] },\n ],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [\n { 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh'] },\n ],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{ size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit'] }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{ text: ['base', isTshirtSize, isArbitraryLength] }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [\n {\n font: [\n 'thin',\n 'extralight',\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n 'extrabold',\n 'black',\n isArbitraryNumber,\n ],\n },\n ],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{ font: [isAny] }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [\n {\n tracking: [\n 'tighter',\n 'tight',\n 'normal',\n 'wide',\n 'wider',\n 'widest',\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{ 'line-clamp': ['none', isNumber, isArbitraryNumber] }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [\n {\n leading: [\n 'none',\n 'tight',\n 'snug',\n 'normal',\n 'relaxed',\n 'loose',\n isLength,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{ 'list-image': ['none', isArbitraryValue] }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{ list: ['none', 'disc', 'decimal', isArbitraryValue] }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{ list: ['inside', 'outside'] }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{ placeholder: [colors] }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{ 'placeholder-opacity': [opacity] }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{ text: ['left', 'center', 'right', 'justify', 'start', 'end'] }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{ text: [colors] }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{ 'text-opacity': [opacity] }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{ decoration: [...getLineStyles(), 'wavy'] }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [\n { decoration: ['auto', 'from-font', isLength, isArbitraryLength] },\n ],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{ 'underline-offset': ['auto', isLength, isArbitraryValue] }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{ decoration: [colors] }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{ text: ['wrap', 'nowrap', 'balance', 'pretty'] }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{ indent: getSpacingWithArbitrary() }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [\n {\n align: [\n 'baseline',\n 'top',\n 'middle',\n 'bottom',\n 'text-top',\n 'text-bottom',\n 'sub',\n 'super',\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [\n { whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] },\n ],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{ break: ['normal', 'words', 'all', 'keep'] }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{ hyphens: ['none', 'manual', 'auto'] }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{ content: ['none', isArbitraryValue] }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{ bg: ['fixed', 'local', 'scroll'] }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{ 'bg-clip': ['border', 'padding', 'content', 'text'] }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{ 'bg-opacity': [opacity] }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{ 'bg-origin': ['border', 'padding', 'content'] }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{ bg: [...getPositions(), isArbitraryPosition] }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{ bg: ['no-repeat', { repeat: ['', 'x', 'y', 'round', 'space'] }] }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{ bg: ['auto', 'cover', 'contain', isArbitrarySize] }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [\n {\n bg: [\n 'none',\n { 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] },\n isArbitraryImage,\n ],\n },\n ],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{ bg: [colors] }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{ from: [gradientColorStopPositions] }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{ via: [gradientColorStopPositions] }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{ to: [gradientColorStopPositions] }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{ from: [gradientColorStops] }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{ via: [gradientColorStops] }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{ to: [gradientColorStops] }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{ rounded: [borderRadius] }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{ 'rounded-s': [borderRadius] }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{ 'rounded-e': [borderRadius] }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{ 'rounded-t': [borderRadius] }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{ 'rounded-r': [borderRadius] }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{ 'rounded-b': [borderRadius] }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{ 'rounded-l': [borderRadius] }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{ 'rounded-ss': [borderRadius] }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{ 'rounded-se': [borderRadius] }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{ 'rounded-ee': [borderRadius] }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{ 'rounded-es': [borderRadius] }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{ 'rounded-tl': [borderRadius] }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{ 'rounded-tr': [borderRadius] }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{ 'rounded-br': [borderRadius] }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{ 'rounded-bl': [borderRadius] }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{ border: [borderWidth] }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{ 'border-x': [borderWidth] }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{ 'border-y': [borderWidth] }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{ 'border-s': [borderWidth] }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{ 'border-e': [borderWidth] }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{ 'border-t': [borderWidth] }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{ 'border-r': [borderWidth] }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{ 'border-b': [borderWidth] }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{ 'border-l': [borderWidth] }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{ 'border-opacity': [opacity] }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{ border: [...getLineStyles(), 'hidden'] }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{ 'divide-x': [borderWidth] }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{ 'divide-y': [borderWidth] }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{ 'divide-opacity': [opacity] }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{ divide: getLineStyles() }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{ border: [borderColor] }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{ 'border-x': [borderColor] }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{ 'border-y': [borderColor] }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{ 'border-s': [borderColor] }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{ 'border-e': [borderColor] }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{ 'border-t': [borderColor] }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{ 'border-r': [borderColor] }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{ 'border-b': [borderColor] }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{ 'border-l': [borderColor] }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{ divide: [borderColor] }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{ outline: ['', ...getLineStyles()] }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{ 'outline-offset': [isLength, isArbitraryValue] }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{ outline: [isLength, isArbitraryLength] }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{ outline: [colors] }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{ ring: getLengthWithEmptyAndArbitrary() }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{ ring: [colors] }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{ 'ring-opacity': [opacity] }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{ 'ring-offset': [isLength, isArbitraryLength] }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{ 'ring-offset': [colors] }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{ shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow] }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{ shadow: [isAny] }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{ opacity: [opacity] }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{ 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker'] }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{ 'bg-blend': getBlendModes() }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{ filter: ['', 'none'] }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{ blur: [blur] }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{ brightness: [brightness] }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{ contrast: [contrast] }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{ 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue] }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{ grayscale: [grayscale] }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{ 'hue-rotate': [hueRotate] }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{ invert: [invert] }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{ saturate: [saturate] }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{ sepia: [sepia] }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{ 'backdrop-filter': ['', 'none'] }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{ 'backdrop-blur': [blur] }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{ 'backdrop-brightness': [brightness] }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{ 'backdrop-contrast': [contrast] }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{ 'backdrop-grayscale': [grayscale] }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{ 'backdrop-hue-rotate': [hueRotate] }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{ 'backdrop-invert': [invert] }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{ 'backdrop-opacity': [opacity] }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{ 'backdrop-saturate': [saturate] }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{ 'backdrop-sepia': [sepia] }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{ border: ['collapse', 'separate'] }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{ 'border-spacing': [borderSpacing] }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{ 'border-spacing-x': [borderSpacing] }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{ 'border-spacing-y': [borderSpacing] }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{ table: ['auto', 'fixed'] }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{ caption: ['top', 'bottom'] }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [\n {\n transition: [\n 'none',\n 'all',\n '',\n 'colors',\n 'opacity',\n 'shadow',\n 'transform',\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{ duration: getNumberAndArbitrary() }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{ ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue] }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{ delay: getNumberAndArbitrary() }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{ animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue] }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{ transform: ['', 'gpu', 'none'] }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{ scale: [scale] }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{ 'scale-x': [scale] }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{ 'scale-y': [scale] }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{ rotate: [isInteger, isArbitraryValue] }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{ 'translate-x': [translate] }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{ 'translate-y': [translate] }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{ 'skew-x': [skew] }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{ 'skew-y': [skew] }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [\n {\n origin: [\n 'center',\n 'top',\n 'top-right',\n 'right',\n 'bottom-right',\n 'bottom',\n 'bottom-left',\n 'left',\n 'top-left',\n isArbitraryValue,\n ],\n },\n ],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{ accent: ['auto', colors] }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{ appearance: ['none', 'auto'] }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [\n {\n cursor: [\n 'auto',\n 'default',\n 'pointer',\n 'wait',\n 'text',\n 'move',\n 'help',\n 'not-allowed',\n 'none',\n 'context-menu',\n 'progress',\n 'cell',\n 'crosshair',\n 'vertical-text',\n 'alias',\n 'copy',\n 'no-drop',\n 'grab',\n 'grabbing',\n 'all-scroll',\n 'col-resize',\n 'row-resize',\n 'n-resize',\n 'e-resize',\n 's-resize',\n 'w-resize',\n 'ne-resize',\n 'nw-resize',\n 'se-resize',\n 'sw-resize',\n 'ew-resize',\n 'ns-resize',\n 'nesw-resize',\n 'nwse-resize',\n 'zoom-in',\n 'zoom-out',\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{ caret: [colors] }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{ 'pointer-events': ['none', 'auto'] }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{ resize: ['none', 'y', 'x', ''] }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{ scroll: ['auto', 'smooth'] }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{ 'scroll-m': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{ 'scroll-mx': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{ 'scroll-my': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{ 'scroll-ms': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{ 'scroll-me': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{ 'scroll-mt': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{ 'scroll-mr': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{ 'scroll-mb': getSpacingWithArbitrary() }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{ 'scroll-ml': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{ 'scroll-p': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{ 'scroll-px': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{ 'scroll-py': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{ 'scroll-ps': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{ 'scroll-pe': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{ 'scroll-pt': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{ 'scroll-pr': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{ 'scroll-pb': getSpacingWithArbitrary() }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{ 'scroll-pl': getSpacingWithArbitrary() }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{ snap: ['start', 'end', 'center', 'align-none'] }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{ snap: ['normal', 'always'] }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{ snap: ['none', 'x', 'y', 'both'] }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{ snap: ['mandatory', 'proximity'] }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [\n {\n touch: ['auto', 'none', 'manipulation'],\n },\n ],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [\n {\n 'touch-pan': ['x', 'left', 'right'],\n },\n ],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [\n {\n 'touch-pan': ['y', 'up', 'down'],\n },\n ],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{ select: ['none', 'text', 'all', 'auto'] }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [\n { 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue] },\n ],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{ fill: [colors, 'none'] }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{ stroke: [isLength, isArbitraryLength, isArbitraryNumber] }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{ stroke: [colors, 'none'] }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{ 'forced-color-adjust': ['auto', 'none'] }],\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': [\n 'fvn-ordinal',\n 'fvn-slashed-zero',\n 'fvn-figure',\n 'fvn-spacing',\n 'fvn-fraction',\n ],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: [\n 'rounded-s',\n 'rounded-e',\n 'rounded-t',\n 'rounded-r',\n 'rounded-b',\n 'rounded-l',\n 'rounded-ss',\n 'rounded-se',\n 'rounded-ee',\n 'rounded-es',\n 'rounded-tl',\n 'rounded-tr',\n 'rounded-br',\n 'rounded-bl',\n ],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': [\n 'border-w-s',\n 'border-w-e',\n 'border-w-t',\n 'border-w-r',\n 'border-w-b',\n 'border-w-l',\n ],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': [\n 'border-color-s',\n 'border-color-e',\n 'border-color-t',\n 'border-color-r',\n 'border-color-b',\n 'border-color-l',\n ],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': [\n 'scroll-mx',\n 'scroll-my',\n 'scroll-ms',\n 'scroll-me',\n 'scroll-mt',\n 'scroll-mr',\n 'scroll-mb',\n 'scroll-ml',\n ],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': [\n 'scroll-px',\n 'scroll-py',\n 'scroll-ps',\n 'scroll-pe',\n 'scroll-pt',\n 'scroll-pr',\n 'scroll-pb',\n 'scroll-pl',\n ],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch'],\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading'],\n },\n } as const satisfies Config\n}\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\n\nexport const twMerge = createTailwindMerge(getDefaultConfig)\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","const ROUTES = {\r\n HOME: \"/\",\r\n LOGIN: \"/login\",\r\n ORDER: \"/order\",\r\n CHECK_OUT: \"/check-out\",\r\n ORDER_LIST: \"/order-list\",\r\n SEARCH_API: \"/search-api\",\r\n CONTACT_US: \"/contact-us\",\r\n BOOK_DETAILS: \"/book-details\",\r\n};\r\nexport default ROUTES;\r\n","export const S_TEXT = {\r\n BY: \"By\",\r\n QTY: \"Qty\",\r\n USD: \"USD\",\r\n SKU: \"SKU\",\r\n LOADING: \"Loading\",\r\n ISBN_13: \"ISBN-13\",\r\n SUPPORT_EMAIL: \"support@spondees.com\",\r\n};\r\n\r\nexport const TEXT = {\r\n QA: \"QA\",\r\n BY: \"BY\",\r\n NOW: \"NOW\",\r\n ADD: \"ADD\",\r\n AND: \"AND\",\r\n API: \"API\",\r\n SKU: \"SKU\",\r\n NAME: \"NAME\",\r\n LIST: \"LIST\",\r\n ITEM: \"ITEM\",\r\n EDIT: \"EDIT\",\r\n YOUR: \"YOUR\",\r\n CITY: \"CITY\",\r\n SAVE: \"SAVE\",\r\n BACK: \"BACK\",\r\n HOME: \"HOME\",\r\n COPI: \"COPI\",\r\n DAYS: \"DAYS\",\r\n LOGIN: \"LOGIN\",\r\n TOTAL: \"TOTAL\",\r\n PAGES: \"PAGES\",\r\n ITEMS: \"ITEMS\",\r\n PRICE: \"PRICE\",\r\n ENTER: \"ENTER\",\r\n STATE: \"STATE\",\r\n TAXES: \"TAXES\",\r\n ORDER: \"ORDER\",\r\n COPIS: \"COPIS\",\r\n TRY_US: \"TRY_US\",\r\n SUBMIT: \"SUBMIT\",\r\n SEARCH: \"SEARCH\",\r\n WEIGHT: \"WEIGHT\",\r\n CHANGE: \"CHANGE\",\r\n STATUS: \"STATUS\",\r\n SELECT: \"SELECT\",\r\n CANCEL: \"CANCEL\",\r\n ORDERS: \"ORDERS\",\r\n AMOUNT: \"AMOUNT\",\r\n LOGOUT: \"LOGOUT\",\r\n NUMBER: \"NUMBER\",\r\n ISBN_10: \"ISBN_10\",\r\n ISBN_13: \"ISBN_13\",\r\n JOIN_US: \"JOIN_US\",\r\n REQUEST: \"REQUEST\",\r\n BINDING: \"BINDING\",\r\n COUNTRY: \"COUNTRY\",\r\n DETAILS: \"DETAILS\",\r\n CONTACT: \"CONTACT\",\r\n SHIPS_IN: \"SHIPS_IN\",\r\n ABOUT_US: \"ABOUT_US\",\r\n ANSWER_1: \"ANSWER_1\",\r\n ANSWER_2: \"ANSWER_2\",\r\n ANSWER_3: \"ANSWER_3\",\r\n ANSWER_4: \"ANSWER_4\",\r\n ANSWER_5: \"ANSWER_5\",\r\n ANSWER_6: \"ANSWER_6\",\r\n ANSWER_7: \"ANSWER_7\",\r\n ANSWER_8: \"ANSWER_8\",\r\n ANSWER_9: \"ANSWER_9\",\r\n USERNAME: \"USERNAME\",\r\n PASSWORD: \"PASSWORD\",\r\n CONTINUE: \"CONTINUE\",\r\n BUSINESS: \"BUSINESS\",\r\n LANGUAGE: \"LANGUAGE\",\r\n CHECKOUT: \"CHECKOUT\",\r\n SHOP_NOW: \"SHOP_NOW\",\r\n VIEW_ALL: \"VIEW_ALL\",\r\n PIN_CODE: \"PIN_CODE\",\r\n OPTIONAL: \"OPTIONAL\",\r\n FEATURES: \"FEATURES\",\r\n AVAILABLE: \"AVAILABLE\",\r\n PUBLISHER: \"PUBLISHER\",\r\n ORDER_API: \"ORDER_API\",\r\n NO_HASSLE: \"NO_HASSLE\",\r\n PRACTICES: \"PRACTICES\",\r\n ANSWER_10: \"ANSWER_10\",\r\n FOR_ORDER: \"FOR_ORDER\",\r\n SHOW_LESS: \"SHOW_LESS\",\r\n ADDRESSES: \"ADDRESSES\",\r\n RECIPIENT: \"RECIPIENT\",\r\n PLACED_ON: \"PLACED_ON\",\r\n COPYRIGHT: \"COPYRIGHT\",\r\n SEARCH_API: \"SEARCH_API\",\r\n WE_DELIVER: \"WE_DELIVER\",\r\n CONTACT_US: \"CONTACT_US\",\r\n QUESTION_1: \"QUESTION_1\",\r\n QUESTION_2: \"QUESTION_2\",\r\n QUESTION_3: \"QUESTION_3\",\r\n QUESTION_4: \"QUESTION_4\",\r\n QUESTION_5: \"QUESTION_5\",\r\n QUESTION_6: \"QUESTION_6\",\r\n QUESTION_7: \"QUESTION_7\",\r\n QUESTION_8: \"QUESTION_8\",\r\n QUESTION_9: \"QUESTION_9\",\r\n CART_EMPTY: \"CART_EMPTY\",\r\n GET_STARTED: \"GET_STARTED\",\r\n NO_METADATA: \"NO_METADATA\",\r\n QUESTION_10: \"QUESTION_10\",\r\n ADD_TO_CART: \"ADD_TO_CART\",\r\n DELIVERY_BY: \"DELIVERY_BY\",\r\n PLACE_ORDER: \"PLACE_ORDER\",\r\n SINGLE_PRICE: \"SINGLE_PRICE\",\r\n HOW_IT_WORKS: \"HOW_IT_WORKS\",\r\n SUBMIT_LABEL: \"SUBMIT_LABEL\",\r\n GET_IN_TOUCH: \"GET_IN_TOUCH\",\r\n PHONE_NUMBER: \"PHONE_NUMBER\",\r\n BOOK_DETAILS: \"BOOK_DETAILS\",\r\n CREATE_ORDER: \"CREATE_ORDER\",\r\n CART_WAITING: \"CART_WAITING\",\r\n DELIVER_HERE: \"DELIVER_HERE\",\r\n ADDRESS_LINE: \"ADDRESS_LINE\",\r\n BOOKS_SHIPPED: \"BOOKS_SHIPPED\",\r\n GET_MORE_DONE: \"GET_MORE_DONE\",\r\n ANY_QUESTIONS: \"ANY_QUESTIONS\",\r\n EMAIL_ADDRESS: \"EMAIL_ADDRESS\",\r\n TOTAL_RECORDS: \"TOTAL_RECORDS\",\r\n ORDER_SUMMARY: \"ORDER_SUMMARY\",\r\n TOTAL_PAYABLE: \"TOTAL_PAYABLE\",\r\n CATALOG_UPDATE: \"CATALOG_UPDATE\",\r\n TRY_US_DETAILS: \"TRY_US_DETAILS\",\r\n FILL_OUT_FIELD: \"FILL_OUT_FIELD\",\r\n BOOK_NOT_FOUND: \"BOOK_NOT_FOUND\",\r\n LARGE_SELECTION: \"LARGE_SELECTION\",\r\n CATALOG_DETAILS: \"CATALOG_DETAILS\",\r\n SAVE_TIME_COSTS: \"SAVE_TIME_COSTS\",\r\n ENTER_REAL_NAME: \"ENTER_REAL_NAME\",\r\n AVAILABLE_BOOKS: \"AVAILABLE_BOOKS\",\r\n SIGN_IN_MESSAGE: \"SIGN_IN_MESSAGE\",\r\n ADD_NEW_ADDRESS: \"ADD_NEW_ADDRESS\",\r\n ATTACH_DOCUMENT: \"ATTACH_DOCUMENT\",\r\n NO_ORDERS_FOUND: \"NO_ORDERS_FOUND\",\r\n CONNECT_WITH_US: \"CONNECT_WITH_US\",\r\n OPERATION_GLOBAL: \"OPERATION_GLOBAL\",\r\n PREPACKED_ORDERS: \"PREPACKED_ORDERS\",\r\n MARKET_EXPANSION: \"MARKET_EXPANSION\",\r\n DISCUSS_SPONDEES: \"DISCUSS_SPONDEES\",\r\n GET_JSON_RESULTS: \"GET_JSON_RESULTS\",\r\n COPIES_AVAILABLE: \"COPIES_AVAILABLE\",\r\n PUBLICATION_DATE: \"PUBLICATION_DATE\",\r\n VIEW_PAST_ORDERS: \"VIEW_PAST_ORDERS\",\r\n DELIVERY_ADDRESS: \"DELIVERY_ADDRESS\",\r\n REFERENCE_NUMBER: \"REFERENCE_NUMBER\",\r\n DELIVERY_CHARGES: \"DELIVERY_CHARGES\",\r\n SYSTEM_THAT_WORKS: \"SYSTEM_THAT_WORKS\",\r\n CONNECT_ECOMMERCE: \"CONNECT_ECOMMERCE\",\r\n BOOKSELLING_SETUP: \"BOOKSELLING_SETUP\",\r\n PRACTICES_DETAILS: \"PRACTICES_DETAILS\",\r\n QUESTIONS_ANSWERS: \"QUESTIONS_ANSWERS\",\r\n COUNTRY_OF_ORIGIN: \"COUNTRY_OF_ORIGIN\",\r\n WE_DELIVER_DETAILS: \"WE_DELIVER_DETAILS\",\r\n ORGANIZED_SOURCING: \"ORGANIZED_SOURCING\",\r\n SUPPLY_CHAIN_REACH: \"SUPPLY_CHAIN_REACH\",\r\n ENTER_PHONE_NUMBER: \"ENTER_PHONE_NUMBER\",\r\n SOURCE_BOOKS_GLOBAL: \"SOURCE_BOOKS_GLOBAL\",\r\n CUSTOMER_EXPERIENCE: \"CUSTOMER_EXPERIENCE\",\r\n INVITE_ONLY_SERVICE: \"INVITE_ONLY_SERVICE\",\r\n INITIATE_SEARCH_API: \"INITIATE_SEARCH_API\",\r\n NO_METADATA_DETAILS: \"NO_METADATA_DETAILS\",\r\n RETURN_TO_BOOK_LIST: \"RETURN_TO_BOOK_LIST\",\r\n SINGLE_PRICE_DETAILS: \"SINGLE_PRICE_DETAILS\",\r\n SEARCH_AND_ORDER_API: \"SEARCH_AND_ORDER_API\",\r\n AUSTRIA_HOME_COUNTRY: \"AUSTRIA_HOME_COUNTRY\",\r\n INTERESTED_LETS_TALK: \"INTERESTED_LETS_TALK\",\r\n CHECK_EMAIL_ACCURACY: \"CHECK_EMAIL_ACCURACY\",\r\n PLACE_OF_PUBLICATION: \"PLACE_OF_PUBLICATION\",\r\n NO_ORDER_INFORMATION: \"NO_ORDER_INFORMATION\",\r\n SOURCE_FOREIGN_BOOKS: \"SOURCE_FOREIGN_BOOKS\",\r\n ORDER_PLACED_SUCCESS: \"ORDER_PLACED_SUCCESS\",\r\n SHORTER_DELIVERY_TIME: \"SHORTER_DELIVERY_TIME\",\r\n ENDLESS_POSSIBILITIES: \"ENDLESS_POSSIBILITIES\",\r\n BOOKS_PACKED_DELIVERY: \"BOOKS_PACKED_DELIVERY\",\r\n CONTINUE_WITH_BOOK_SKU: \"CONTINUE_WITH_BOOK_SKU\",\r\n BOOK_NOT_FOUND_MESSAGE: \"BOOK_NOT_FOUND_MESSAGE\",\r\n NO_ORDER_FOUND_MESSAGE: \"NO_ORDER_FOUND_MESSAGE\",\r\n SAVE_TIME_COSTS_DETAILS: \"SAVE_TIME_COSTS_DETAILS\",\r\n FAMILY_BUSINESS_HISTORY: \"FAMILY_BUSINESS_HISTORY\",\r\n ENTER_USERNAME_PASSWORD: \"ENTER_USERNAME_PASSWORD\",\r\n FOREIGN_BOOKS_TO_AUSTRIA: \"FOREIGN_BOOKS_TO_AUSTRIA\",\r\n FOREIGN_BOOKS_DEFINITION: \"FOREIGN_BOOKS_DEFINITION\",\r\n CHECK_QUESTIONS_ANSWERED: \"CHECK_QUESTIONS_ANSWERED\",\r\n EXPLAIN_QUESTION_DETAILS: \"EXPLAIN_QUESTION_DETAILS\",\r\n CONTINUE_TO_CONFIRM_ORDER: \"CONTINUE_TO_CONFIRM_ORDER\",\r\n SUPPLY_CHAIN_REACH_DETAILS: \"SUPPLY_CHAIN_REACH_DETAILS\",\r\n GLOBAL_E_COMMERCE_EXPANSION: \"GLOBAL_E_COMMERCE_EXPANSION\",\r\n CUSTOMER_EXPERIENCE_DETAILS: \"CUSTOMER_EXPERIENCE_DETAILS\",\r\n OUR_ECOMMERCE_STORE_NAME_IS: \"OUR_ECOMMERCE_STORE_NAME_IS\",\r\n GLOBAL_BOOK_SOURCING_SERVICE: \"GLOBAL_BOOK_SOURCING_SERVICE\",\r\n SEARCH_AND_ORDER_API_DETAILS: \"SEARCH_AND_ORDER_API_DETAILS\",\r\n INTERNATIONAL_PRIORITY_DELIVERY: \"INTERNATIONAL_PRIORITY_DELIVERY\",\r\n};\r\n","import { clsx } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\nimport { addDays, format } from \"date-fns\";\r\nimport ROUTES from \"../services/AppConstant\";\r\nimport { TEXT } from \"../constant/textConstants\";\r\n\r\nexport function cn(...inputs) {\r\n return twMerge(clsx(inputs));\r\n}\r\n\r\nexport const getFromAsync = (key) => JSON.parse(localStorage.getItem(key));\r\nexport const removeFromAsync = async (key) => localStorage.removeItem(key);\r\nexport const setInAsyncStorage = (key, value) =>\r\n localStorage.setItem(key, JSON.stringify(value));\r\n\r\nexport const calculateDateRange = (availabilityDays = 0) => {\r\n const baseDate = new Date();\r\n const daysToAdd = Number(availabilityDays) || 0;\r\n\r\n const earliestDate = addDays(baseDate, daysToAdd + 5);\r\n const latestDate = addDays(baseDate, daysToAdd + 7);\r\n\r\n const formattedEarliestDate = format(earliestDate, \"EEE MMM d\");\r\n const formattedLatestDate = format(latestDate, \"EEE MMM d\");\r\n\r\n return { formattedEarliestDate, formattedLatestDate };\r\n};\r\n\r\nexport const SESSION_KEY = {\r\n USER_DATA: \"USER_INFO\",\r\n};\r\n\r\nexport const FEATURES_ARRAY = [\r\n {\r\n title: TEXT?.CATALOG_UPDATE,\r\n description: TEXT?.CATALOG_DETAILS,\r\n icon: \"/icons/home/Shape4.svg\",\r\n },\r\n {\r\n title: TEXT?.CUSTOMER_EXPERIENCE,\r\n description: TEXT?.CUSTOMER_EXPERIENCE_DETAILS,\r\n icon: \"/icons/home/Shape.svg\",\r\n },\r\n {\r\n title: TEXT?.SINGLE_PRICE,\r\n description: TEXT?.SINGLE_PRICE_DETAILS,\r\n icon: \"/icons/home/Shape2.svg\",\r\n },\r\n {\r\n title: TEXT?.WE_DELIVER,\r\n description: TEXT?.WE_DELIVER_DETAILS,\r\n icon: \"/icons/home/Shape3.svg\",\r\n },\r\n {\r\n title: TEXT?.SAVE_TIME_COSTS,\r\n description: TEXT?.SAVE_TIME_COSTS_DETAILS,\r\n icon: \"/icons/home/Shape.svg\",\r\n },\r\n {\r\n title: TEXT?.SEARCH_AND_ORDER_API,\r\n description: TEXT?.SEARCH_AND_ORDER_API_DETAILS,\r\n icon: \"/icons/home/Shape4.svg\",\r\n },\r\n];\r\n\r\nexport const QUESTION_ARRY = [\r\n {\r\n count: 1,\r\n question: TEXT?.QUESTION_1,\r\n answer: TEXT?.ANSWER_1,\r\n },\r\n {\r\n count: 2,\r\n question: TEXT?.QUESTION_2,\r\n answer: TEXT?.ANSWER_2,\r\n },\r\n {\r\n count: 3,\r\n question: TEXT?.QUESTION_3,\r\n answer: TEXT?.ANSWER_3,\r\n },\r\n {\r\n count: 4,\r\n question: TEXT?.QUESTION_4,\r\n answer: TEXT?.ANSWER_4,\r\n },\r\n\r\n {\r\n count: 5,\r\n question: TEXT?.QUESTION_5,\r\n answer: TEXT?.ANSWER_5,\r\n },\r\n\r\n {\r\n count: 6,\r\n question: TEXT?.QUESTION_6,\r\n answer: TEXT?.ANSWER_6,\r\n },\r\n {\r\n count: 7,\r\n question: TEXT?.QUESTION_7,\r\n answer: TEXT?.ANSWER_7,\r\n },\r\n {\r\n count: 8,\r\n question: TEXT?.QUESTION_8,\r\n answer: TEXT?.ANSWER_8,\r\n },\r\n {\r\n count: 9,\r\n question: TEXT?.QUESTION_9,\r\n answer: TEXT?.ANSWER_9,\r\n },\r\n {\r\n count: 10,\r\n question: TEXT?.QUESTION_10,\r\n answer: TEXT?.ANSWER_10,\r\n },\r\n];\r\n\r\nexport const ABOUTUS_ARRAY = [\r\n {\r\n icon: \"/icons/home/Shape4.svg\",\r\n title: TEXT?.SUPPLY_CHAIN_REACH,\r\n description: TEXT?.SUPPLY_CHAIN_REACH_DETAILS,\r\n },\r\n {\r\n icon: \"/icons/home/Shape.svg\",\r\n title: TEXT?.PRACTICES,\r\n description: TEXT?.PRACTICES_DETAILS,\r\n },\r\n {\r\n icon: \"/icons/home/Shape2.svg\",\r\n title: TEXT?.TRY_US,\r\n description: TEXT?.TRY_US_DETAILS,\r\n },\r\n {\r\n icon: \"/icons/home/Shape3.svg\",\r\n title: TEXT?.NO_METADATA,\r\n description: TEXT?.NO_METADATA_DETAILS,\r\n },\r\n];\r\n\r\nexport const navigationMenu = [\r\n {\r\n label: TEXT?.HOME,\r\n href: ROUTES?.HOME,\r\n className: \"font-semibold text-dark-gray-1\",\r\n },\r\n {\r\n label: TEXT?.FEATURES,\r\n href: \"/#features\",\r\n className: \"hover:bg-transparent hover:underline\",\r\n activeClassName: \"bg-custom-gradient bg-clip-text !text-transparent\",\r\n },\r\n {\r\n label: TEXT?.ABOUT_US,\r\n href: \"/#about\",\r\n className: \"hover:bg-transparent hover:underline\",\r\n },\r\n {\r\n label: TEXT?.QA,\r\n href: \"/#question-and-answer\",\r\n className: \"hover:bg-transparent hover:underline\",\r\n },\r\n {\r\n label: TEXT?.API,\r\n href: ROUTES.SEARCH_API,\r\n className: \"hover:bg-transparent hover:underline\",\r\n },\r\n {\r\n label: TEXT?.ORDER,\r\n href: ROUTES.ORDER,\r\n className: \"hover:bg-transparent hover:underline\",\r\n },\r\n {\r\n label: TEXT?.CONTACT_US,\r\n href: ROUTES?.CONTACT_US,\r\n className: \"hover:bg-transparent hover:underline\",\r\n },\r\n];\r\n\r\nexport const languages = [\r\n { name: \"En\", code: \"en\", flag: \"images/flags/us.png\" },\r\n { name: \"De\", code: \"de\", flag: \"images/flags/de.png\" },\r\n];\r\n","import * as React from \"react\";\r\nimport { ChevronDownIcon } from \"@radix-ui/react-icons\";\r\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\r\nimport { cva } from \"class-variance-authority\";\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst NavigationMenu = React.forwardRef(\r\n ({ className, children, ...props }, ref) => (\r\n \r\n {children}\r\n \r\n \r\n ),\r\n);\r\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;\r\n\r\nconst NavigationMenuList = React.forwardRef(({ className, ...props }, ref) => (\r\n \r\n));\r\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;\r\n\r\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\r\n\r\nconst navigationMenuTriggerStyle = cva(\r\n \"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50\",\r\n);\r\n\r\nconst NavigationMenuTrigger = React.forwardRef(\r\n ({ className, children, ...props }, ref) => (\r\n \r\n {children}{\" \"}\r\n \r\n \r\n ),\r\n);\r\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\r\n\r\nconst NavigationMenuContent = React.forwardRef(\r\n ({ className, ...props }, ref) => (\r\n \r\n ),\r\n);\r\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;\r\n\r\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\r\n\r\nconst NavigationMenuViewport = React.forwardRef(\r\n ({ className, ...props }, ref) => (\r\n

\r\n \r\n
\r\n ),\r\n);\r\nNavigationMenuViewport.displayName =\r\n NavigationMenuPrimitive.Viewport.displayName;\r\n\r\nconst NavigationMenuIndicator = React.forwardRef(\r\n ({ className, ...props }, ref) => (\r\n \r\n
\r\n \r\n ),\r\n);\r\nNavigationMenuIndicator.displayName =\r\n NavigationMenuPrimitive.Indicator.displayName;\r\n\r\nexport {\r\n navigationMenuTriggerStyle,\r\n NavigationMenu,\r\n NavigationMenuList,\r\n NavigationMenuItem,\r\n NavigationMenuContent,\r\n NavigationMenuTrigger,\r\n NavigationMenuLink,\r\n NavigationMenuIndicator,\r\n NavigationMenuViewport,\r\n};\r\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\nconst AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusableTarget = HTMLElement | { focus(): void };\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_SCOPE_NAME = 'FocusScope';\n\ntype FocusScopeElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface FocusScopeProps extends PrimitiveDivProps {\n /**\n * When `true`, tabbing from last item will focus first tabbable\n * and shift+tab from first item will focus last tababble.\n * @defaultValue false\n */\n loop?: boolean;\n\n /**\n * When `true`, focus cannot escape the focus scope via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapped?: boolean;\n\n /**\n * Event handler called when auto-focusing on mount.\n * Can be prevented.\n */\n onMountAutoFocus?: (event: Event) => void;\n\n /**\n * Event handler called when auto-focusing on unmount.\n * Can be prevented.\n */\n onUnmountAutoFocus?: (event: Event) => void;\n}\n\nconst FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n }).current;\n\n // Takes care of trapping focus if focus is moved outside programmatically for example\n React.useEffect(() => {\n if (trapped) {\n function handleFocusIn(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const target = event.target as HTMLElement | null;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n\n // A `focusout` event with a `null` `relatedTarget` will happen in at least two cases:\n //\n // 1. When the user switches app/tabs/windows/the browser itself loses focus.\n // 2. In Google Chrome, when the focused element is removed from the DOM.\n //\n // We let the browser do its thing here because:\n //\n // 1. The browser already keeps a memory of what's focused for when the page gets refocused.\n // 2. In Google Chrome, if we try to focus the deleted focused element (as per below), it\n // throws the CPU to 100%, so we avoid doing anything for this reason here too.\n if (relatedTarget === null) return;\n\n // If the focus has moved to an actual legitimate element (`relatedTarget !== null`)\n // that is outside the container, we move focus to the last valid focused element inside.\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n // When the focused element gets removed from the DOM, browsers move focus\n // back to the document.body. In this case, we move focus to the container\n // to keep focus trapped correctly.\n function handleMutations(mutations: MutationRecord[]) {\n const focusedElement = document.activeElement as HTMLElement | null;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n }\n\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n const mutationObserver = new MutationObserver(handleMutations);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n\n return () => {\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement as HTMLElement | null;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n\n // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n // we need to remove the listener after we `dispatchEvent`\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n\n // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement as HTMLElement | null;\n\n if (isTabKey && focusedElement) {\n const container = event.currentTarget as HTMLElement;\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n\n // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n\n return (\n \n );\n});\n\nFocusScope.displayName = FOCUS_SCOPE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */\nfunction focusFirst(candidates: HTMLElement[], { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n\n/**\n * Returns the first and last tabbable elements inside a container.\n */\nfunction getTabbableEdges(container: HTMLElement) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last] as const;\n}\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */\nfunction findVisible(elements: HTMLElement[], container: HTMLElement) {\n for (const element of elements) {\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\n\nfunction isHidden(node: HTMLElement, { upTo }: { upTo?: HTMLElement }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while (node) {\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement as HTMLElement;\n }\n return false;\n}\n\nfunction isSelectableInput(element: any): element is FocusableTarget & { select: () => void } {\n return element instanceof HTMLInputElement && 'select' in element;\n}\n\nfunction focus(element?: FocusableTarget | null, { select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({ preventScroll: true });\n // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/\n\ntype FocusScopeAPI = { paused: boolean; pause(): void; resume(): void };\nconst focusScopesStack = createFocusScopesStack();\n\nfunction createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */\n let stack: FocusScopeAPI[] = [];\n\n return {\n add(focusScope: FocusScopeAPI) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n\n remove(focusScope: FocusScopeAPI) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n },\n };\n}\n\nfunction arrayRemove(array: T[], item: T) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\n\nfunction removeLinks(items: HTMLElement[]) {\n return items.filter((item) => item.tagName !== 'A');\n}\n\nconst Root = FocusScope;\n\nexport {\n FocusScope,\n //\n Root,\n};\nexport type { FocusScopeProps };\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'Portal';\n\ntype PortalElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface PortalProps extends PrimitiveDivProps {\n /**\n * An optional container where the portaled content should be appended.\n */\n container?: Element | DocumentFragment | null;\n}\n\nconst Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || (mounted && globalThis?.document?.body);\n return container\n ? ReactDOM.createPortal(, container)\n : null;\n});\n\nPortal.displayName = PORTAL_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Portal;\n\nexport {\n Portal,\n //\n Root,\n};\nexport type { PortalProps };\n","import * as React from 'react';\n\n/** Number of components which have requested interest to have focus guards */\nlet count = 0;\n\nfunction FocusGuards(props: any) {\n useFocusGuards();\n return props.children;\n}\n\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement('beforeend', edgeGuards[1] ?? createFocusGuard());\n count++;\n\n return () => {\n if (count === 1) {\n document.querySelectorAll('[data-radix-focus-guard]').forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\n\nfunction createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.outline = 'none';\n element.style.opacity = '0';\n element.style.position = 'fixed';\n element.style.pointerEvents = 'none';\n return element;\n}\n\nconst Root = FocusGuards;\n\nexport {\n FocusGuards,\n //\n Root,\n //\n useFocusGuards,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n if (target instanceof ShadowRoot) {\n target = target.host;\n }\n else {\n target = target.parentNode;\n }\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps

= P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject;\n contentRef: React.RefObject;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC = (props: ScopedProps) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n \n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ElementRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n \n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC = (props: ScopedProps) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n \n {React.Children.map(children, (child) => (\n \n \n {child}\n \n \n ))}\n \n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n \n \n \n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ElementRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst DialogOverlayImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n \n {context.modal ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit {}\n\nconst DialogContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ElementRef;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\ntype FocusScopeProps = React.ComponentPropsWithoutRef;\ninterface DialogContentImplProps extends Omit {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n \n context.onOpenChange(false)}\n />\n \n {process.env.NODE_ENV !== 'production' && (\n <>\n \n \n \n )}\n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ElementRef;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ElementRef;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ElementRef;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","\"use client\";\r\nimport * as React from \"react\";\r\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\r\nimport { Cross2Icon } from \"@radix-ui/react-icons\";\r\nimport { cva } from \"class-variance-authority\";\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst Sheet = SheetPrimitive.Root;\r\n\r\nconst SheetTrigger = SheetPrimitive.Trigger;\r\n\r\nconst SheetClose = SheetPrimitive.Close;\r\n\r\nconst SheetPortal = SheetPrimitive.Portal;\r\n\r\nconst SheetOverlay = React.forwardRef(({ className, ...props }, ref) => (\r\n \r\n));\r\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\r\n\r\nconst sheetVariants = cva(\r\n \"fixed z-[10346] gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\r\n {\r\n variants: {\r\n side: {\r\n top: \"inset-x-0 top-[30px] border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\r\n bottom:\r\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\r\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\r\n right:\r\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\r\n },\r\n },\r\n defaultVariants: {\r\n side: \"right\",\r\n },\r\n },\r\n);\r\n\r\nconst SheetContent = React.forwardRef(\r\n ({ side = \"right\", className, children, ...props }, ref) => (\r\n \r\n \r\n \r\n \r\n \r\n Close\r\n \r\n {children}\r\n \r\n \r\n ),\r\n);\r\nSheetContent.displayName = SheetPrimitive.Content.displayName;\r\n\r\nconst SheetHeader = ({ className, ...props }) => (\r\n \r\n);\r\nSheetHeader.displayName = \"SheetHeader\";\r\n\r\nconst SheetFooter = ({ className, ...props }) => (\r\n \r\n);\r\nSheetFooter.displayName = \"SheetFooter\";\r\n\r\nconst SheetTitle = React.forwardRef(({ className, ...props }, ref) => (\r\n \r\n));\r\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\r\n\r\nconst SheetDescription = React.forwardRef(({ className, ...props }, ref) => (\r\n \r\n));\r\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\r\n\r\nexport {\r\n Sheet,\r\n SheetPortal,\r\n SheetOverlay,\r\n SheetTrigger,\r\n SheetClose,\r\n SheetContent,\r\n SheetHeader,\r\n SheetFooter,\r\n SheetTitle,\r\n SheetDescription,\r\n};\r\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = (string: T): CamelToPascal => {\n const camelCase = string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = (...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n })\n .join(' ');\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) => {\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props,\n }),\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('ChevronRight', [\n ['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }],\n]);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('Check', [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]]);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Circle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Circle = createLucideIcon('Circle', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n]);\n\nexport default Circle;\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle