{"version":3,"file":"static/js/vendors.2de1d9d8.js","mappings":"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,OAEtB23I,EAAUzpG,GAAYmnC,EAAMvkG,GAE5B6mK,EAAUzpG,GAAYp9D,GAK5B,OAAO6mK,CACT,CASA,SAASC,EAAapgH,EAAQz0B,GAC5B,KAAkB,OAAXy0B,GAAiB,CACtB,MAAM/a,EAAO2U,EAAyBoG,EAAQz0B,GAE9C,GAAI0Z,EAAM,CACR,GAAIA,EAAKp1B,IACP,OAAOqvJ,EAAQj6H,EAAKp1B,KAGtB,GAA0B,oBAAfo1B,EAAK3rC,MACd,OAAO4lK,EAAQj6H,EAAK3rC,MAExB,CAEA0mD,EAASt3B,EAAes3B,EAC1B,CAEA,SAASqgH,IACP,OAAO,IACT,CAEA,OAAOA,CACT,CC1LO,MAAMC,EAAOzqH,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAIW0qH,EAAM1qH,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGW2qH,EAAa3qH,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOW4qH,EAAgB5qH,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGW6qH,EAAS7qH,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKW8qH,EAAmB9qH,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGWjqC,EAAOiqC,EAAO,CAAC,UCrRfnqC,EAAOmqC,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,SAGW+qH,EAAM/qH,EAAO,CACxB,gBACA,aACA,WACA,qBACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGWgrH,EAAShrH,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,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","sources":["cms/actions/components/ContactForm/ContactUsServiceAction.ts","cms/actions/services/ClientMainPageItemsServiceAction.ts","cms/actions/services/ContactUsServiceAction.ts","cms/enums/EContactUsStatus.ts","cms/enums/EContentStatus.ts","cms/enums/EContentType.ts","cms/enums/ELayoutType.ts","cms/enums/ERedirectType.ts","cms/enums/EResourceType.ts","cms/enums/ESeverityLevel.ts","cms/enums/EView.ts","cms/enums/EViewType.ts","cms/services/ClientMainPageItemsService.ts","cms/services/ClientSliderItemService.ts","cms/services/ContactUsService.ts","cms/utilities/ApplicationDocumentSelector.ts","cms/utilities/LanguageVersionSelector.ts","cms/utilities/SanitizeHTMLString.ts","components/BannerCard.tsx","components/ContactForm.tsx","components/ContactInfoBlock.tsx","components/ContainerV2.tsx","components/Divider.tsx","cms/actions/components/MainPageItems/ClientMainPageItemsServiceAction.ts","components/MainPageItems.tsx","components/MainPageLayout/components/MNPG_001.tsx","components/SectionHeader.tsx","components/IconCard.tsx","cms/actions/components/MainPageLayouts/ContentMetricsServiceAction.ts","components/MainPageLayout/components/MNPG_002.tsx","../node_modules/clsx/dist/clsx.mjs","components/MainPageLayout/components/MNPG_003.tsx","components/MainPageLayout/components/MNPG_004.tsx","components/BrandCard.tsx","components/MainPageLayout/components/MNPG_005.tsx","components/SaleBannerGrid.tsx","components/BannerBlock.tsx","components/MainPageLayout/components/MNPG_006.tsx","ecommerce/actions/components/MainPageLayouts/MNPG007/StockStatusServiceAction.ts","ecommerce/actions/components/MainPageLayouts/MNPG007/ClientProductsServiceAction.ts","components/Icons/product-view-icon.tsx","components/Icons/product-wish-icon.tsx","components/Icons/product-compare-icon.tsx","components/ProductCardV2.tsx","components/MainPageLayout/components/MNPG_007.tsx","components/MainPageLayout/components/MNPG_008.tsx","components/RMDRGallery/components/Gallery07.tsx","components/MainPageLayout/components/MNPG_009.tsx","components/ProductsBlock.tsx","components/RMDRGallery/components/Gallery06.tsx","ecommerce/actions/components/MainPageLayouts/MNPG015/ClientProductsServiceAction.ts","components/MainPageLayout/components/MNPG_015.tsx","components/MainPageLayout/index.tsx","cms/actions/components/MainPagePopup/ClientMainPageItemsServiceAction.ts","components/MainPagePopup.tsx","components/NoData.tsx","components/ProductCard.tsx","components/RMDRButton.tsx","cms/enums/EMimeType.ts","components/RMDRImage.tsx","components/RMDRLink.tsx","components/RMDRPopup.tsx","components/RMDRTextArea.tsx","components/RMDRTextBox.tsx","components/RenderText.tsx","components/SliderLayouts/components/SLDR_002.tsx","components/SliderLayouts/index.tsx","components/SliderLayouts/components/SLDR_001.tsx","cms/actions/components/Slider/ContentMetricsServiceAction.ts","components/SliderGroupLayouts/components/SLDRGRP_001.tsx","components/SliderGroupLayouts/components/SLDRGRP_002.tsx","components/SliderGroupLayouts/components/SLDRGRP_003.tsx","components/SliderGroupLayouts/components/SLDRGRP_004.tsx","components/SliderGroupLayouts/index.tsx","cms/actions/services/ClientSilderItemServiceAction.ts","cms/actions/components/Slider/ClientSilderItemServiceAction.ts","core/utilities/DateTimeHelper.ts","components/Slider.tsx","components/Text.tsx","core/enums/EEndpointProtocol.ts","core/Defaults.ts","core/utilities/DeleteKeyFromListOfDictionary.ts","core/actions/ActionBase.ts","core/actions/ActionCore.ts","core/actions/OdataActionBase.ts","core/actions/OdataCoreActionBase.ts","core/actions/OdataReadOnlyActionBase.ts","core/actions/common/CoreAction.ts","core/actions/common/MessagePublisherAction.ts","core/actions/services/metrics/ContentMetricsServiceAction.ts","core/enums/EActionStatus.ts","core/enums/EActionType.ts","core/enums/EContentMetricsType.ts","core/enums/EHttpMethod.ts","core/enums/EHttpStatusCode.ts","core/enums/EMessageStatus.ts","../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/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/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.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","core/extensions/FetchExtension.ts","core/services/OdataCoreServiceBase.ts","core/services/OdataReadOnlyServiceBase.ts","core/services/OdataServiceBase.ts","core/services/ServiceBase.ts","core/services/metrics/ContentMetricsService.ts","ecommerce/actions/common/ECommerceAction.ts","ecommerce/actions/services/ClientProductsServiceAction.ts","ecommerce/actions/services/enum/StockStatusServiceAction.ts","ecommerce/services/ClientProductsService.ts","core/services/enum/EnumService.ts","ecommerce/services/enum/StockStatusService.ts","../node_modules/web-vitals/dist/web-vitals.js","core/extensions/AnalyticsExtension.ts","../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/reselect/src/utils.ts","../node_modules/reselect/src/autotrackMemoize/proxy.ts","../node_modules/reselect/src/weakMapMemoize.ts","../node_modules/reselect/src/createSelectorCreator.ts","../node_modules/reselect/src/createStructuredSelector.ts","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/createAction.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/configureStore.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/utils.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","core/enums/EReduxStoreInitialState.ts","core/utilities/ReduxStoreModifierFunctions.ts","core/reducers/BaseReduxStore.ts","core/reducers/CoreReduxStore.ts","core/reducers/common/CoreStore.ts","core/reducers/common/LanguageStore.ts","core/reducers/common/PopupPublisherStore.ts","core/reducers/index.ts","core/reducers/common/MessagePublisherStore.ts","cms/reducers/common/SiteSettingStore.ts","cms/reducers/common/CMSStore.ts","cms/services/ClientMenuItemService.ts","cms/reducers/services/ClientMenuItemServiceStore.ts","cms/reducers/components/HeaderStore.ts","cms/reducers/services/ClientMainPageItemsServiceStore.ts","cms/services/ClientPagesService.ts","cms/reducers/services/ClientPagesServiceStore.ts","cms/reducers/components/FooterStore.ts","cms/reducers/services/ClientSilderItemServiceStore.ts","cms/services/ClientCategoriesService.ts","cms/reducers/services/ClientCategoriesServiceStore.ts","cms/reducers/components/SliderStore.ts","cms/reducers/components/MainPageItemStore.ts","cms/reducers/components/MainPagePopupStore.ts","cms/reducers/components/LatestContents.ts","cms/reducers/components/ShowroomLayoutStore.ts","cms/reducers/services/ContactUsServiceStore.ts","cms/reducers/components/ContactFormStore.ts","cms/reducers/components/GetQuoteStore.ts","cms/reducers/components/InnerLayouts/INNR003Store.ts","cms/services/ClientContentsService.ts","cms/reducers/services/ClientContentsServiceStore.ts","core/reducers/service/metrics/ContentMetricsServiceStore.ts","cms/reducers/index.ts","cms/reducers/screens/ContentStore.ts","ecommerce/reducers/common/ECommerceStore.ts","ecommerce/reducers/common/ClientCatalogCategoryStore.ts","ecommerce/services/ClientCatalogCategoriesService.ts","ecommerce/reducers/services/ClientCatalogCategoriesServiceStore.ts","ecommerce/reducers/components/filters/CategoryFilterStore.ts","ecommerce/services/ClientBrandsService.ts","ecommerce/reducers/services/ClientBrandsServiceStore.ts","ecommerce/reducers/components/filters/BrandFilterStore.ts","ecommerce/services/ClientTagsService.ts","ecommerce/reducers/services/ClientTagsServiceStore.ts","ecommerce/reducers/components/filters/TagFilterStore.ts","ecommerce/reducers/services/ClientProductsServiceStore.ts","ecommerce/reducers/components/InnerLayouts/INNR006Store.ts","ecommerce/reducers/services/enum/StockStatusServiceStore.ts","ecommerce/reducers/components/MainPageLayouts/MNPG003Store.ts","ecommerce/reducers/components/MainPageLayouts/MNPG007Store.ts","ecommerce/reducers/components/MainPageLayouts/MNPG015Store.ts","ecommerce/services/ClientStoresService.ts","ecommerce/reducers/services/ClientStoresServiceStore.ts","ecommerce/reducers/screens/MarketPlaceStore.ts","ecommerce/reducers/index.ts","appReducer.ts","components/WebApplicationRedirector.tsx","core/services/language/LanguageService.ts","core/actions/services/language/LanguageServiceAction.ts","core/actions/common/LanguageServiceAction.ts","cms/actions/components/WebApplicationStarter/LanguageServiceAction.ts","cms/utilities/DetectLanguage.ts","components/WebApplicationStarter.tsx","cms/enums/ESizeType.ts","components/SEO.tsx","components/Error404.tsx","cms/layouts/WebApplicationLayout.tsx","cms/actions/components/Footer/ClientMainPageItemsServiceAction.ts","components/Footer/components/BottomBar.tsx","components/SocialMedia/components/SocialMedia01.tsx","components/Footer/components/CompanyIntroduction.tsx","components/SocialMedia/components/SocialMedia02.tsx","components/Footer/components/Contact.tsx","components/Footer/components/ListContents01.tsx","components/Footer/components/MiddleBar.tsx","components/Footer/index.tsx","components/Logo.tsx","components/Icons/search-icon.tsx","components/ListBox.tsx","components/LanguageSwitcher.tsx","components/Header/components/MegaMenu.tsx","components/Header/components/ListMenu.tsx","cms/actions/services/ClientMenuItemServiceAction.ts","cms/actions/components/Header/ClientMenuItemServiceAction.ts","cms/actions/components/Header/ContentMetricsServiceAction.ts","cms/utilities/MenuComposer.ts","components/Header/components/CategoryMenu.tsx","components/RMDRNavLink.tsx","components/Header/components/HeaderMenu.tsx","components/Header/components/PhoneNumberBox.tsx","cms/actions/common/CMSAction.ts","components/Header/components/RightMenu.tsx","components/Header/index.tsx","cms/services/ClientSiteSettingService.ts","cms/actions/services/ClientSiteSettingServiceAction.ts","cms/actions/common/SiteSettingServiceAction.ts","ecommerce/actions/services/ClientCatalogCategoriesServiceAction.ts","ecommerce/actions/common/ClientCatalogCategoriesServiceAction.ts","cms/utilities/PutManifestFileDynamic.ts","components/Icons/menu-icon.tsx","components/Icons/home-icon.tsx","../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/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-drawer/es/context.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-motion/es/context.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-util/es/hooks/useSyncState.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-drawer/es/DrawerPanel.js","../node_modules/rc-drawer/es/util.js","../node_modules/rc-drawer/es/DrawerPopup.js","../node_modules/rc-drawer/es/Drawer.js","../node_modules/rc-drawer/es/index.js","components/Drawer/Motion.ts","../node_modules/src/support/cache.ts","../node_modules/src/support/utils/alias.ts","../node_modules/src/support/compatibility/isBrowser.ts","../node_modules/src/support/compatibility/apis.ts","../node_modules/src/support/utils/types.ts","../node_modules/src/support/utils/array.ts","../node_modules/src/support/utils/strings.ts","../node_modules/src/support/utils/equal.ts","../node_modules/src/support/utils/noop.ts","../node_modules/src/support/utils/function.ts","../node_modules/src/support/utils/object.ts","../node_modules/src/support/utils/math.ts","../node_modules/src/support/dom/attribute.ts","../node_modules/src/support/dom/class.ts","../node_modules/src/support/dom/traversal.ts","../node_modules/src/support/dom/manipulation.ts","../node_modules/src/support/dom/create.ts","../node_modules/src/support/dom/style.ts","../node_modules/src/support/dom/dimensions.ts","../node_modules/src/support/dom/events.ts","../node_modules/src/support/dom/scroll.ts","../node_modules/src/support/dom/focus.ts","../node_modules/src/support/eventListeners.ts","../node_modules/src/options.ts","../node_modules/src/classnames.ts","../node_modules/src/nonce.ts","../node_modules/src/environment.ts","../node_modules/src/initialization.ts","../node_modules/src/instances.ts","../node_modules/src/observers/domObserver.ts","../node_modules/src/plugins/plugins.ts","../node_modules/src/plugins/sizeObserverPlugin/sizeObserverPlugin.ts","../node_modules/src/setups/structureSetup/structureSetup.utils.ts","../node_modules/src/plugins/scrollbarsHidingPlugin/scrollbarsHidingPlugin.ts","../node_modules/src/plugins/clickScrollPlugin/clickScrollPlugin.ts","../node_modules/src/observers/sizeObserver.ts","../node_modules/src/setups/observersSetup/observersSetup.ts","../node_modules/src/observers/trinsicObserver.ts","../node_modules/src/setups/scrollbarsSetup/scrollbarsSetup.elements.ts","../node_modules/src/setups/scrollbarsSetup/scrollbarsSetup.events.ts","../node_modules/src/setups/structureSetup/updateSegments/trinsicUpdateSegment.ts","../node_modules/src/setups/structureSetup/updateSegments/paddingUpdateSegment.ts","../node_modules/src/setups/structureSetup/updateSegments/overflowUpdateSegment.ts","../node_modules/src/setups/structureSetup/structureSetup.ts","../node_modules/src/setups/structureSetup/structureSetup.elements.ts","../node_modules/src/setups/setups.ts","../node_modules/src/setups/scrollbarsSetup/scrollbarsSetup.ts","../node_modules/src/overlayscrollbars.ts","../node_modules/src/plugins/optionsValidationPlugin/optionsValidationPlugin.ts","../node_modules/src/useOverlayScrollbars.ts","../node_modules/src/OverlayScrollbarsComponent.tsx","components/Scrollbar.tsx","components/Header/components/MobileMenu.tsx","components/MobileNavigation.tsx","components/SearchBox.tsx","../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","components/Search.tsx","components/ProductAttributes.tsx","../node_modules/@reach/utils/dist/reach-utils.mjs","../node_modules/@reach/portal/dist/reach-portal.mjs","../node_modules/framer-motion/dist/es/utils/is-browser.mjs","../node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../node_modules/framer-motion/dist/es/utils/noop.mjs","../node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs","../node_modules/framer-motion/dist/es/frameloop/render-step.mjs","../node_modules/framer-motion/dist/es/frameloop/batcher.mjs","../node_modules/framer-motion/dist/es/frameloop/frame.mjs","../node_modules/framer-motion/dist/es/context/PresenceContext.mjs","../node_modules/framer-motion/dist/es/utils/use-constant.mjs","../node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/utils/errors.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","../node_modules/framer-motion/dist/es/context/LazyContext.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","../node_modules/framer-motion/dist/es/frameloop/microtask.mjs","../node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","../node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","../node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","../node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","../node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","../node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","../node_modules/framer-motion/dist/es/motion/features/definitions.mjs","../node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","../node_modules/framer-motion/dist/es/motion/index.mjs","../node_modules/framer-motion/dist/es/motion/features/load-features.mjs","../node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","../node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","../node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","../node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","../node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","../node_modules/framer-motion/dist/es/utils/clamp.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/index.mjs","../node_modules/framer-motion/dist/es/value/types/utils.mjs","../node_modules/framer-motion/dist/es/value/types/numbers/units.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","../node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","../node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/html/use-props.mjs","../node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","../node_modules/framer-motion/dist/es/render/svg/use-props.mjs","../node_modules/framer-motion/dist/es/render/dom/use-render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/render.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","../node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","../node_modules/framer-motion/dist/es/utils/resolve-value.mjs","../node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","../node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","../node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","../node_modules/framer-motion/dist/es/render/html/config-motion.mjs","../node_modules/framer-motion/dist/es/events/add-dom-event.mjs","../node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs","../node_modules/framer-motion/dist/es/events/event-info.mjs","../node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","../node_modules/framer-motion/dist/es/utils/pipe.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","../node_modules/framer-motion/dist/es/motion/features/Feature.mjs","../node_modules/framer-motion/dist/es/gestures/hover.mjs","../node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","../node_modules/framer-motion/dist/es/gestures/press.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","../node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","../node_modules/framer-motion/dist/es/motion/features/gestures.mjs","../node_modules/framer-motion/dist/es/gestures/focus.mjs","../node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","../node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","../node_modules/framer-motion/dist/es/utils/time-conversion.mjs","../node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","../node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","../node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","../node_modules/framer-motion/dist/es/frameloop/sync-time.mjs","../node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","../node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","../node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs","../node_modules/framer-motion/dist/es/value/types/color/utils.mjs","../node_modules/framer-motion/dist/es/value/types/color/rgba.mjs","../node_modules/framer-motion/dist/es/value/types/color/hex.mjs","../node_modules/framer-motion/dist/es/value/types/color/hsla.mjs","../node_modules/framer-motion/dist/es/value/types/color/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/index.mjs","../node_modules/framer-motion/dist/es/value/types/complex/filter.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","../node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-none.mjs","../node_modules/framer-motion/dist/es/utils/memo.mjs","../node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","../node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs","../node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs","../node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs","../node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs","../node_modules/framer-motion/dist/es/animation/generators/inertia.mjs","../node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs","../node_modules/framer-motion/dist/es/easing/ease.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs","../node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs","../node_modules/framer-motion/dist/es/easing/circ.mjs","../node_modules/framer-motion/dist/es/easing/back.mjs","../node_modules/framer-motion/dist/es/easing/utils/map.mjs","../node_modules/framer-motion/dist/es/easing/anticipate.mjs","../node_modules/framer-motion/dist/es/utils/progress.mjs","../node_modules/framer-motion/dist/es/utils/mix/number.mjs","../node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs","../node_modules/framer-motion/dist/es/utils/mix/immediate.mjs","../node_modules/framer-motion/dist/es/utils/mix/color.mjs","../node_modules/framer-motion/dist/es/utils/mix/visibility.mjs","../node_modules/framer-motion/dist/es/utils/mix/complex.mjs","../node_modules/framer-motion/dist/es/utils/mix/index.mjs","../node_modules/framer-motion/dist/es/utils/interpolate.mjs","../node_modules/framer-motion/dist/es/utils/offsets/default.mjs","../node_modules/framer-motion/dist/es/utils/offsets/fill.mjs","../node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs","../node_modules/framer-motion/dist/es/utils/offsets/time.mjs","../node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs","../node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs","../node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs","../node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs","../node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs","../node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs","../node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs","../node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs","../node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","../node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","../node_modules/framer-motion/dist/es/utils/array.mjs","../node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","../node_modules/framer-motion/dist/es/value/index.mjs","../node_modules/framer-motion/dist/es/render/utils/setters.mjs","../node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","../node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","../node_modules/framer-motion/dist/es/motion/features/animations.mjs","../node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","../node_modules/framer-motion/dist/es/utils/distance.mjs","../node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","../node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","../node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","../node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","../node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","../node_modules/framer-motion/dist/es/projection/utils/measure.mjs","../node_modules/framer-motion/dist/es/utils/get-context-window.mjs","../node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","../node_modules/framer-motion/dist/es/projection/geometry/models.mjs","../node_modules/framer-motion/dist/es/gestures/pan/index.mjs","../node_modules/framer-motion/dist/es/projection/node/state.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","../node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","../node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","../node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","../node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","../node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","../node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","../node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","../node_modules/framer-motion/dist/es/projection/shared/stack.mjs","../node_modules/framer-motion/dist/es/projection/styles/transform.mjs","../node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","../node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","../node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","../node_modules/framer-motion/dist/es/debug/record.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","../node_modules/framer-motion/dist/es/utils/delay.mjs","../node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs","../node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","../node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","../node_modules/framer-motion/dist/es/motion/features/drag.mjs","../node_modules/framer-motion/dist/es/gestures/drag/index.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","../node_modules/framer-motion/dist/es/render/store.mjs","../node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","../node_modules/framer-motion/dist/es/render/VisualElement.mjs","../node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","../node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","../node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","../node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","../node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","../node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","../node_modules/framer-motion/dist/es/render/dom/motion.mjs","../node_modules/framer-motion/dist/es/motion/features/layout.mjs","../node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","cms/utilities/motion/FadeInOut.ts","cms/utilities/motion/zoom-out-in.ts","cms/utilities/UseClickOutside.ts","components/Modal.tsx","components/ProductPopup.tsx","cms/layouts/WebApplicationWrapperLayout.tsx","cms/actions/screens/Content/ContentMetricsServiceAction.ts","screens/Home.tsx","ecommerce/actions/screens/MarketPlace/ClientProductsServiceAction.ts","ecommerce/actions/screens/MarketPlace/ClientCatalogCategoriesServiceAction.ts","ecommerce/actions/screens/MarketPlace/StockStatusServiceAction.ts","ecommerce/actions/screens/MarketPlace/MarketPlacePageAction.ts","components/RMDRCheckbox.tsx","ecommerce/actions/components/filters/CategoryFilter/ClientCatalogCategoriesServiceAction.ts","components/Filters/CategoryFilter.tsx","components/Filters/PriceFilter.tsx","ecommerce/actions/services/ClientTagsServiceAction.ts","ecommerce/actions/components/filters/TagFilter/ClientTagsServiceAction.ts","components/Filters/TagFilter.tsx","components/Filters/ShopFilters.tsx","components/ProductGrid.tsx","components/Pagination/PaginationItem.tsx","cms/utilities/CalculatePageNumber.ts","components/Pagination/index.tsx","components/Icons/filter-icon.tsx","components/FilterSidebar.tsx","components/Filters/OrderBy.tsx","screens/MarketPlace.tsx","cms/actions/services/ClientContentsServiceAction.ts","cms/actions/screens/Content/ClientContentsServiceAction.ts","components/Container.tsx","core/hooks/useProgressiveImage.tsx","components/ContentHeaderRow.tsx","components/RMDRTextContent.tsx","components/RMDRAccordions/components/RMDRAccordion01.tsx","components/RMDRTabs/components/RMDRTab01.tsx","components/ContentRenderer.tsx","components/ContentInnerHeader.tsx","components/InnerLayouts/components/INNR_001.tsx","components/InnerLayouts/components/INNR_002.tsx","cms/actions/components/InnerLayouts/INNR003/ContactUsServiceAction.ts","components/RMDRGoogleMaps.tsx","components/InnerLayouts/components/INNR_003.tsx","components/InnerLayouts/components/INNR_004.tsx","components/RMDRPDFViever.tsx","components/InnerLayouts/components/INNR_005.tsx","components/RMDRVariantImage.tsx","components/RMDRGallery/components/Gallery05.tsx","components/RMDRGallery/components/Gallery02.tsx","cms/actions/components/GetQuote/ContactUsServiceAction.ts","components/GetQuote.tsx","components/ProductSingleDetails.tsx","ecommerce/actions/components/InnerLayouts/INNR006/ClientProductsServiceAction.ts","components/Breadcrumb.tsx","components/InnerLayouts/components/INNR_006.tsx","components/InnerLayouts/components/INNR_007.tsx","components/InnerLayouts/components/INNR_008.tsx","components/RMDRRegistrationForm.tsx","components/InnerLayouts/components/INNR_009.tsx","components/InnerLayouts/components/INNR_010.tsx","components/InnerLayouts/index.tsx","cms/actions/services/ClientPagesServiceAction.ts","cms/actions/components/ShowroomLayouts/ClientPagesServiceAction.ts","components/PageCard.tsx","components/PageGrid.tsx","components/ShowroomLayouts/components/SHWRM_001.tsx","components/Layouts.tsx","components/ShowroomLayouts/index.ts","components/GalleryLayouts/index.tsx","screens/Content.tsx","components/Preloader/index.tsx","appRoutes.tsx","app.tsx","index.tsx","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/cookie/index.js","../node_modules/dompurify/src/utils.js","../node_modules/dompurify/src/tags.js","../node_modules/dompurify/src/attrs.js","../node_modules/dompurify/src/regexp.js","../node_modules/dompurify/src/purify.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/moment/moment.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.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-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@floating-ui/core/dist/floating-ui.core.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/@floating-ui/react/dist/floating-ui.react.utils.mjs","../node_modules/@floating-ui/react/dist/floating-ui.react.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/platform.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/isVirtualEvent.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/domHelpers.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocusVisible.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useLayoutEffect.ts","../node_modules/@react-aria/utils/dist/packages/@react-aria/utils/src/useEffectEvent.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/utils.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocus.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useFocusWithin.ts","../node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/useFocusRing.ts","../node_modules/@react-aria/interactions/dist/packages/@react-aria/interactions/src/useHover.ts","../node_modules/swiper/shared/create-element-if-not-defined.mjs","../node_modules/swiper/modules/navigation.mjs","../node_modules/swiper/shared/classes-to-selector.mjs","../node_modules/swiper/modules/pagination.mjs","../node_modules/swiper/modules/thumbs.mjs","../node_modules/swiper/modules/free-mode.mjs","../node_modules/swiper/shared/ssr-window.esm.mjs","../node_modules/swiper/shared/utils.mjs","../node_modules/swiper/shared/swiper-core.mjs","../node_modules/swiper/shared/update-swiper.mjs","../node_modules/swiper/swiper-react.mjs","../node_modules/swiper/shared/update-on-virtual-data.mjs","../node_modules/universal-cookie/esm/index.mjs"],"sourcesContent":["import _ContactUsServiceAction from \"cms/actions/services/ContactUsServiceAction\";\n\n\nconst screenCode = \"20C\";\nclass ContactUsServiceAction extends _ContactUsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ContactUsServiceAction;\n","// action \nimport OdataReadOnlyActionBase from \"core/actions/OdataReadOnlyActionBase\";\n// service\nimport ClientMainPageItemsService from \"cms/services/ClientMainPageItemsService\";\n\n\nclass ClientMainPageItemsServiceAction extends OdataReadOnlyActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, ClientMainPageItemsService, screenCode);\n }\n\n}\n\nexport default ClientMainPageItemsServiceAction;\n","// action \nimport OdataActionBase from \"core/actions/OdataActionBase\";\n// service\nimport ContactUsService from \"cms/services/ContactUsService\";\n\n\nclass ContactUsServiceAction extends OdataActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, ContactUsService, screenCode);\n }\n\n}\n\nexport default ContactUsServiceAction;\n","const EContactUsStatusDataSource = {\n\n NEW: { \"id\": 1,\"name\": \"New\",\"description\": null },\n READED: { \"id\": 2,\"name\": \"Readed\",\"description\": null },\n RESPONDED: { \"id\": 4,\"name\": \"Responded\",\"description\": null },\n FLAGED: { \"id\": 8,\"name\": \"Flaged\",\"description\": null },\n KEEP_AT_TOP: { \"id\": 16,\"name\": \"KeepAtTop\",\"description\": null },\n DELETED: { \"id\": 32,\"name\": \"Deleted\",\"description\": null }\n\n}\n\nenum EContactUsStatus {\n \n NEW = 1,\n READED = 2,\n RESPONDED = 4,\n FLAGED = 8,\n KEEP_AT_TOP = 16,\n DELETED = 32\n \n}\n\n\nexport default EContactUsStatusDataSource;\nexport {\n\n EContactUsStatus\n\n}\n","const EContentStatusDataSource = {\n \n PASSIVE: { \"id\": 0, \"name\": \"Passive\", \"description\": null }, \n ACTIVE: { \"id\": 1, \"name\": \"Active\", \"description\": null },\n PREVIEW: { \"id\": 2, \"name\": \"Preview\", \"description\": null }\n\n}\n\nenum EContentStatus {\n \n PASSIVE,\n ACTIVE,\n PREVIEW\n\n}\n\n\nexport default EContentStatusDataSource;\nexport {\n\n EContentStatus\n\n}\n","const EContentTypeDataSource = {\n\n DEFAULT : { id: 1, name: \"Default\" },\n PAGE : { id: 2, name: \"Page\" },\n CATEGORY : { id: 4, name: \"Category\" },\n MENU_ITEM : { id: 8, name: \"Menu Item\" },\n SLIDER_ITEM : { id: 16, name: \"Slider Item\" },\n MAIN_PAGE_ITEM : { id: 32, name: \"Main Page Item\" },\n STATISTIC_ITEM : { id: 64, name: \"Statistic Item\" },\n SITE_SETTING : { id: 128,name: \"Site Setting\" },\n DATA : { id: 256,name: \"Data\" },\n\n VENDOR : { id: 2048,name: \"Vendor\" },\n STORE : { id: 4096,name: \"Store\" },\n BRAND : { id: 8192,name: \"Brand\" },\n CATALOG_CATEGORY : { id: 16384, name: \"Catalog Category\" },\n PRODUCT : { id: 32768, name: \"Product\" },\n PRODUCT_VARIANT : { id: 65536, name: \"Product Variant\" }\n\n}\n\n\nenum EContentType {\n\n DEFAULT = 1,\n PAGE = 2,\n CATEGORY = 4,\n MENU_ITEM = 8,\n SLIDER_ITEM = 16,\n MAIN_PAGE_ITEM = 32,\n STATISTIC_ITEM = 64,\n SITE_SETTING = 128,\n DATA = 256,\n\n VENDOR = 2048,\n STORE = 4096,\n BRAND = 8192,\n CATALOG_CATEGORY = 16384,\n PRODUCT = 32768,\n PRODUCT_VARIANT = 65536,\n\n}\n\nexport default EContentTypeDataSource;\nexport {\n\n EContentType\n\n}\n","const ELayoutTypeDataSource = {\n\n MENU_ITEM : { id: 1, name: \"MenuItem\" },\n MENU_GROUP : { id: 2, name: \"MenuGroup\" },\n INNER_PAGE : { id: 3, name: \"InnerPage\" },\n OUTER_PAGE : { id: 4, name: \"OutterPage\" },\n SLIDER : { id: 5, name: \"Slider\" },\n SLIDER_GROUP : { id: 6, name: \"SliderGroup\" },\n SHOWROOM : { id: 7, name: \"Showroom\" },\n GALLERY : { id: 8, name: \"Gallery\" },\n MAIN_PAGE : { id: 9, name: \"MainPage\" },\n MAIN_PAGE_GROUP : { id: 10, name: \"MainPageGroup\" },\n STATISTIC_GROUP : { id: 11, name: \"StatisticGroup\" } \n\n}\n\nenum ELayoutType {\n\n MENU_ITEM = 1,\n MENU_GROUP,\n INNER_PAGE,\n OUTER_PAGE,\n SLIDER,\n SLIDER_GROUP,\n SHOWROOM,\n GALLERY,\n MAIN_PAGE,\n MAIN_PAGE_GROUP,\n STATISTIC_GROUP\n\n}\n\nexport default ELayoutTypeDataSource;\nexport {\n\n ELayoutType\n\n}\n","enum ERedirectType {\n \n STAY_CURRENT_PAGE = 1,\n REDIRECT_NEW_TAB = 2,\n OPEN_POPUP = 3\n \n}\n\nexport default ERedirectType;\n","const EResourceTypeDataSource = {\n \n PARALLAX : { id: 1, name: \"Parallax\" },\n PATTERN : { id: 2, name: \"Pattern\" },\n OUTER_IMAGE : { id: 3, name: \"OutterImage\" },\n INNER_IMAGE : { id: 4, name: \"InnerImage\" },\n VIDEO : { id: 5, name: \"Video\" },\n IMAGE : { id: 6, name: \"Image\" },\n DATA : { id: 7, name: \"Data\" },\n STATISTIC_DATA_SHEET : { id: 8, name: \"StatisticDataSheet\" },\n ICON : { id: 9, name: \"Icon\" },\n LOGO_DEFAULT : { id: 10, name: \"LogoDefault\" },\n LOGO_ONLY : { id: 11, name: \"LogoOnly\" },\n LOGO_WITH_BOTTOM_TEXT : { id: 12, name: \"LogoWithBottomText\" }\n\n}\n\nenum EResourceType {\n \n PARALLAX = 1,\n PATTERN,\n OUTER_IMAGE,\n INNER_IMAGE,\n VIDEO,\n IMAGE,\n DATA,\n STATISTIC_DATA_SHEET,\n ICON,\n LOGO_DEFAULT,\n LOGO_ONLY,\n LOGO_WITH_BOTTOM_TEXT,\n\n}\n\nexport default EResourceTypeDataSource;\nexport {\n EResourceType\n}\n","enum ESeverityLevel {\n\n ERROR = 0,\n WARNING = 1,\n INFO = 2,\n\n}\n\nexport default ESeverityLevel;\n","const EViewDataSource = {\n \n OUTTER : { id: 1, name: \"Outter\" },\n INNER : { id: 2, name: \"Inner\" },\n META_DATA : { id: 4, name: \"MetaData\" }\n \n}\n\nenum EView {\n \n OUTTER = 1,\n INNER = 2,\n META_DATA = 4\n \n}\n\nexport default EViewDataSource;\nexport {\n\n EView\n\n}\n","const EViewTypeDataSource = {\n \n TEXT : { id: 1, name: \"Text\" },\n TAB : { id: 2, name: \"Tab\" },\n ACCORDION : { id: 3, name: \"Accordion\" },\n NAME_DESCRIPTION : { id: 4, name: \"Name and Description\" }\n\n}\n\nenum EViewType {\n \n TEXT = 1,\n TAB,\n ACCORDION,\n NAME_DESCRIPTION\n\n}\n\nexport default EViewTypeDataSource;\nexport {\n\n EViewType\n\n}\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientMainPageItemsService extends ReadOnlyOdataServiceBase {\n\n static code = \"202\";\n code = \"202\";\n\n constructor () {\n super({\n sourcePath: \"client-main-page-items\"\n });\n }\n\n}\n\nexport default ClientMainPageItemsService;\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientSliderItemService extends ReadOnlyOdataServiceBase {\n\n static code = \"206\";\n code = \"206\";\n\n constructor () {\n\n super({\n sourcePath: \"client-slider-items\"\n });\n\n }\n\n}\n\nexport default ClientSliderItemService;\n","import OdataServiceBase from \"core/services/OdataServiceBase\";\n\n\nclass ContactUsService extends OdataServiceBase {\n\n static code = \"207\";\n code = \"207\";\n\n constructor () {\n\n super( {\n sourcePath: \"contact-us\"\n });\n\n }\n \n}\n\nexport default ContactUsService;\n","import { isEmpty, reject } from \"lodash\";\n// interfaces\nimport IApplicationDocument from \"cms/interfaces/IApplicationDocument\";\n// enums\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport ESizeType from \"cms/enums/ESizeType\";\n// interfaces\nimport IResource from 'cms/interfaces/IResource';\n\n\ntype TApplicationDocumentSelector = {\n\n resources?: IResource[];\n \n resourceType?: EResourceType;\n sizeType?: ESizeType;\n\n type?: \"find\"|\"filter\";\n\n}\n\nfunction _find ( props:Readonly ) {\n\n let resource:IResource|undefined;\n if ( props.sizeType !== null && props.sizeType !== undefined ) {\n resource = props.resources?.find((item) => item.resourceTypeId === props.resourceType && item.applicationDocument.sizeType === props.sizeType);\n } else {\n resource = props.resources?.find((item) => item.resourceTypeId === props.resourceType);\n }\n\n const applicationDocument = resource?.applicationDocument;\n const derived = resource?.applicationDocument?.deriveds?.[0];\n \n if ( derived && !isEmpty(derived) ) return derived as any;\n else if ( applicationDocument && !isEmpty(applicationDocument) ) return applicationDocument as any;\n\n return null as any;\n}\n\nfunction _filter ( props:Readonly ) {\n\n let resources:IResource[]|undefined;\n if ( props.sizeType !== null && props.sizeType !== undefined ) {\n resources = props.resources?.filter((item) => item.resourceTypeId === props.resourceType && item.applicationDocument.sizeType === props.sizeType);\n } else {\n resources = props.resources?.filter((item) => item.resourceTypeId === props.resourceType);\n }\n\n const applicationDocuments = reject(resources?.map((item) => item.applicationDocument as IApplicationDocument), isEmpty);\n const deriveds = reject(resources?.map((item) => item.applicationDocument.deriveds?.[0]), isEmpty);\n\n if ( deriveds && !isEmpty(deriveds) ) return deriveds as any;\n else if ( applicationDocuments && !isEmpty(applicationDocuments) ) return applicationDocuments as any;\n\n return null as any;\n}\n\nfunction ApplicationDocumentSelector ( props:TApplicationDocumentSelector ): T {\n\n if ( !isEmpty(props.resources) ) {\n\n if ( props.type === \"find\" ) {\n\n return _find(props);\n\n } \n else if ( props.type === \"filter\" ) {\n\n return _filter(props);\n\n }\n\n }\n\n return null as any;\n\n}\n\n\nexport type {\n TApplicationDocumentSelector\n}\nexport default ApplicationDocumentSelector;\n","import { isEmpty, find, filter } from \"lodash\";\n// enums\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EContentType } from 'cms/enums/EContentType';\n// interfaces\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\nimport ILanguageVersionDetail from 'cms/interfaces/ILanguageVersionDetail';\n\n\ntype TLanguageVersionSelector = {\n\n languageVersions?: ILanguageVersionList[]|ILanguageVersionDetail[]|null;\n \n filters: {\n view?: EView;\n viewType?: EViewType;\n contentType?: EContentType;\n name?: string;\n customFilter?: { key:string, value:any }[];\n isActive?:boolean;\n }[];\n\n type?: 'filter'|'find';\n\n}\n\nfunction LanguageVersionSelector( props:TLanguageVersionSelector ): T {\n\n if ( props.languageVersions && !isEmpty(props.languageVersions) ) {\n\n for ( let filterItem of props.filters ) {\n\n let predicate:any = { isActive: true },\n data:any = null;\n \n if ( filterItem.view ) predicate[\"view\"] = filterItem.view;\n if ( filterItem.viewType ) predicate[\"viewType\"] = filterItem.viewType;\n if ( filterItem.contentType ) predicate[\"contentType\"] = filterItem.contentType;\n if ( filterItem.name ) predicate[\"name\"] = filterItem.name;\n if ( filterItem.isActive === true || filterItem.isActive === false ) predicate[\"isActive\"] = filterItem.isActive;\n if ( filterItem.customFilter ) {\n for ( let item of filterItem.customFilter ) {\n predicate[item.key] = item.value;\n }\n }\n\n if ( props.type === 'find' ) data = find(props.languageVersions, predicate) as any;\n else if ( props.type === 'filter' ) data = filter(props.languageVersions, predicate) as any;\n \n if ( data && !isEmpty(data) ) return data;\n\n }\n }\n\n return null as any;\n\n}\n\nLanguageVersionSelector.defaultProps = {\n\n type: 'find'\n\n}\n\nexport default LanguageVersionSelector;\nexport type {\n TLanguageVersionSelector\n};\n","import * as DOMPurify from 'dompurify';\n\nfunction SanitizeHTMLString(value?: string|null) {\n\n return DOMPurify.sanitize(value || \"\",{ FORCE_BODY: true })\n\n}\n\nexport default SanitizeHTMLString;\n","import cn from 'classnames';\n// components\nimport RMDRLink from './RMDRLink';\nimport RMDRImage from './RMDRImage';\n// interfaces\nimport IClientMainPageItemList from 'cms/interfaces/IClientMainPageItemList';\nimport IClientSliderItemList from 'cms/interfaces/IClientSliderItemList';\n// enums\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EContentType } from 'cms/enums/EContentType';\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\n\ntype TBannerBard = {\n\n payload?: IClientMainPageItemList|IClientSliderItemList|null;\n navigationURL?: string|null;\n\n className?: string;\n classNameInner?: string;\n\n variant?: 'rounded' | 'default';\n resourceType?:EResourceType;\n \n effectActive?: boolean;\n disableBorderRadius?: boolean;\n showLoader: boolean;\n\n onClick?:(event:any) => void;\n\n}\n\nfunction BannerCardLoader ( props:TBannerBard ) {\n\n return (\n
\n
\n
\n
\n
\n )\n\n}\n\nfunction BannerCard ( props:TBannerBard ) {\n\n if ( props.showLoader ) return \n\n const languageVersion = LanguageVersionSelector({\n languageVersions: props.payload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const redirectUrl = LanguageVersionSelector({\n languageVersions: props.payload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectUrl\" }\n ],\n type: \"find\"\n });\n\n return (\n
\n \n \n {\n props.effectActive === true && (\n
\n )\n }\n \n
\n )\n\n}\n\nBannerCard.defaultProps = {\n\n variant: 'rounded',\n effectActive: false,\n disableBorderRadius: false,\n showLoader: false,\n\n}\n\nexport default BannerCard;\nexport {\n BannerCardLoader\n}\n","import TValidations from \"cms/types/TValidations\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport ContactUsServiceAction from \"cms/actions/components/ContactForm/ContactUsServiceAction\";\nimport MessagePublisherAction from \"core/actions/common/MessagePublisherAction\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IBase from \"cms/interfaces/IBase\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport RMDRTextBox from \"./RMDRTextBox\";\nimport RMDRTextArea from \"./RMDRTextArea\";\nimport RMDRButton from \"./RMDRButton\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport { EContactUsStatus } from \"cms/enums/EContactUsStatus\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MNPG008.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const contactUsPostPayload:IBase = state.ContactFormStore.ContactUsStore.post.payload;\n const contactUsPostError:TValidations[]|null = state.ContactFormStore.ContactUsStore.post.error?.value;\n const contactUsPostIsLoading:boolean = state.ContactFormStore.ContactUsStore.post.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n contactUsPostPayload,\n contactUsPostError,\n contactUsPostIsLoading,\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG008.mapDispatchToProps\");\n\n const messagePublisherAction = new MessagePublisherAction(dispatch);\n const contactUsServiceAction = new ContactUsServiceAction(dispatch);\n\n return {\n\n _post: ( payload: { nameSurname:string|null, email:string|null, title:string|null, message:string|null }, webApplicationLanguageCode:string ) => {\n contactUsServiceAction.post({ servicePayload: { body: { ...payload, status: EContactUsStatus.NEW }, language: webApplicationLanguageCode } });\n },\n\n _showMessage: ( message:string ) => { \n messagePublisherAction.showSuccessMessage(message);\n },\n\n _showErrorMessage: ( message:string ) => { \n messagePublisherAction.showErrorMessage(message);\n },\n\n _clean: () => {\n contactUsServiceAction.postClean();\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TContactForm = {\n\n languageVersions?:ILanguageVersionList[]|null;\n labelClassName?:string;\n\n} & T;\n\n/* component */\nfunction ContactFormLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction ContactForm ( props:TContactForm ) {\n console.log(\"ContactForm.rendered: \", props);\n\n const yourNameString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"yourNameString\" }\n ],\n type: \"find\"\n });\n const enterYourNameString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"enterYourNameString\" }\n ],\n type: \"find\"\n });\n\n const yourEmailString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"yourEmailString\" }\n ],\n type: \"find\"\n });\n const enterYourEmailString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"enterYourEmailString\" }\n ],\n type: \"find\"\n });\n\n const titleString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"titleString\" }\n ],\n type: \"find\"\n });\n const enterYourTitleString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"enterYourTitleString\" }\n ],\n type: \"find\"\n });\n\n const messageString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"messageString\" }\n ],\n type: \"find\"\n });\n const writeYourMessageHereString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"writeYourMessageHereString\" }\n ],\n type: \"find\"\n });\n\n const sendMessageString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"sendMessageString\" }\n ],\n type: \"find\"\n });\n const messageSendingString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"messageSendingString\" }\n ],\n type: \"find\"\n });\n const messageHasBeenSentString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"messageHasBeenSentString\" }\n ],\n type: \"find\"\n });\n\n const [disabled, setDisabled] = useState(false);\n\n const contactUsNameSurname = useRef(null);\n const contactUsEmail = useRef(null);\n const contactUsMessage = useRef(null);\n const contactUsTitle = useRef(null);\n\n useEffect(\n () => {\n \n return function cleanup(){\n\n props._clean();\n\n }\n \n }, [ ]\n )\n\n useEffect(\n () => {\n if ( !isEmpty(props.contactUsPostPayload?.id) ) {\n contactUsNameSurname.current.value = \"\";\n contactUsEmail.current.value = \"\";\n contactUsMessage.current.value = \"\";\n contactUsTitle.current.value = \"\";\n\n props._clean();\n setDisabled(false);\n props._showMessage(messageHasBeenSentString?.value||\"\");\n \n }\n }, [ props.contactUsPostPayload ]\n )\n\n useEffect(\n () => {\n if ( !isEmpty(props.contactUsPostError) ) {\n setDisabled(false);\n props._showErrorMessage(\"An error occurred\");\n }\n }, [ props.contactUsPostError ]\n )\n\n function onSubmit(event:React.SyntheticEvent) { \n event.preventDefault();\n\n setDisabled(true);\n\n const target = event.target as typeof event.target & {\n nameSurname: { value: string },\n title: { value: string },\n email: { value: string },\n message: { value: string },\n };\n\n const payload:any = {\n nameSurname: target.nameSurname.value,\n email: target.email.value,\n message: target.message.value,\n title: target.title.value,\n }\n props._post(payload, props.webApplicationLanguageCode);\n }\n\n return (\n \n
\n\n
\n
\n \n \n
\n\n
\n \n \n
\n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n
\n\n
\n \n );\n};\n\nconst Component = React.memo(ContactForm, ( prevProps:TContactForm , nextProps:TContactForm ) => {\n console.log(\"MNPG008.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.contactUsPostPayload !== nextProps.contactUsPostPayload\n || prevProps.contactUsPostError !== nextProps.contactUsPostError\n );\n});\n\nexport default connector(Component);\n","import { IoLocationSharp, IoMail, IoCallSharp } from 'react-icons/io5';\n// interfaces\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport ILanguageVersionDetail from 'cms/interfaces/ILanguageVersionDetail';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\n\n\n/* types */\ntype TContactInfoBlock = {\n\n title?:string|null;\n languageVersions?:ILanguageVersionList[]|ILanguageVersionDetail[]|null;\n className?:string;\n\n}\n\n\n/* component */\nfunction ContactInfoBlockLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction ContactInfoBlock ( props:TContactInfoBlock ) {\n\n if ( props.languageVersions ) {\n\n const addressString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"addressString\" }\n ],\n type: \"find\"\n });\n const address = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"address\" }\n ],\n type: \"find\"\n });\n const phoneString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"phoneString\" }\n ],\n type: \"find\"\n });\n const phone = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"phone\" }\n ],\n type: \"find\"\n });\n const emailString = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"emailString\" }\n ],\n type: \"find\"\n });\n const email = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"email\" }\n ],\n type: \"find\"\n });\n\n return (\n
\n \n {\n props.title &&\n (\n

\n {props.title}\n

\n )\n }\n\n
\n
\n \n
\n
\n
\n {addressString?.value}\n
\n
\n {address?.value}\n
\n
\n
\n\n
\n
\n \n
\n
\n
\n {emailString?.value}\n
\n
\n {email?.value}\n
\n
\n
\n\n
\n
\n \n
\n
\n
\n {phoneString?.value}\n
\n
\n {phone?.value}\n
\n
\n
\n\n
\n );\n }\n\n return \n};\n\nexport default ContactInfoBlock;\n","import cn from \"classnames\";\n\n\ninterface Props {\n\tclassName?: string;\n\tchildren?: any;\n\tel?: HTMLElement;\n\tclean?: boolean;\n}\n\nfunction ContainerV2 ( props:Props ) {\n\tconst rootClassName = cn(props.className, {\n\t\t\"mx-auto max-w-[1920px] px-2.5\": !props.clean,\n\t});\n\n\tlet Component: React.ComponentType<\n\t\tReact.HTMLAttributes\n\t> = props.el as any;\n\n\treturn {props.children};\n};\n\nContainerV2.defaultProps = {\n el: \"div\",\n};\n\nexport default ContainerV2;\n","interface DividerProps {\n className?: string;\n}\n\nfunction Divider ( props:DividerProps) {\n return
;\n};\n\nDivider.defaultProps = {\n\n className: \"mb-12 lg:mb-14 xl:mb-16 pb-0.5 lg:pb-1 xl:pb-0\",\n}\n\nexport default Divider;\n","import _ClientMainPageItemsServiceAction from \"cms/actions/services/ClientMainPageItemsServiceAction\";\n\n\nconst screenCode = \"207\";\nclass ClientMainPageItemsServiceAction extends _ClientMainPageItemsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ClientMainPageItemsServiceAction;\n","import React, { useEffect, useState } from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport Lodash from \"lodash\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// components\nimport MainPageLayout from \"components/MainPageLayout\";\n// actions\nimport CoreAction from \"core/actions/common/CoreAction\";\nimport ClientMainPageItemsServiceAction from \"cms/actions/components/MainPageItems/ClientMainPageItemsServiceAction\";\n// interfaces\nimport IOdataQueryOptions from \"core/interfaces/IOdataQueryOptions\";\nimport IClientMainPageItemList from \"cms/interfaces/IClientMainPageItemList\";\nimport ILayoutList from \"cms/interfaces/ILayoutList\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\n// enums\nimport ELayoutTypeDataSource from \"cms/enums/ELayoutType\";\nimport { EContentStatus } from \"cms/enums/EContentStatus\";\n// types\nimport TValidations from \"cms/types/TValidations\";\n// styles\nimport 'react-tabs/style/react-tabs.css';\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MainPageItems.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const mainPageItemsListPayload:IClientMainPageItemList[] = state.MainPageItemStore.ClientMainPageItemsStore.list?.payload;\n const mainPageItemsListError:TValidations[]|null = state.MainPageItemStore.ClientMainPageItemsStore.list?.error;\n const mainPageItemsListIsLoading:boolean = state.MainPageItemStore.ClientMainPageItemsStore.list?.isLoading;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n const siteSettingDetailError:TValidations[]|null = state.SiteSettingStore.details?.error;\n const siteSettingDetailIsLoading:boolean = state.SiteSettingStore.details?.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n mainPageItemsListPayload,\n mainPageItemsListError,\n mainPageItemsListIsLoading,\n\n siteSettingDetailPayload,\n siteSettingDetailError,\n siteSettingDetailIsLoading,\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MainPageItems.mapDispatchToProps\");\n\n const clientMainPageItemsServiceAction = new ClientMainPageItemsServiceAction(dispatch);\n const coreAction = new CoreAction(dispatch);\n\n return {\n // list\n _listClientMainPageItems: ( mapLayoutName:string, webApplicationLanguageCode:string ) => {\n let queryOptions:IOdataQueryOptions = {\n filter: [`mapLayoutName eq '${mapLayoutName}'`, \"and\", `status eq ${EContentStatus.ACTIVE}`],\n orderBy: [\"order asc\"],\n top: 1000\n };\n\n clientMainPageItemsServiceAction.list({ servicePayload: { queryOptions, language: webApplicationLanguageCode } });\n },\n\n _hideLoader: () => {\n coreAction.hideLoader();\n },\n\n _showLoader: () => {\n coreAction.showLoader();\n },\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TMainPageItems = {\n\n mapLayoutName?: string;\n \n} & T;\n\n\n/* component */\nfunction MainPageItemsLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction MainPageItems (props: TMainPageItems) {\n console.log(\"MainPageItems.rendered: \", props);\n\n const [ mainPageParentLayouts, setMainPageParentLayouts ] = useState(null);\n\n useEffect(\n () => {\n \n return function cleanup() {\n props._showLoader();\n }\n\n }, []\n )\n\n useEffect(\n () => {\n if ( props.mapLayoutName && !Lodash.isEmpty(props.mapLayoutName) ) \n props._listClientMainPageItems( props.mapLayoutName, props.webApplicationLanguageCode );\n }, [ props.mapLayoutName ]\n )\n\n useEffect (\n () => {\n\n if ( props.mainPageItemsListPayload && !Lodash.isEmpty(props.mainPageItemsListPayload) && !props.mainPageItemsListIsLoading ) {\n setMainPageParentLayouts(props.mainPageItemsListPayload?.filter((item:IClientMainPageItemList) => item.parentId === null ))\n }\n\n if ( !props.mainPageItemsListIsLoading ) {\n props._hideLoader();\n }\n\n }, [ props.mainPageItemsListIsLoading ]\n )\n \n if ( mainPageParentLayouts && !Lodash.isEmpty(mainPageParentLayouts) && !props.mainPageItemsListIsLoading ) {\n\n return (\n <>\n {\n mainPageParentLayouts?.map((item:IClientMainPageItemList) => { \n const layout = item.layouts.find((item:ILayoutList) => item.layoutType === ELayoutTypeDataSource.MAIN_PAGE.id );\n\n if ( layout ) {\n const Layout = MainPageLayout[layout.layoutName];\n const childs = props.mainPageItemsListPayload?.filter((cItem:IClientMainPageItemList) => cItem.parentId === item.id);\n \n if ( Layout ) {\n return \n }\n }\n\n return null;\n })\n }\n \n )\n\n }\n\n return null;\n \n}\n\nMainPageItems.defaultProps = {\n\n mapLayoutName: \"MNPGGRP_001\"\n\n}\n\nconst Component = React.memo(MainPageItems, (prevProps:TMainPageItems, nextProps:TMainPageItems) => {\n console.log(\"MainPageItems.memo\", { prevProps, nextProps });\n return !(prevProps.mainPageItemsListIsLoading !== nextProps.mainPageItemsListIsLoading );\n});\n\nexport default connector(Component);\n","import React from \"react\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\n// types\nimport { TMainPageLayout } from \"../type\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport TValidations from \"cms/types/TValidations\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MNPG001.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n const siteSettingDetailError:TValidations[]|null = state.SiteSettingStore.details?.error;\n const siteSettingDetailIsLoading:boolean = state.SiteSettingStore.details?.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n siteSettingDetailError,\n siteSettingDetailIsLoading,\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG001.mapDispatchToProps\");\n\n return {\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction MMNPG001Loader () {\n\n return (\n <>\n )\n\n}\n\nconst MNPG001 = ( props:TMainPageLayout ) => {\n console.log(\"MNPG001.rendered\", props)\n\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.MAIN_PAGE_ITEM },\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n return (\n <>\n )\n\n}\n\n\nconst Component = React.memo(MNPG001, ( prevProps:TMainPageLayout, nextProps:TMainPageLayout ) => {\n console.log(\"MNPG001.memo\", { prevProps, nextProps });\n\n return !(false)\n});\n\nexport default Component;","import Text from 'components/Text';\n\n\ninterface Props {\n sectionHeading?: string|null\n // categorySlug?: string\n className?: string\n textClassName?: string\n}\n\nfunction SectionHeader(props: Props) {\n\n return (\n
\n {\n props.sectionHeading && \n (\n \n {props.sectionHeading}\n \n )\n }\n {/* {\n props.categorySlug && \n (\n \n {t['text-see-all-product']}\n \n )\n } */}\n
\n )\n}\n\nSectionHeader.defaultProps = {\n\n sectionHeading: '',\n className: 'pb-0.5 mb-4 md:mb-5 lg:mb-6 2xl:mb-7 3xl:mb-8',\n textClassName: '',\n\n}\n\nexport default SectionHeader\n","\nimport Text from 'components/Text'\nimport { FaLink } from 'react-icons/fa';\nimport cn from 'classnames';\nimport RMDRLink from 'components/RMDRLink';\nimport RMDRImage from 'components/RMDRImage';\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport IResource from 'cms/interfaces/IResource';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\nimport ILanguageVersionDetail from 'cms/interfaces/ILanguageVersionDetail';\nimport ERedirectType from 'cms/enums/ERedirectType';\n\n\ntype TIconCard = {\n\n languageVersion?:ILanguageVersionList|ILanguageVersionDetail|null;\n resources?: IResource[];\n navigationURL?: string|null;\n redirectUrl?: string|null;\n hasDestinationNavigation?: boolean;\n redirectType?: ERedirectType;\n effectActive?: boolean;\n variant?: 'default' | 'modern' | 'circle' | 'list';\n\n onClick?:(event:any) => void;\n}\n\nfunction IconCardLoader ( props: TIconCard ) {\n\n return (\n
\n )\n\n}\n\nfunction IconCard ( props: TIconCard ) {\n console.log(\"IconCard.rendered: \", props);\n\n return (\n \n \n \n {\n props.effectActive === true && props.variant === 'circle' && (\n <>\n
\n
\n \n
\n \n )\n }\n
\n\n \n \n {props.languageVersion?.name}\n {/* {\n description &&\n

\n {description}\n

\n } */}\n \n\n {/* {(props.variant === 'modern' || props.variant === 'list') && (\n \n {`${tags?.length} ${t['text-brands']}, ${productCount}+ ${t['text-products']}`}\n \n )} */}\n
\n\n {\n props.effectActive === true && props.variant !== 'circle' && (\n <>\n
\n
\n \n
\n \n )\n }\n \n );\n};\n\nIconCard.deaultProps = {\n\n effectActive: false,\n variant: 'default',\n\n}\n\nexport default IconCard;\nexport {\n IconCardLoader\n}\n","import _ContentMetricsServiceAction from \"core/actions/services/metrics/ContentMetricsServiceAction\";\n\n\nconst screenCode = \"213\";\nclass ContentMetricsServiceAction extends _ContentMetricsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ContentMetricsServiceAction;\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\n// actions\nimport { TMainPageLayout } from \"../type\";\n// interfaces\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport SectionHeader from \"components/SectionHeader\";\nimport IconCard, { IconCardLoader } from 'components/IconCard';\nimport ContainerV2 from \"components/ContainerV2\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport IClientCatalogCategoryList from \"ecommerce/interfaces/IClientCatalogCategoryList\";\nimport NoData from \"components/NoData\";\nimport { isEmpty } from \"lodash\";\nimport ContentMetricsServiceAction from \"cms/actions/components/MainPageLayouts/ContentMetricsServiceAction\";\nimport { EContentMetricsType } from \"core/enums/EContentMetricsType\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MNPG002.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const catalogCategoryListPayload:IClientCatalogCategoryList[] = state.ClientCatalogCategoryStore.list.payload;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n \n catalogCategoryListPayload,\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG002.mapDispatchToProps\");\n\n const contentMetricsServiceAction = new ContentMetricsServiceAction(dispatch);\n\n return {\n\n _viewEvent: ( contentId:string, webApplicationLanguageCode:string ) => {\n contentMetricsServiceAction.post({ \n servicePayload: { \n body: {\n contentId: contentId,\n metricType: EContentMetricsType.VIEV\n }, \n language: webApplicationLanguageCode \n } \n });\n },\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction MMNPG002Loader () {\n\n return (\n
\n {\n Array.from({length:6}).map((item) => (\n
\n \n
\n ))\n }\n
\n )\n\n}\n\nfunction MNPG002 ( props:TMainPageLayout ) {\n console.log(\"MNPG002.rendered\", props)\n\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.MAIN_PAGE_ITEM },\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT },\n ],\n type: \"find\"\n });\n\n return (\n \n
\n \n\n {/* {\n props.isLoading && isEmpty(props.error) && (\n \n )\n } */}\n\n {\n isEmpty(props.childsPayload) && (\n \n )\n }\n \n
\n {\n props.childsPayload?.map((item, index) => {\n\n const languageVersion = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const redirectUrl = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectUrl\" }\n ],\n type: \"find\"\n });\n\n const hierarchyId = props.catalogCategoryListPayload.find((x) => x.id === item.contentId)?.hierarchyId;\n const navigationURL = `/${props.webApplicationLanguageISOCode}/shop?c=${hierarchyId}`;\n\n return (\n
\n { props._viewEvent(item.contentId, props.webApplicationLanguageCode) }}\n />\n
\n )\n })\n }\n\n
\n\n
\n
\n )\n\n}\n\nconst Component = React.memo(MNPG002, ( prevProps: TMainPageLayout, nextProps: TMainPageLayout ) => {\n console.log(\"MNPG002.memo\", { prevProps, nextProps });\n\n return !(true);\n});\n\nexport default connector(Component);\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;t\ntype TUserTemplate = {\n\n isMessenger: boolean;\n isWhatsApp: boolean;\n\n workingHoursStart?: string|null;\n workingHoursEnd?: string|null;\n\n}\n\n// functions\nconst isUserActive = ( workingHoursStart?:string|null, workingHoursEnd?:string|null ) => {\n\n let date = new Date();\n\n let startHours = new Date(`2000-01-01T${workingHoursStart}:00Z`);\n let currentHours = new Date(`2000-01-01T${String(date.getHours()).padStart(2,\"0\")}:${String(date.getMinutes()).padStart(2,\"0\")}:00Z`);\n let endHours = new Date(`2000-01-01T${workingHoursEnd}:00Z`);\n\n return currentHours > startHours && currentHours < endHours;\n\n}\n\n/* component */\nconst UserTemplate = (props:TMainPageLayout) => {\n console.log(\"UserTemplate: \", props);\n const [ userStatus, setUserStatus ] = useState(false);\n\n useEffect(\n () => {\n let intervalId:any = null;\n if ( props.workingHoursStart && props.workingHoursEnd ) {\n setUserStatus(isUserActive(props.workingHoursStart, props.workingHoursEnd))\n intervalId = setInterval(\n () => { setUserStatus(isUserActive(props.workingHoursStart, props.workingHoursEnd))}, 5000\n )\n } else {\n setUserStatus(true);\n }\n\n return () => {\n if ( intervalId ) clearInterval(intervalId);\n }\n }, []\n )\n\n return (\n <>\n {\n props.childsPayload?.map((item) => {\n const languageVersions = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters:[{ view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }],\n type: \"find\"\n });\n\n const userTitle = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"userTitle\" }],\n type: \"find\"\n });\n\n let _href = \"#\";\n if ( props.isWhatsApp && userStatus ) {\n const phoneNumber = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"phone\" }],\n type: \"find\"\n });\n _href = `https://web.whatsapp.com/send/?phone=${phoneNumber?.value}&text&type=phone_number&app_absent=0`;\n }\n else if ( props.isMessenger && userStatus ) {\n const messengerId = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"messengerId\" }],\n type: \"find\"\n });\n _href = `https://m.me/${messengerId?.value}`;\n }\n\n const isAvatarExists = ApplicationDocumentSelector({ \n resources: item.resources,\n resourceType: EResourceType.OUTER_IMAGE,\n type: \"find\"\n }) !== null;\n\n return (\n \n
\n
\n { \n isAvatarExists && (\n \n )\n }\n {\n !isAvatarExists && (\n \n )\n }\n
\n
\n
{languageVersions?.name}
\n
{userTitle?.value}
\n
\n
\n { props.isWhatsApp && }\n { props.isMessenger && }\n
\n
\n
\n )\n })\n }\n \n )\n\n}\n\nfunction MNPG003 ( props:TMainPageLayout ) {\n console.log(\"MNPG003.rendered\", props)\n\n const [ popover, setPopover ] = useState(null);\n\n const chatWithUsString = LanguageVersionSelector({\n languageVersions: props.parentPayload.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"chatWithUsString\" }],\n type: \"find\"\n });\n\n const startConversation = LanguageVersionSelector({\n languageVersions: props.parentPayload.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"startConversation\" }],\n type: \"find\"\n });\n\n const workingHoursString = LanguageVersionSelector({\n languageVersions: props.parentPayload.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"workingHoursString\" }],\n type: \"find\"\n });\n\n const workingHoursEnd = LanguageVersionSelector({\n languageVersions: props.parentPayload.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"workingHoursEnd\", isActive: true}],\n type: \"find\"\n });\n\n const workingHoursStart = LanguageVersionSelector({\n languageVersions: props.parentPayload.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"workingHoursStart\", isActive: true }],\n type: \"find\"\n });\n\n return (\n <>\n {\n props.childsPayload.map((item, index) => {\n \n const languageVersions = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters:[{ view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }],\n type: \"find\"\n });\n\n const isMessenger = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"socialMediaChatboxMessenger\" }],\n type: \"find\"\n }) !== null;\n\n const isWhatsApp = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters:[{ view: EView.META_DATA, name: \"socialMediaChatboxWhatsapp\" }],\n type: \"find\"\n }) !== null;\n\n const _style = { bottom: `${96+(index*(56))}px`, zIndex: 15-index }\n\n return (\n
\n \n \n
\n
\n
\n { isWhatsApp && }\n { isMessenger && }\n
\n
\n
{startConversation?.value}
\n
\n
\n
\n {\n workingHoursString?.value && (\n

\n {workingHoursString?.value}\n

\n )\n }\n \n
\n x.parentId === item.id)} \n siteSettingPayload={props.siteSettingDetailPayload} \n isMessenger={isMessenger} \n isWhatsApp={isWhatsApp} \n workingHoursStart={workingHoursStart?.value}\n workingHoursEnd={workingHoursEnd?.value}\n />\n
\n
\n
\n );\n })\n }\n \n )\n\n}\n\nconst Component = React.memo(MNPG003, ( prevProps: TMainPageLayout, nextProps: TMainPageLayout ) => {\n console.log(\"MNPG003.memo\", { prevProps, nextProps });\n return !(prevProps.mainPageItemsListPayload !== nextProps.mainPageItemsListPayload);\n});\n\nexport default connector(Component);\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport CoreDefaults from \"core/Defaults\";\nimport { isEmpty } from \"lodash\";\n// components\nimport RMDRLink from \"components/RMDRLink\";\nimport RenderText from \"components/RenderText\";\nimport ContainerV2 from \"components/ContainerV2\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport { EResourceType } from \"cms/enums/EResourceType\";\n// actions\nimport { TMainPageLayout } from \"../type\";\n// interfaces\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\n// style\nimport { IoCall } from 'react-icons/io5';\n// utilities\nimport ApplicationDocumentSelector from \"cms/utilities/ApplicationDocumentSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport IApplicationDocument from \"cms/interfaces/IApplicationDocument\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MNPG004.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG004.mapDispatchToProps\");\n\n return {\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction MMNPG004Loader () {\n\n return (\n <>\n )\n\n}\n\nfunction MNPG004 ( props:TMainPageLayout ) {\n console.log(\"MNPG004.rendered\", props)\n\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.MAIN_PAGE_ITEM },\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const phone = LanguageVersionSelector({\n languageVersions: props.childsPayload?.[0]?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"phone\" }\n ],\n type: \"find\"\n });\n\n const parallax = ApplicationDocumentSelector({\n resources: props.parentPayload.resources,\n resourceType: EResourceType.PARALLAX,\n type: \"find\"\n });\n\n const child01LanguageVersion = LanguageVersionSelector({\n languageVersions: props.childsPayload?.[1]?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const child01RediretURL = LanguageVersionSelector({\n languageVersions: props.childsPayload?.[1]?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectURL\" }\n ],\n type: \"find\"\n });\n\n return (\n \n
\n

{phone?.value}

\n

{parentLanguageVersion?.name}

\n \n {\n !isEmpty(child01LanguageVersion) && child01LanguageVersion &&\n (\n

\n \n

\n )\n }\n
\n
\n )\n\n}\n\nconst Component = React.memo(MNPG004, ( prevProps: TMainPageLayout, nextProps: TMainPageLayout ) => {\n console.log(\"MNPG004.memo\", { prevProps, nextProps });\n return true;\n});\n\nexport default connector(Component);\n","\n// interfaces\nimport RMDRImage from \"components/RMDRImage\";\nimport RMDRLink from \"components/RMDRLink\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport IClientMainPageItemList from \"cms/interfaces/IClientMainPageItemList\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\n\n\ntype TBrandCard = {\n\n payload:IClientMainPageItemList,\n index: number;\n\n}\n\nfunction BrandCard ( props:TBrandCard ) {\n\n const languageVersion = LanguageVersionSelector({\n languageVersions: props.payload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const redirectUrl = LanguageVersionSelector({\n languageVersions: props.payload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectUrl\" }\n ],\n type: \"find\"\n });\n\n function calcBGColor(index:number) {\n\n if ( Math.floor(props.index/6)%2 === 0 ) {\n return props.index%2===0?\"bg-[#fcf5ef]\":\"bg-[#f9f9f9]\";\n } else {\n return props.index%2===0?\"bg-[#f9f9f9]\":\"bg-[#fcf5ef]\";\n }\n\n }\n\n return (\n \n \n \n \n \n \n\n
\n
\n \n
\n \n );\n\n};\n\nexport default BrandCard;\n","import React, { useState } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// components\nimport BrandCard from \"components/BrandCard\";\nimport SectionHeader from \"components/SectionHeader\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\n// actions\nimport { TMainPageLayout } from \"../type\";\n// interfaces\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport ContainerV2 from \"components/ContainerV2\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport NoData from \"components/NoData\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MNPG005.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG005.mapDispatchToProps\");\n\n return {\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction MMNPG005Loader () {\n\n return (\n <>\n )\n\n}\n\nfunction MNPG005 ( props:TMainPageLayout ) {\n console.log(\"MNPG005.rendered\", props)\n\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.MAIN_PAGE_ITEM },\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n \n return (\n \n
\n \n {\n isEmpty(props.childsPayload) ? (\n \n ) : (\n \n {\n props.childsPayload.map((item, index) => (\n \n ))\n }\n
\n )\n }\n
\n \n );\n\n}\n\nconst Component = React.memo(MNPG005, ( prevProps: TMainPageLayout, nextProps: TMainPageLayout ) => {\n console.log(\"MNPG005.memo\", { prevProps, nextProps });\n\n return !(false);\n});\n\nexport default connector(Component);\n","import cn from 'classnames';\nimport IClientMainPageItemList from 'cms/interfaces/IClientMainPageItemList';\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport BannerCard, { BannerCardLoader } from './BannerCard';\n\n\ntype TBannerProps = {\n\n payload?: IClientMainPageItemList[];\n\n className?: string;\n classNameInner?: string;\n\n variant?: 'rounded' | 'default';\n effectActive?: boolean;\n disableBorderRadius?:boolean\n\n}\n\nfunction SaleBannerGridLoader () {\n\n return (\n
\n
\n \n \n
\n
\n )\n\n}\n\nfunction SaleBannerGrid ( props:TBannerProps ) {\n\n return (\n
\n
\n {\n props.payload?.map((item, index) => \n \n )\n }\n
\n
\n );\n\n};\n\nSaleBannerGrid.defaultProps = {\n\n variant: 'default',\n\n}\n\nexport default SaleBannerGrid;\nexport {\n SaleBannerGridLoader\n}","import { isEmpty, reject } from \"lodash\";\nimport cn from 'classnames';\n// components\nimport BannerCard, { BannerCardLoader } from 'components/BannerCard';\n// interfaces\nimport IClientMainPageItemList from 'cms/interfaces/IClientMainPageItemList';\nimport IClientSliderItemList from 'cms/interfaces/IClientSliderItemList';\nimport { EResourceType } from \"cms/enums/EResourceType\";\n\ntype TBannerProps = {\n\n payload?: IClientMainPageItemList[]|IClientSliderItemList[]|null;\n\n className?: string;\n classNameInner?: string;\n\n variant?: 'rounded' | 'default';\n effectActive?: boolean;\n disableBorderRadius?: boolean;\n\n}\n\nfunction BannerBlockLoader () {\n\n return (\n <>\n
\n \n \n \n
\n \n )\n\n}\n\nfunction BannerBlock ( props:TBannerProps ) {\n\n return (\n <>\n \n
\n { \n reject([props.payload?.[0], props.payload?.[2], props.payload?.[1]], isEmpty)?.map((item, index) => \n \n )\n } \n
\n \n );\n \n}\n\nBannerBlock.defaultProps = {\n\n variant: 'default',\n\n}\n\nexport default BannerBlock\nexport {\n BannerBlockLoader\n}\n","import React, { useState } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\n// actions\nimport TValidations from \"cms/types/TValidations\";\nimport { TMainPageLayout } from \"../type\";\n// interfaces\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport ContainerV2 from \"components/ContainerV2\";\nimport SaleBannerGrid, { SaleBannerGridLoader } from \"components/SaleBannerGrid\";\nimport BannerBlock, { BannerBlockLoader } from \"components/BannerBlock\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport NoData from \"components/NoData\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MNPG006.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG006.mapDispatchToProps\");\n\n return {\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction MMNPG006Loader () {\n\n return (\n
\n \n \n
\n )\n\n}\n\nfunction MNPG006 ( props:TMainPageLayout ) {\n console.log(\"MNPG006.rendered\", props)\n\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.MAIN_PAGE_ITEM },\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n return (\n \n {\n isEmpty(props.childsPayload) ? (\n \n ) : (\n <>\n \n \n \n )\n }\n \n )\n\n}\n\nconst Component = React.memo(MNPG006, ( prevProps: TMainPageLayout, nextProps: TMainPageLayout ) => {\n console.log(\"MNPG006.memo\", { prevProps, nextProps });\n\n return !(false);\n});\n\nexport default connector(Component);\n","import _StockStatusServiceAction from \"ecommerce/actions/services/enum/StockStatusServiceAction\";\n\n\nconst screenCode = \"405\";\nclass StockStatusServiceAction extends _StockStatusServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default StockStatusServiceAction;\n","import _ClientProductsServiceAction from \"ecommerce/actions/services/ClientProductsServiceAction\";\nimport EActionType from \"core/enums/EActionType\";\nimport { IActionGetOdata } from \"core/interfaces/IActionGet\";\nimport IActionRunParams from \"core/interfaces/IActionRunParams\";\n\n\nconst screenCode = \"405\";\nclass ClientProductsServiceAction extends _ClientProductsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n async search ( params: IActionGetOdata ) {\n\n this.fetching(EActionType.GET);\n\n const serviceParams: IActionRunParams = {\n args: {\n ...params.args, \n actionType: EActionType.GET\n },\n servicePayload: params.servicePayload\n }\n\n this.executeService( this.service.search.bind(this.service), serviceParams );\n \n }\n\n}\n\nexport default ClientProductsServiceAction;\n","const ProductViewIcon = ({ className = '' }) => {\n return (\n \n \n \n )\n}\n\nexport default ProductViewIcon\n","const ProductWishIcon = ({ className = '' }) => {\n return (\n \n \n \n )\n}\n\nexport default ProductWishIcon\n","const ProductCompareIcon = ({ className = '' }) => {\n return (\n \n \n \n )\n}\n\nexport default ProductCompareIcon\n","import cn from 'classnames';\nimport ProductViewIcon from 'components/Icons/product-view-icon';\nimport ProductWishIcon from 'components/Icons/product-wish-icon';\nimport ProductCompareIcon from 'components/Icons/product-compare-icon';\nimport IClientProductList from 'ecommerce/interfaces/IClientProductList';\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EContentType } from 'cms/enums/EContentType';\nimport RMDRImage from 'components/RMDRImage';\nimport EStockStatus from 'ecommerce/enums/EStockStatus';\nimport { isEmpty } from 'lodash';\nimport IEnum from 'core/interfaces/IEnum';\nimport SanitizeHTMLString from 'cms/utilities/SanitizeHTMLString';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\nimport { MdKeyboardDoubleArrowDown } from 'react-icons/md';\nimport RMDRLink from './RMDRLink';\nimport ERedirectType from 'cms/enums/ERedirectType';\n\n\ntype TProductProps = {\n payload: IClientProductList;\n stockStatusDataSource?:IEnum[];\n className?: string;\n contactClassName?: string;\n imageContentClassName?: string;\n variant?:\n | 'grid'\n | 'gridSlim'\n | 'list'\n | 'listSmall'\n | 'gridModern'\n | 'gridModernWide'\n | 'gridTrendy'\n | 'rounded'\n | 'circle';\n imgWidth?: number;\n imgHeight?: number;\n imgLoading?: 'eager' | 'lazy';\n hideProductDescription?: boolean;\n showCategory?: boolean;\n showRating?: boolean;\n bgTransparent?: boolean;\n bgGray?: boolean;\n demoVariant?: 'ancient';\n disableBorderRadius?: boolean;\n disableActionButton?: boolean;\n onClick: ( event: React.MouseEvent ) => void;\n}\n\nfunction ProductCardV2Loader ( props: { variant?:string, className?:string } ) {\n\n return (\n \n )\n\n}\n\n\nfunction ProductCardV2 ( props:TProductProps ) {\n\n const languageVersion = LanguageVersionSelector({\n languageVersions: props.payload.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const variant = props.payload?.variants?.[0];\n\n return (\n \n \n \n\n
\n {variant?.discountedPercentage &&\n (props.variant === 'gridModernWide' ||\n props.variant === 'gridModern' ||\n props.variant === 'gridTrendy') && (\n \n

\n -\n {variant?.discountedPercentage}% OFF\n

\n
\n )}\n\n {/* {props.product?.isNewArrival &&\n (props.variant === 'gridModernWide' ||\n props.variant === 'gridModern' ||\n props.variant === 'gridTrendy') && (\n \n

\n New Arrival\n

\n
\n )} */}\n
\n\n {props.variant === 'gridModernWide' && (\n
\n \n \n \n
\n )}\n
\n \n {/* {(props.variant === 'gridModern' ||\n props.variant === 'gridModernWide' ||\n props.variant === 'gridTrendy') && (\n
\n \n \n \n \n 4.5\n \n {\n props.payload.stockStatus === EStockStatus.OUT_OF_STOCK && !isEmpty(props.stockStatusDataSource) && \n (\n \n {props.stockStatusDataSource?.find((item) => item.id === props.payload.stockStatus)?.name}\n \n )\n }\n
\n )} */}\n {/* {!!(props.showCategory || props.showRating) && (\n
\n {!!props.showCategory && (\n \n Category\n \n )}\n {!!props.showRating && }\n
\n )} */}\n \n {languageVersion?.name}\n \n {!props.hideProductDescription && languageVersion?.value && (\n

\n )}\n \n {\n variant?.discountedPercentage &&\n

\n \n {variant?.discountedPercentage}%\n
\n }\n {\n variant?.discountedPercentage ? (\n \n {variant?.currencySign||\"$\"}{variant?.discountedPrice}\n \n ) : (\n \n {\n variant?.price ? `${variant?.currencySign||\"$\"}${variant?.price}` : \"\"\n }\n \n )\n }\n {\n variant?.discountedPercentage && (\n \n {\n variant?.price ? `${variant?.currencySign||\"$\"}${variant?.price}` : \"\"\n }\n \n )\n }\n
\n
\n\n {/* {(!props.disableActionButton && (props.variant === 'gridTrendy' || props.variant === 'gridModern')) && (\n
\n \n \n
\n )} */}\n\n
\n );\n\n};\n\n\nProductCardV2.defaultProps = {\n\n className: '',\n contactClassName: '',\n imageContentClassName: '',\n variant: 'list',\n imgWidth: 340,\n imgHeight: 440,\n hideProductDescription: false,\n showCategory: false,\n showRating: false,\n bgTransparent: false,\n bgGray: false,\n disableBorderRadius: false,\n\n}\n\nexport default ProductCardV2;\nexport {\n ProductCardV2Loader\n}","import React, { useEffect } from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// components\nimport ContainerV2 from \"components/ContainerV2\";\nimport SectionHeader from \"components/SectionHeader\";\nimport IconCard from \"components/IconCard\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\n// actions\nimport TValidations from \"cms/types/TValidations\";\nimport { TMainPageLayout } from \"../type\";\n// interfaces\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport ECommerceAction from 'ecommerce/actions/common/ECommerceAction';\nimport StockStatusServiceAction from \"ecommerce/actions/components/MainPageLayouts/MNPG007/StockStatusServiceAction\";\nimport ClientProductsServiceAction from \"ecommerce/actions/components/MainPageLayouts/MNPG007/ClientProductsServiceAction\";\nimport IEnum from \"core/interfaces/IEnum\";\nimport IOdataQueryOptions from \"core/interfaces/IOdataQueryOptions\";\nimport { EContentStatus } from \"cms/enums/EContentStatus\";\nimport IClientProductList from \"ecommerce/interfaces/IClientProductList\";\nimport { isEmpty } from \"lodash\";\nimport ERedirectType from \"cms/enums/ERedirectType\";\nimport ProductCardV2, { ProductCardV2Loader } from \"components/ProductCardV2\";\nimport Countdown from 'react-countdown';\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport NoData from \"components/NoData\";\nimport { HiOutlineNewspaper } from \"react-icons/hi2\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MNPG007.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const productListPayload:any = state.MNPG007Store.ClientProductsStore.get;\n const productListError:TValidations[]|null = state.MNPG007Store.ClientProductsStore.get.error?.value;\n const productListIsLoading:boolean = state.MNPG007Store.ClientProductsStore.get.isLoading;\n\n const stockStatusPayload:IEnum[] = state.MarketPlaceStore.StockStatusStore.list.payload;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n\n productListPayload,\n productListError,\n productListIsLoading,\n\n stockStatusPayload,\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG007.mapDispatchToProps\");\n\n const clientProductsServiceAction = new ClientProductsServiceAction(dispatch);\n const stockStatusServiceAction = new StockStatusServiceAction(dispatch);\n const ecommerceAction = new ECommerceAction(dispatch);\n\n return {\n\n _list: ( tagId:string, webApplicationLanguageCode:string, destinationName:string ) => {\n\n let queryOptions:IOdataQueryOptions = {\n filter: [`status eq ${EContentStatus.ACTIVE}`, \"and\", `tags/any(d: d/id eq ${tagId})`],\n count: true,\n top: 8,\n skip: 0,\n orderBy: [\"id desc\"]\n };\n\n clientProductsServiceAction.search({ \n servicePayload: { queryOptions, language: webApplicationLanguageCode },\n args: { storeMapOptions: [{ destinationName, sourceName: \"value\" }] } \n });\n \n },\n\n _getStockStatus: ( webApplicationLanguageCode:string ) => {\n\n stockStatusServiceAction.list({\n servicePayload: {\n queryOptions: {\n top: 1000\n },\n language: webApplicationLanguageCode \n }\n })\n\n },\n\n _openProductDetailPopup: ( value:IClientProductList ) => {\n\n ecommerceAction.openProductDetailPopup(value);\n \n },\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\ntype TWrapperProps = {\n sectionHeading?: string|null;\n className?: string;\n date?: any;\n disableSectionPadding?: boolean;\n disableSectionBorder?: boolean;\n hideCountdown?: boolean;\n TwoXlCols?: number;\n itemGap?: number;\n demoVariant?: 'ancient';\n disableBorderRadius?: boolean;\n bgGray?: boolean;\n}\n\ntype TProductsProps = {\n limit?: number;\n itemVariant?:\n | 'grid'\n | 'gridSlim'\n | 'list'\n | 'listSmall'\n | 'gridModern'\n | 'gridModernWide'\n | 'gridTrendy'\n | 'rounded'\n | 'circle';\n} & TWrapperProps & PropsFromRedux;\n\n\n\n/* component */\nfunction MMNPG007Loader () {\n\n return (\n
\n
\n {\n Array.from({ length:4 }).map((item) => (\n \n ))\n }\n
\n
\n )\n\n}\n\nconst renderer = ({ days, hours, minutes, seconds, completed }: any) => {\n if (completed) {\n // Render a completed state\n return Time Over!;\n } else {\n // Render a countdown\n return (\n
\n
\n \n {days}\n \n days\n
\n
\n \n {hours}\n \n hours\n
\n
\n \n {minutes}\n \n mins\n
\n
\n \n {seconds}\n \n secs\n
\n
\n );\n }\n};\n\nfunction ProductFlashSaleWrapper({\n children,\n className,\n disableSectionBorder,\n disableSectionPadding,\n sectionHeading,\n hideCountdown,\n date,\n}: React.PropsWithChildren) {\n return (\n <>\n \n
\n \n {!hideCountdown && (\n \n )}\n
\n {children}\n
\n \n );\n}\n\nfunction MNPG007 ( props:TMainPageLayout ) {\n console.log(\"MNPG007.rendered\", props)\n\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.MAIN_PAGE_ITEM },\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n const mainPageItemLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.TAB, contentType: EContentType.MAIN_PAGE_ITEM }\n ],\n type: \"filter\"\n });\n\n const tagId = mainPageItemLanguageVersion?.[0]?.value;\n const key = `P${tagId}`\n\n\n useEffect(\n () => {\n \n props._getStockStatus(props.webApplicationLanguageCode);\n\n if ( !isEmpty(mainPageItemLanguageVersion?.[0]) ) {\n const tagId = mainPageItemLanguageVersion[0].value;\n if ( tagId && !isEmpty(tagId) ) {\n props._list( tagId, props.webApplicationLanguageCode, `P${tagId}` ); \n }\n }\n\n }, [props.parentPayload]\n )\n\n function onClick ( event: React.MouseEvent, value:IClientProductList ) {\n\n props._openProductDetailPopup(value);\n\n }\n\n return (\n \n \n\n {\n props.productListIsLoading && isEmpty(props.productListError) && ( \n \n )\n }\n \n {\n !props.productListIsLoading && isEmpty(props.productListPayload?.[key as any]) && (\n }\n className=\"flex flex-col items-center justify-center h-80 bg-gray-100\"\n textClassName=\"text-center text-xl\"\n siteSettingPayload={props.siteSettingDetailPayload}\n />\n )\n }\n\n {\n mainPageItemLanguageVersion && !isEmpty(mainPageItemLanguageVersion) && !isEmpty(props.productListPayload?.[key as any]) &&\n (\n \n {\n props.productListPayload?.[key as any]?.map((item:IClientProductList, index:number) => (\n { onClick(event, item) }}\n />\n ))\n }\n \n ) \n }\n \n \n \n )\n\n}\n\nconst Component = React.memo(MNPG007, ( prevProps: TMainPageLayout, nextProps: TMainPageLayout ) => {\n console.log(\"MNPG007.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.productListPayload !== nextProps.productListPayload\n || prevProps.productListIsLoading !== nextProps.productListIsLoading\n );\n});\n\nexport default connector(Component);\n","import React, { useRef, useState } from \"react\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\n// types\nimport { TMainPageLayout } from \"../type\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport TValidations from \"cms/types/TValidations\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport ContainerV2 from \"components/ContainerV2\";\nimport Divider from \"components/Divider\";\nimport ContactInfoBlock from \"components/ContactInfoBlock\";\nimport ContactForm from \"components/ContactForm\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MNPG008.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n const siteSettingDetailError:TValidations[]|null = state.SiteSettingStore.details?.error;\n const siteSettingDetailIsLoading:boolean = state.SiteSettingStore.details?.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n siteSettingDetailError,\n siteSettingDetailIsLoading,\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG008.mapDispatchToProps\");\n\n return {\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction MMNPG008Loader () {\n\n return (\n <>\n )\n\n}\n\nfunction MNPG008 ( props: TMainPageLayout ) {\n console.log(\"MNPG008.rendered\", props) \n\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.MAIN_PAGE_ITEM },\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const weAreHereToHelp = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"weAreHereToHelp\" }\n ],\n type: \"find\"\n });\n const contactOurTeam = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"contactOurTeam\" }\n ],\n type: \"find\"\n });\n\n return (\n
\n \n
\n
\n

\n {weAreHereToHelp?.value}\n

\n

\n {contactOurTeam?.value}\n

\n\n \n\n \n
\n\n \n\n
\n \n
\n
\n
\n
\n )\n\n}\n\nconst Component = React.memo(MNPG008, ( prevProps:TMainPageLayout , nextProps:TMainPageLayout ) => {\n console.log(\"MNPG008.memo\", { prevProps, nextProps });\n\n return !(prevProps.parentPayload !== nextProps.parentPayload);\n});\n\nexport default connector(Component);\n","import { useState } from 'react';\nimport CoreDefaults from \"core/Defaults\";\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { FreeMode, Navigation, Pagination } from 'swiper/modules';\nimport { isEmpty } from 'lodash';\nimport ProductCard from \"components/ProductCard\";\nimport cn from \"classnames\";\n\n// types\nimport { TGallery } from '../type';\n// \nimport \"../gallery07.scss\";\nimport IClientProductList from 'ecommerce/interfaces/IClientProductList';\nimport IClientMainPageItemList from 'cms/interfaces/IClientMainPageItemList';\nimport BrandCard from 'components/BrandCard';\n\ntype TVariant = \"circle\"\n | \"rounded\"\n | \"listSmall\"\n | \"grid\"\n | \"gridSlim\"\n | \"list\"\n | \"gridModern\"\n | \"gridModernWide\"\n | \"gridTrendy\"\n | undefined;\n\ntype TGallery07 = {\n\n payload: IClientMainPageItemList[];\n\n hideProductDescription?: boolean;\n showCategory?: boolean;\n showRating?: boolean;\n disableBorderRadius?: boolean;\n\n variant?: TVariant;\n demoVariant?: \"ancient\";\n\n};\n\n\nfunction Gallery07 ( props:TGallery ) {\n\n if ( !isEmpty(props.payload) ) {\n return (\n \n {\n props.payload?.map((item, index) => (\n \n \n \n ))\n }\n \n ); \n }\n}\n\nGallery07.defaultProps = {\n\n variant: \"grid\",\n hideProductDescription: false,\n showCategory: false,\n showRating: false,\n disableBorderRadius: false,\n\n}\n\nexport default Gallery07;\n","import React, { useState } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// components\nimport BrandCard from \"components/BrandCard\";\nimport SectionHeader from \"components/SectionHeader\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\n// actions\nimport { TMainPageLayout } from \"../type\";\n// interfaces\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport ContainerV2 from \"components/ContainerV2\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport NoData from \"components/NoData\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport Gallery07 from \"components/RMDRGallery/components/Gallery07\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MNPG009.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG009.mapDispatchToProps\");\n\n return {\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction MMNPG009Loader () {\n\n return (\n <>\n )\n\n}\n\nfunction MNPG009 ( props:TMainPageLayout ) {\n console.log(\"MNPG009.rendered\", props)\n\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.MAIN_PAGE_ITEM },\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n \n return (\n \n
\n \n {\n isEmpty(props.childsPayload) ? (\n \n ) : (\n \n )\n }\n
\n
\n );\n\n}\n\nconst Component = React.memo(MNPG009, ( prevProps: TMainPageLayout, nextProps: TMainPageLayout ) => {\n console.log(\"MNPG009.memo\", { prevProps, nextProps });\n\n return !(false);\n});\n\nexport default connector(Component);\n","import React from \"react\";\nimport SectionHeader from \"components/SectionHeader\";\nimport cn from \"classnames\";\nimport IClientProductList from \"ecommerce/interfaces/IClientProductList\";\nimport ProductCard, { ProductCardLoader } from \"./ProductCard\";\nimport IEnum from \"core/interfaces/IEnum\";\n\n\ntype TVariant = \"circle\"\n | \"rounded\"\n | \"listSmall\"\n | \"grid\"\n | \"gridSlim\"\n | \"list\"\n | \"gridModern\"\n | \"gridModernWide\"\n | \"gridTrendy\"\n | undefined;\n\n\ntype TProductsProps = {\n\n sectionHeading?: string|null;\n payload?: IClientProductList[];\n stockStatusDataSource?:IEnum[];\n className?: string;\n\n variant?: TVariant;\n imgWidth?: number | string;\n imgHeight?: number | string;\n\n hideProductDescription?: boolean;\n showCategory?: boolean;\n showRating?: boolean;\n demoVariant?: \"ancient\";\n disableBorderRadius?: boolean;\n\n onClick?: ( event: React.MouseEvent, value:IClientProductList ) => void;\n\n}\n\n\nfunction ProductsBlockLoader ( props: { variant?:string, length:number } ) {\n\n return (\n \n {\n Array.from({ length: props.length }).map((item) => ())\n }\n \n )\n\n}\n\nfunction ProductsBlock ( props: Readonly ) {\n\n return (\n
\n {\n props.sectionHeading && \n }\n\n \n {\n props.payload?.map((item, index) => (\n props.onClick && props.onClick(event, item)}\n />\n ))\n }\n
\n \n );\n \n};\n\n\nProductsBlock.defaultProps = {\n\n variant: \"grid\",\n limit: 10,\n hideProductDescription: false,\n showCategory: false,\n showRating: false,\n disableBorderRadius: false,\n\n}\n\nexport default ProductsBlock;\nexport {\n ProductsBlockLoader\n}","import { useState } from 'react';\nimport CoreDefaults from \"core/Defaults\";\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { FreeMode, Navigation, Pagination } from 'swiper/modules';\nimport { isEmpty } from 'lodash';\nimport ProductCard from \"components/ProductCard\";\n\n// types\nimport { TGallery } from '../type';\n// \nimport \"../gallery06.scss\";\nimport IClientProductList from 'ecommerce/interfaces/IClientProductList';\n\ntype TVariant = \"circle\"\n | \"rounded\"\n | \"listSmall\"\n | \"grid\"\n | \"gridSlim\"\n | \"list\"\n | \"gridModern\"\n | \"gridModernWide\"\n | \"gridTrendy\"\n | undefined;\n\ntype TGallery06 = {\n\n payload: IClientProductList[];\n\n hideProductDescription?: boolean;\n showCategory?: boolean;\n showRating?: boolean;\n disableBorderRadius?: boolean;\n\n variant?: TVariant;\n demoVariant?: \"ancient\";\n\n};\n\n\nfunction Gallery06 ( props:TGallery ) {\n\n if ( !isEmpty(props.payload) ) {\n return (\n \n {\n props.payload?.map((item, index) => (\n \n \n \n ))\n }\n \n ); \n }\n}\n\nGallery06.defaultProps = {\n\n variant: \"grid\",\n hideProductDescription: false,\n showCategory: false,\n showRating: false,\n disableBorderRadius: false,\n\n}\n\nexport default Gallery06;\n","import _ClientProductsServiceAction from \"ecommerce/actions/services/ClientProductsServiceAction\";\nimport EActionType from \"core/enums/EActionType\";\nimport { IActionGetOdata } from \"core/interfaces/IActionGet\";\nimport IActionRunParams from \"core/interfaces/IActionRunParams\";\n\n\nconst screenCode = \"406\";\nclass ClientProductsServiceAction extends _ClientProductsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n async search ( params: IActionGetOdata ) {\n\n this.fetching(EActionType.GET);\n\n const serviceParams: IActionRunParams = {\n args: {\n ...params.args, \n actionType: EActionType.GET\n },\n servicePayload: params.servicePayload\n }\n\n this.executeService( this.service.search.bind(this.service), serviceParams );\n \n }\n\n}\n\nexport default ClientProductsServiceAction;\n","import React, { useEffect } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// components\nimport SectionHeader from \"components/SectionHeader\";\nimport { ProductsBlockLoader } from \"components/ProductsBlock\";\nimport ContainerV2 from \"components/ContainerV2\";\nimport NoData from \"components/NoData\";\nimport Gallery06 from \"components/RMDRGallery/components/Gallery06\";\nimport { HiOutlineNewspaper } from \"react-icons/hi2\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport { EContentStatus } from \"cms/enums/EContentStatus\";\n// actions\nimport ClientProductsServiceAction from \"ecommerce/actions/components/MainPageLayouts/MNPG015/ClientProductsServiceAction\";\n// interfaces\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport IClientProductList from \"ecommerce/interfaces/IClientProductList\";\nimport IOdataQueryOptions from \"core/interfaces/IOdataQueryOptions\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n// types\nimport TValidations from \"cms/types/TValidations\";\nimport { TMainPageLayout } from \"../type\";\n// utilities\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\n\n\nfunction mapStateToProps ( state: any, props:TMainPageLayout<{}> ) {\n console.log(\"MNPG015.mapStateToProps: \", state, props);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const tagId = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, contentType: EContentType.DEFAULT, name: \"tagId\" }\n ],\n type: \"find\"\n });\n\n const productListPayload:IClientProductList[]|undefined = state.MNPG015Store.ClientProductsStore.get?.[`_${tagId?.value}`];\n const productListError:TValidations[]|null = state.MNPG015Store.ClientProductsStore.get.error?.value;\n const productListIsLoading:boolean = state.MNPG015Store.ClientProductsStore.get.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n \n productListPayload,\n productListError,\n productListIsLoading,\n\n tagId: tagId?.value,\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MNPG015.mapDispatchToProps\");\n\n const clientProductsServiceAction = new ClientProductsServiceAction(dispatch);\n\n return {\n\n _list: ( tagId:string, webApplicationLanguageCode:string, destinationName:string ) => {\n\n let queryOptions:IOdataQueryOptions = {\n filter: [`status eq ${EContentStatus.ACTIVE}`, \"and\", `tags/any(d: d/id eq ${tagId})`],\n top: 1000,\n orderBy: [\"name asc\", \"price asc\"],\n };\n\n clientProductsServiceAction.search({ \n servicePayload: { queryOptions, language: webApplicationLanguageCode },\n args: { storeMapOptions: [{ destinationName, sourceName: \"value\" }] } \n });\n \n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction MMNPG015Loader () {\n\n return (\n
\n \n
\n )\n\n}\n\nfunction MNPG015 ( props:TMainPageLayout ) {\n console.log(\"MNPG015.rendered\", props)\n\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.MAIN_PAGE_ITEM },\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n useEffect(\n () => {\n\n if ( props.tagId && !isEmpty(props.tagId) ) {\n props._list( props.tagId, props.webApplicationLanguageCode, `_${props.tagId}` );\n }\n\n }, []\n )\n\n return (\n \n
\n \n {\n props.productListIsLoading && isEmpty(props.productListError) && (\n \n )\n }\n {\n !props.productListIsLoading && isEmpty(props.productListPayload) && (\n }\n className=\"flex flex-col items-center justify-center h-80 bg-gray-100\"\n textClassName=\"text-center text-xl\"\n siteSettingPayload={props.siteSettingDetailPayload}\n />\n )\n }\n {\n props.productListPayload && !isEmpty(props.productListPayload) && (\n \n )\n }\n
\n
\n )\n\n}\n\nconst Component = React.memo(MNPG015, ( prevProps: TMainPageLayout, nextProps: TMainPageLayout ) => {\n console.log(\"MNPG015.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.productListPayload !== nextProps.productListPayload\n );\n});\n\nexport default connector(Component);\n","import MNPG_001 from \"./components/MNPG_001\";\nimport MNPG_002 from \"./components/MNPG_002\";\nimport MNPG_003 from \"./components/MNPG_003\";\nimport MNPG_004 from \"./components/MNPG_004\";\nimport MNPG_005 from \"./components/MNPG_005\";\nimport MNPG_006 from \"./components/MNPG_006\";\nimport MNPG_007 from \"./components/MNPG_007\";\nimport MNPG_008 from \"./components/MNPG_008\";\nimport MNPG_009 from \"./components/MNPG_009\";\nimport MNPG_015 from \"./components/MNPG_015\";\n\nconst MainPageLayout:any = {\n \n MNPG_001,\n MNPG_002,\n MNPG_003,\n MNPG_004,\n MNPG_005,\n MNPG_006,\n MNPG_007,\n MNPG_008,\n MNPG_009,\n MNPG_015,\n \n}\n\nexport default MainPageLayout;\n","import _ClientMainPageItemsServiceAction from \"cms/actions/services/ClientMainPageItemsServiceAction\";\n\n\nconst screenCode = \"212\";\nclass ClientMainPageItemsServiceAction extends _ClientMainPageItemsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ClientMainPageItemsServiceAction;\n","import React, { useEffect, useState } from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport Lodash, { isEmpty } from \"lodash\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// actions\nimport ClientMainPageItemsServiceAction from \"cms/actions/components/MainPagePopup/ClientMainPageItemsServiceAction\";\n// interfaces\nimport IOdataQueryOptions from \"core/interfaces/IOdataQueryOptions\";\nimport IClientMainPageItemList from \"cms/interfaces/IClientMainPageItemList\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\n// enums\nimport { EContentStatus } from \"cms/enums/EContentStatus\";\n// types\nimport TValidations from \"cms/types/TValidations\";\n// styles\nimport 'react-tabs/style/react-tabs.css';\nimport RMDRPopup from \"components/RMDRPopup\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport SanitizeHTMLString from \"cms/utilities/SanitizeHTMLString\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MainPagePopup.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const mainPagePopupListPayload:IClientMainPageItemList = state.MainPagePopupStore.ClientMainPageItemsStore.list?.payload?.[0];\n const mainPagePopupListError:TValidations[]|null = state.MainPagePopupStore.ClientMainPageItemsStore.list?.error;\n const mainPagePopupListIsLoading:boolean = state.MainPagePopupStore.ClientMainPageItemsStore.list?.isLoading;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n const siteSettingDetailError:TValidations[]|null = state.SiteSettingStore.details?.error;\n const siteSettingDetailIsLoading:boolean = state.SiteSettingStore.details?.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n mainPagePopupListPayload,\n mainPagePopupListError,\n mainPagePopupListIsLoading,\n\n siteSettingDetailPayload,\n siteSettingDetailError,\n siteSettingDetailIsLoading,\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MainPagePopup.mapDispatchToProps\");\n\n const clientMainPageItemsServiceAction = new ClientMainPageItemsServiceAction(dispatch);\n\n return {\n // list\n _listClientMainPagePopup: ( mapLayoutName:string, webApplicationLanguageCode:string ) => {\n let queryOptions:IOdataQueryOptions = {\n filter: [`mapLayoutName eq '${mapLayoutName}'`, \"and\", `status eq ${EContentStatus.ACTIVE}`],\n orderBy: [\"order asc\"],\n top: 1\n };\n\n clientMainPageItemsServiceAction.list({ servicePayload: { queryOptions, language: webApplicationLanguageCode } });\n }\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TMainPagePopup = {\n\n mapLayoutName?: string;\n \n} & T;\n\n\n/* component */\nfunction MainPagePopupLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction MainPagePopup (props: TMainPagePopup) {\n console.log(\"MainPagePopup.rendered: \", props);\n\n const [ popupStatus, setPopupStatus ] = useState(true);\n\n useEffect(\n () => {\n\n if ( props.mapLayoutName && !Lodash.isEmpty(props.mapLayoutName) ) {\n props._listClientMainPagePopup( props.mapLayoutName, props.webApplicationLanguageCode );\n }\n \n }, [ props.mapLayoutName ]\n )\n \n if ( props.mainPagePopupListPayload && !Lodash.isEmpty(props.mainPagePopupListPayload) && !props.mainPagePopupListIsLoading ) {\n\n const languageVersion = LanguageVersionSelector({\n languageVersions: props.mainPagePopupListPayload.languageVersions,\n filters:[\n { view: EView.INNER, viewType: EViewType.TEXT, contentType:EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const redirectUrl = LanguageVersionSelector({\n languageVersions: props.mainPagePopupListPayload.languageVersions,\n filters:[\n { view: EView.META_DATA, viewType: EViewType.TEXT, contentType:EContentType.DEFAULT, name: \"redirectUrl\" }\n ],\n type: \"find\"\n })\n\n return (\n \n {\n redirectUrl?.value && !isEmpty(redirectUrl.value) ? (\n \n ) : (\n
\n )\n }\n \n )\n }\n\n return null;\n \n}\n\nMainPagePopup.defaultProps = {\n\n mapLayoutName: \"MNPGGRP_003\"\n\n}\n\nconst Component = React.memo(MainPagePopup, (prevProps:TMainPagePopup, nextProps:TMainPagePopup) => {\n console.log(\"MainPagePopup.memo\", { prevProps, nextProps });\n return !(prevProps.mainPagePopupListIsLoading !== nextProps.mainPagePopupListIsLoading );\n});\n\nexport default connector(Component);\n","import React from \"react\";\n// interfaces\nimport IClientSiteSettingDetail from 'cms/interfaces/IClientSiteSettingDetail';\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\n//\nimport { HiOutlineNewspaper } from \"react-icons/hi2\";\n\n\ntype TNoData = {\n\n icon?: React.ReactNode;\n iconClassName?:string;\n\n className?: string;\n textClassName?: string;\n\n siteSettingPayload?: IClientSiteSettingDetail;\n \n}\n\nfunction NoData ( props:TNoData ) {\n\n const languageVersion = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { name: \"noDataString\" }\n ],\n type: \"find\"\n });\n\n return (\n
\n { \n props.icon ? \n ( props.icon) : \n ( )\n }\n

{ languageVersion?.value }

\n
\n );\n\n}\n\nexport default NoData;\nexport type {\n TNoData\n};","import cn from 'classnames';\nimport IClientProductList from 'ecommerce/interfaces/IClientProductList';\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EContentType } from 'cms/enums/EContentType';\nimport RMDRImage from 'components/RMDRImage';\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport SanitizeHTMLString from 'cms/utilities/SanitizeHTMLString';\nimport IEnum from 'core/interfaces/IEnum';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport { MdKeyboardDoubleArrowDown } from 'react-icons/md';\nimport RMDRLink from './RMDRLink';\nimport ERedirectType from 'cms/enums/ERedirectType';\nimport GetQuote from 'components/GetQuote';\n\n\ntype TProductCard = {\n payload: IClientProductList;\n stockStatusDataSource?:IEnum[];\n\n className?: string;\n contactClassName?: string;\n imageContentClassName?: string;\n imageClassName?: string;\n variant?:\n | 'grid'\n | 'gridSlim'\n | 'list'\n | 'listSmall'\n | 'gridModern'\n | 'gridModernWide'\n | 'gridTrendy'\n | 'rounded'\n | 'circle';\n imgWidth?: number;\n imgHeight?: number;\n hideProductDescription?: boolean;\n showCategory?: boolean;\n showRating?: boolean;\n bgTransparent?: boolean;\n bgGray?: boolean;\n demoVariant?: 'ancient';\n disableBorderRadius?: boolean;\n disableActionButton?: boolean;\n // onClick: ( event: React.MouseEvent ) => void;\n}\n\nfunction ProductCardLoader ( props: { variant?:string, className?:string } ) {\n\n return (\n \n )\n\n}\n\nfunction ProductCard(props: TProductCard ) {\n\n const languageVersion = LanguageVersionSelector({\n languageVersions: props.payload.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const variant = props.payload?.variants?.[0];\n\n return (\n \n {/* */}\n \n\n \n\n
\n {\n props.payload.variants?.[0]?.discountedPercentage &&\n (props.variant === 'gridModernWide' || props.variant === 'gridModern' || props.variant === 'gridTrendy') && \n (\n \n

\n -\n {props.payload.variants?.[0]?.discountedPercentage}% OFF\n

\n
\n )\n }\n\n {/* {\n props.product?.isNewArrival &&\n (props.variant === 'gridModernWide' ||\n props.variant === 'gridModern' ||\n props.variant === 'gridTrendy') && (\n \n

\n New Arrival\n

\n
\n )\n } */}\n
\n\n {/* {!props.disableActionButton && props.variant === 'gridModernWide' && (\n
\n \n \n \n
\n )} */}\n\n {\n props.payload.variants?.length > 1 ? (\n
\n { \n props.payload.variants.slice(0,2).map((item) => (\n \n ))\n }\n {\n props.payload.variants.length > 2 ? (\n \n ) : null\n }\n
\n ) : null\n }\n
\n \n {/* {(props.variant === 'gridModern' ||\n props.variant === 'gridModernWide' ||\n props.variant === 'gridTrendy') && (\n
\n \n \n \n \n 4.5\n \n {\n !isEmpty(props.stockStatusDataSource) && (\n \n props.payload.stockStatus === EStockStatus.OUT_OF_STOCK && (\n \n {props.stockStatusDataSource?.find((item) => item.id === props.payload.stockStatus)?.name}\n \n ),\n\n props.payload.stockStatus === EStockStatus.IN_STOCK && (\n \n {props.stockStatusDataSource?.find((item) => item.id === props.payload.stockStatus)?.name}\n \n )\n \n )\n }\n
\n )} */}\n {/* {!!(props.showCategory || props.showRating) && (\n
\n {!!props.showCategory && (\n \n Category\n \n )}\n {!!props.showRating && }\n
\n )} */}\n \n {languageVersion?.name}\n \n {\n !props.hideProductDescription && languageVersion?.value && \n (\n

\n )\n }\n \n {\n variant?.discountedPercentage !== null && (\n

\n \n {variant?.discountedPercentage}%\n
\n )\n }\n {\n variant?.discountedPercentage !== null && (\n \n {variant?.currencySign||\"$\"}{variant?.discountedPrice}\n \n )\n }\n {\n variant?.discountedPercentage === null && (variant?.price !== null && variant?.price > 0) && (\n \n {\n variant?.price ? `${variant?.currencySign||\"$\"}${variant?.price}` : \"\"\n }\n \n )\n }\n {\n variant?.discountedPercentage !== null && (\n \n {\n variant?.price ? `${variant?.currencySign||\"$\"}${variant?.price}` : \"\"\n }\n \n )\n }\n \n \n\n {/* {(!props.disableActionButton && (props.variant === 'gridTrendy' || props.variant === 'gridModern')) && (\n
\n \n \n
\n )} */}\n \n )\n}\n\nProductCard.defaultProps = {\n\n className: '',\n contactClassName: '',\n imageContentClassName: '',\n variant: 'list',\n imgWidth: 340,\n imgHeight: 440,\n hideProductDescription: false,\n showCategory: false,\n showRating: false,\n bgTransparent: false,\n bgGray: false,\n disableBorderRadius: false,\n disableActionButton: false,\n\n}\n\nexport default ProductCard;\nexport {\n ProductCardLoader\n}\n","\ntype TRMDRButton = {\n \n value?: string|null;\n disabledValue?: string|null;\n\n type?: \"submit\" | \"reset\" | \"button\" | undefined;\n onClick: (event:any) => void;\n\n className?: string;\n iconClassName?: string;\n disabled: boolean;\n\n}\n\nfunction RMDRButton (props: TRMDRButton) {\n\n return (\n \n );\n \n}\n\nRMDRButton.defaultProps = {\n\n value: \"\",\n onClick: (event:any) => {},\n className: \"\",\n disabled: false\n\n}\n\nexport default RMDRButton;\nexport type {\n TRMDRButton\n};\n","const EMimeType = {\n\n AVIF: { id: 1, name: \"image/avif\" },\n BMP: { id: 2, name: \"image/bmp\" },\n GIF: { id: 3, name: \"image/gif\" },\n JPEG: { id: 4, name: \"image/jpeg\" },\n JPG: { id: 5, name: \"image/jpg\" },\n PNG: { id: 6, name: \"image/png\" },\n SVG: { id: 7, name: \"image/svg+xml\" },\n TIFF: { id: 8, name: \"image/tiff\" },\n WEBP: { id: 9, name: \"image/webp\" }\n\n}\n\nexport default EMimeType;\n","import { useEffect, useState, CSSProperties } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport CoreDefaults from 'core/Defaults';\n// utilities\nimport SanitizeHTMLString from \"cms/utilities/SanitizeHTMLString\";\nimport ApplicationDocumentSelector from \"cms/utilities/ApplicationDocumentSelector\";\n// enums\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport ESizeType from \"cms/enums/ESizeType\";\nimport EMimeType from \"cms/enums/EMimeType\";\n// interfaces\nimport IResource from 'cms/interfaces/IResource';\nimport IApplicationDocument from \"cms/interfaces/IApplicationDocument\";\n// image\nimport defaultImage from \"assets/img/default-image.webp\";\nimport TMimeType from \"cms/types/TMimeType\";\n\n\ntype TRMDRImage = {\n\n id?:string;\n src?: string;\n\n resources?: IResource[];\n \n resourceType?: EResourceType;\n sizeType?: ESizeType;\n\n alt?: string|null;\n title?: string|null;\n\n style?: CSSProperties;\n className?: string; \n\n width?: number|string;\n height?: number|string;\n\n disableLazyLoading?:boolean;\n\n}\n\ntype TImagePayload = {\n \n imageSource:any;\n alt:string;\n title:string;\n contentType:TMimeType;\n width:number;\n height:number;\n isLoad:boolean;\n _isError:boolean;\n\n}\n\n\nfunction RMDRImage ( props:Readonly ) {\n\n const [ payload, setPayload ] = useState(null);\n\n useEffect(\n () => {\n \n const applicationDocument = ApplicationDocumentSelector({ \n resources: props.resources,\n resourceType: props.resourceType,\n sizeType: props.sizeType,\n type: \"find\"\n });\n\n if ( !isEmpty(applicationDocument) && applicationDocument ) {\n\n const imageURL = `${CoreDefaults.cdn}/${applicationDocument.filePath}`;\n if ( applicationDocument.contentType === EMimeType.SVG.name ) {\n\n let _imageSource:any = null;\n let _isError:boolean = false;\n\n fetch(\n imageURL, \n { method: \"GET\", mode: 'cors' }\n )\n .then(res => res.text())\n .then((value:any) => _imageSource = value)\n .catch(() => _isError = true)\n .then(() => setPayload({ imageSource: _imageSource, alt:props.alt||applicationDocument.name, title:props.title||applicationDocument.name, contentType: applicationDocument.contentType, width: applicationDocument.width, height: applicationDocument.height, isLoad: true, _isError: _isError }))\n \n }\n else {\n\n setPayload({ imageSource: imageURL, alt:props.alt||applicationDocument.name, title:props.title||applicationDocument.name, contentType: applicationDocument.contentType, width: applicationDocument.width, height: applicationDocument.height, isLoad: true, _isError: false});\n\n }\n\n }\n\n }, [ props.resources ]\n );\n\n function replaceImage (error:any) {\n \n error.target.path = defaultImage;\n \n }\n\n if ( payload?.imageSource && !isEmpty(payload?.imageSource) ) {\n if ( payload.contentType === EMimeType.SVG.name ) {\n if ( payload.imageSource && payload.isLoad && !payload._isError ) {\n return
;\n }\n }\n else {\n return {payload.alt}\n }\n }\n else if ( props?.src && !isEmpty(props?.src) ) {\n\n return {props.alt||undefined}\n\n\n }\n\n return null;\n\n}\n\nexport default RMDRImage;\nexport type {\n TRMDRImage\n};\n","import { CSSProperties, JSXElementConstructor, ReactNode } from \"react\";\nimport { isEmpty,isNumber, reject } from \"lodash\";\nimport { Link } from \"react-router-dom\";\n// enums\nimport ERedirectType from 'cms/enums/ERedirectType';\n\ntype Variant = 'a' | 'div';\n\ntype TRMDRLink = {\n\n title?: string|null;\n text?:string|null;\n\n hasNavigationDestination?: boolean|null;\n isShowAlways?: boolean|null;\n\n navigationURL?: string|null;\n\n redirectType?: ERedirectType;\n redirectUrl?: string|null;\n\n className?: string;\n style?: CSSProperties;\n\n children?: ReactNode;\n\n onClick?: (event:any) => void;\n\n variant?: Variant;\n}\n\nfunction RMDRLink ( props:Readonly ) {\n\n const _target = ((props.redirectType === ERedirectType.STAY_CURRENT_PAGE || !isNumber(props.redirectType)) && \"_self\") || (props.redirectType === ERedirectType.REDIRECT_NEW_TAB && \"_blank\") || \"\";\n \n if ( props.hasNavigationDestination && !isEmpty(props.redirectUrl) && props.redirectUrl ) {\n\n return \n { reject( [props.text, props.children, props.redirectUrl], isEmpty )?.[0] }\n \n \n }\n\n if ( props.hasNavigationDestination && !isEmpty(props.navigationURL) && props.navigationURL ) {\n \n return \n { reject( [props.text, props.children, props.navigationURL], isEmpty )?.[0] }\n \n\n }\n\n if ( !isEmpty(props.onClick) ) {\n\n const componentsMap: {\n [P in Variant]: React.ComponentType | string;\n } = {\n a: 'a',\n div: 'div'\n };\n \n const Component: JSXElementConstructor | React.ReactElement | React.ComponentType | string = componentsMap![props.variant!];\n\n return \n { reject( [props.text, props.children], isEmpty )?.[0] }\n \n \n }\n\n if ( props.isShowAlways ) {\n\n const componentsMap: {\n [P in Variant]: React.ComponentType | string;\n } = {\n a: 'a',\n div: 'div'\n };\n \n const Component: JSXElementConstructor | React.ReactElement | React.ComponentType | string = componentsMap![props.variant!];\n\n return \n { reject( [props.text, props.redirectUrl, props.children], isEmpty )?.[0] }\n ;\n\n }\n \n return null;\n \n}\n\nRMDRLink.defaultProps = {\n\n hasNavigationDestination : false,\n isShowAlways: false,\n className : \"\",\n variant: \"a\"\n\n};\n\nexport default RMDRLink;\nexport type {\n TRMDRLink\n};\n","import React, { useEffect, useState } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport cn from \"classnames\";\n// components\nimport { IoMdClose } from \"react-icons/io\";\n\n\ntype TRMDRPopup = {\n\n isOpen?: boolean;\n\n showButton?: boolean;\n buttonTitle?: string;\n\n enableClickOutside?: boolean;\n enableCloseButton?: boolean;\n\n className?: string;\n contentClassName?: string;\n\n children: React.ReactNode;\n\n}\n\nfunction RMDRPopup ( props:Readonly ) {\n console.log(\"RMDRPopup: \", props);\n\n const [ isShow, setIsShow ] = useState(\"hidden\");\n const [ popupRef, setPopupRef ] = useState();\n\n useEffect(() => {\n \n if ( !isEmpty(popupRef) ) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return function cleanup() {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n }\n\n }, [ popupRef, props.enableClickOutside ])\n\n useEffect(\n () => {\n\n if ( props.isOpen === true ) {\n onShow();\n } else if ( props.isOpen === false ) {\n onClose()\n }\n\n }, [ props.isOpen ]\n )\n\n function onClose ( event?:any ) {\n\n if ( props.enableCloseButton ) {\n setIsShow(\"hidden\");\n }\n\n }\n\n function onShow ( event?:any ) {\n\n setIsShow(\"flex\");\n\n }\n\n function handleClickOutside (event:any) {\n\n console.log(\"enableClickOutside: \", props.enableClickOutside)\n\n if (popupRef && !popupRef.contains(event.target) && props.enableClickOutside) {\n onClose( event );\n }\n \n }\n\n return (\n <>\n {\n props.showButton && (\n \n {props.buttonTitle}\n \n )\n }\n
\n
\n \n \n
{setPopupRef(payload)}} \n className={cn(\n \"relative rounded-lg shadow\",\n props.contentClassName\n )}\n >\n {props.children}\n
\n
\n
\n \n )\n\n};\n\nRMDRPopup.defaultProps = {\n\n isOpen: undefined,\n\n showButton: false,\n buttonTitle: \"\",\n\n enableClickOutside: true,\n enableCloseButton: true,\n\n className: \"\",\n contentClassName: \"bg-white p-4\"\n\n\n}\n\nexport default RMDRPopup;","import { useState, useEffect } from 'react';\n// enums\nimport ESeverityLevel from 'cms/enums/ESeverityLevel';\n// types\nimport TValidations from 'cms/types/TValidations';\n\n\ntype TRMDRTextArea = {\n\n name: string;\n title: string|null;\n rmdrRef?: any;\n \n value: string|null;\n defaultValue: string|null;\n placeholder: string|null;\n rows: number;\n\n errors: TValidations[]|null;\n isDisabled: boolean;\n isAutoFocus: boolean;\n\n onValueChanged: (name:string, value?:string|null) => void;\n\n className?: string;\n disabled: boolean;\n\n}\n\nfunction RMDRTextArea ( props:TRMDRTextArea ) {\n \n const [validation, setValidation] = useState(null);\n\n useEffect(\n () => {\n let __value = props.errors?.find((item:any) => item.propertyName === props.name);\n\n if ( __value ) { \n let className = \"\";\n let inputClassName = \"\"\n\n if (__value.severity === ESeverityLevel.ERROR) className = \"bg-red-100 rounded-t-none text-red-700 p-2 rounded text-sm\"\n else if (__value.severity === ESeverityLevel.WARNING) className = \"bg-red-100 rounded-t-none text-orange-700 p-2 rounded text-sm\"\n else if (__value.severity === ESeverityLevel.INFO) className = \"bg-red-100 rounded-t-none text-blue-700 p-2 rounded text-sm\"\n \n setValidation({ ...__value, className }); \n }\n\n if ( !__value && validation ) setValidation(null);\n }, [ props.errors ]\n )\n\n function valueChanged ( event:any ) {\n if ( props.onValueChanged && event.event !== undefined ) props.onValueChanged(props.name, event.value??undefined);\n if ( validation !== null ) setValidation(null);\n }\n\n return (\n <>\n \n {\n validation &&

{ validation.errorMessage }

\n }\n \n );\n}\n\nRMDRTextArea.defaultProps = {\n name: \"RMDRTextBox\",\n title: null,\n rmdrRef: undefined,\n \n value: \"\",\n defaultValue: \"\",\n placeholder: \"\",\n rows: 1,\n\n validations: [],\n isDisabled: false,\n isAutoFocus: false,\n\n lookupDataSource: null,\n\n onValueChanged: null,\n\n className: \"\",\n disabled: false,\n}\n\nexport default RMDRTextArea;\nexport type {\n TRMDRTextArea\n};\n","import { useState, useEffect } from 'react';\n// enums\nimport ESeverityLevel from 'cms/enums/ESeverityLevel';\n// types\nimport TValidations from 'cms/types/TValidations';\n\n\ntype TRMDRTextBox = {\n\n name: string;\n title: string|null;\n rmdrRef?: any;\n \n value: string|null;\n defaultValue: string|null;\n placeholder: string|null;\n\n errors: TValidations[]|null;\n isDisabled: boolean;\n isAutoFocus: boolean;\n\n mode: string|null;\n type?: string;\n min?: number;\n max?: number;\n\n onValueChanged: (name:string, value?:string|null) => void;\n\n className: string|null;\n disabled: boolean;\n\n}\n\nfunction RMDRTextBox ( props:TRMDRTextBox ) {\n \n const [validation, setValidation] = useState(null);\n\n useEffect(\n () => {\n let __value = props.errors?.find((item:any) => item.propertyName === props.name);\n\n if ( __value ) { \n let className = \"\";\n\n if (__value.severity === ESeverityLevel.ERROR) className = \"bg-red-100 rounded-t-none text-red-700 p-2 rounded text-sm\"\n else if (__value.severity === ESeverityLevel.WARNING) className = \"bg-orange-100 rounded-t-none text-orange-700 p-2 rounded text-sm\"\n else if (__value.severity === ESeverityLevel.INFO) className = \"bg-blue-100 rounded-t-none text-blue-700 p-2 rounded text-sm\"\n \n setValidation({ ...__value, className }); \n }\n\n if ( !__value && validation ) setValidation(null);\n }, [ props.errors ]\n )\n\n function valueChanged ( event:any ) {\n if ( props.onValueChanged && event.event !== undefined ) props.onValueChanged(props.name, event.value??undefined);\n if ( validation !== null ) setValidation(null);\n }\n\n return (\n <>\n \n {\n validation &&

{ validation.errorMessage }

\n }\n \n );\n}\n\nRMDRTextBox.defaultProps = {\n\n name: \"RMDRTextBox\",\n title: null,\n rmdrRef: undefined,\n \n value: \"\",\n defaultValue: \"\",\n placeholder: \"\",\n\n validations: [],\n isDisabled: false,\n isAutoFocus: false,\n\n mode: \"text\",\n type: \"text\",\n lookupDataSource: null,\n\n onValueChanged: null,\n\n className: \"\",\n disabled: false,\n\n}\n\nexport default RMDRTextBox;\nexport type {\n TRMDRTextBox\n};\n","import React, { JSXElementConstructor } from 'react';\nimport SanitizeHTMLString from 'cms/utilities/SanitizeHTMLString';\n\ninterface Props {\n\n variant?: Variant;\n html?: string|null;\n\n}\n\ntype Variant = 'mediumHeading' | 'heading' | 'body' | 'pageHeading' | 'subHeading';\n\nfunction RenderText(props: Props) {\n\n const componentsMap: {\n [P in Variant]: React.ComponentType | string;\n } = {\n body: 'p',\n mediumHeading: 'h3',\n heading: 'h4',\n pageHeading: 'h1',\n subHeading: 'h2',\n };\n\n const Component: JSXElementConstructor | React.ReactElement | React.ComponentType | string = componentsMap![props.variant!];\n\n const htmlContentProps = props.html\n ? {\n dangerouslySetInnerHTML: { __html: SanitizeHTMLString(props.html) },\n }\n : {};\n\n return (\n \n );\n};\n\nRenderText.defaultProps = {\n\n variant: \"body\"\n\n}\n\nexport default RenderText;\n","// components\nimport BannerCard from \"components/BannerCard\";\n// types\nimport { TSLDRLayout } from \"../type\";\n// enums\nimport { EResourceType } from \"cms/enums/EResourceType\";\n\n\nfunction SLDR_002 ( props: TSLDRLayout<{}> ) {\n console.log(\"SLDR_002: \", props);\n\n return (\n \n )\n\n}\n\n\nexport default SLDR_002;\n","import SLDR_001 from \"./components/SLDR_001\";\nimport SLDR_002 from \"./components/SLDR_002\";\n\nconst SliderLayouts:any = {\n \n SLDR_001,\n SLDR_002\n}\n\nexport default SliderLayouts;\n","// components\nimport BannerCard from \"components/BannerCard\";\n// types\nimport { TSLDRLayout } from \"../type\";\n// enums\nimport { EResourceType } from \"cms/enums/EResourceType\";\n\n\nfunction SLDR_001 ( props: TSLDRLayout<{}> ) {\n console.log(\"SLDR_001: \", props);\n\n return (\n \n );\n}\n\n\nexport default SLDR_001;\n","import _ContentMetricsServiceAction from \"core/actions/services/metrics/ContentMetricsServiceAction\";\n\n\nconst screenCode = \"209\";\nclass ContentMetricsServiceAction extends _ContentMetricsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ContentMetricsServiceAction;\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { isEmpty } from \"lodash\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// components\nimport SliderLayouts from \"components/SliderLayouts\";\nimport { BannerCardLoader } from \"components/BannerCard\";\n//\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientCatalogCategoryList from \"ecommerce/interfaces/IClientCatalogCategoryList\";\n// \nimport { TSLDRGRPLayout } from \"../type\";\nimport { EContentType } from \"cms/enums/EContentType\";\n//\nimport ContentMetricsServiceAction from \"cms/actions/components/Slider/ContentMetricsServiceAction\";\nimport { EContentMetricsType } from \"core/enums/EContentMetricsType\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"Slider.mapStateToProps: \", state);\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const webApplicationLanguage: IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode: string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode: string = state.CoreStore.languageCode?.payload;\n\n const catalogCategoryListPayload: IClientCatalogCategoryList[] = state.ClientCatalogCategoryStore.list.payload;\n\n return {\n\n siteSettingDetailPayload,\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n catalogCategoryListPayload,\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"SliderGroup.mapDispatchToProps\");\n\n const contentMetricsServiceAction = new ContentMetricsServiceAction(dispatch);\n\n return {\n\n _viewEvent: ( contentId:string, webApplicationLanguageCode:string ) => {\n contentMetricsServiceAction.post({ \n servicePayload: { \n body: {\n contentId: contentId,\n metricType: EContentMetricsType.VIEV\n }, \n language: webApplicationLanguageCode \n } \n });\n },\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction SLDRGRP001Loader () {\n\n return (\n
\n \n \n \n \n \n \n
\n )\n\n}\n\nfunction SLDRGRP001 ( props: TSLDRGRPLayout ) {\n console.log(\"SLDRGRP001.rendered: \", props);\n\n if ( props.payload && isEmpty(props.payload) ) {\n return \n }\n // else if (props.sliderItemListIsLoading === false && isEmpty(props.sliderItemListPayload) && isEmpty(props.sliderItemListError)) {\n // return (\n //
\n // \n //
\n // )\n // }\n else if (!isEmpty(props.payload)) {\n\n return (\n
\n {\n props.payload?.map((item) => {\n const layoutName = item.layouts?.[0]?.layoutName;\n const Layout = SliderLayouts[layoutName]\n \n let navigationURL = null;\n if ( item.contentContentType === EContentType.CATALOG_CATEGORY ) {\n const hierarchyId = props.catalogCategoryListPayload.find((x) => x.id === item.contentId)?.hierarchyId;\n navigationURL = `/${props.webApplicationLanguageISOCode}/shop?c=${hierarchyId}`;\n }\n\n if ( Layout ) {\n return { props._viewEvent(item.contentId, props.webApplicationLanguageCode) }} />\n }\n \n return null;\n })\n }\n
\n );\n\n }\n\n return null;\n\n}\n\nconst Component = React.memo(SLDRGRP001, ( prevProps: TSLDRGRPLayout, nextProps: TSLDRGRPLayout ) => {\n console.log(\"SLDRGRP001.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.webApplicationLanguageISOCode !== nextProps.webApplicationLanguageISOCode\n || prevProps.payload !== nextProps.payload\n )\n});\n\nexport default connector(Component);\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { isEmpty } from \"lodash\";\nimport cn from 'classnames';\n//\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport BannerCard, { BannerCardLoader } from \"components/BannerCard\";\nimport { TSLDRGRPLayout } from \"../type\";\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport IClientCatalogCategoryList from \"ecommerce/interfaces/IClientCatalogCategoryList\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport { EContentMetricsType } from \"core/enums/EContentMetricsType\";\nimport ContentMetricsServiceAction from \"cms/actions/components/Slider/ContentMetricsServiceAction\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"Slider.mapStateToProps: \", state);\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const webApplicationLanguage: IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode: string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode: string = state.CoreStore.languageCode?.payload;\n\n const catalogCategoryListPayload:IClientCatalogCategoryList[] = state.ClientCatalogCategoryStore.list.payload;\n\n return {\n\n siteSettingDetailPayload,\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n catalogCategoryListPayload\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"SliderGroup.mapDispatchToProps\");\n\n const contentMetricsServiceAction = new ContentMetricsServiceAction(dispatch);\n\n return {\n\n _viewEvent: ( contentId:string, webApplicationLanguageCode:string ) => {\n contentMetricsServiceAction.post({ \n servicePayload: { \n body: {\n contentId: contentId,\n metricType: EContentMetricsType.VIEV\n }, \n language: webApplicationLanguageCode \n } \n });\n },\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction SLDRGRP002Loader () {\n\n return (\n
\n \n \n
\n )\n\n}\n\nfunction SLDRGRP002 ( props: TSLDRGRPLayout ) {\n console.log(\"SLDRGRP002.rendered: \", props);\n\n if ( props.payload && isEmpty(props.payload) ) {\n return \n }\n // else if (props.sliderItemListIsLoading === false && isEmpty(props.sliderItemListPayload) && isEmpty(props.sliderItemListError)) {\n // return (\n //
\n // \n //
\n // )\n // }\n else if (!isEmpty(props.payload)) {\n\n return (\n
\n {\n props.payload?.map((item, index) => {\n let navigationURL = null;\n\n if ( item.contentContentType === EContentType.CATALOG_CATEGORY ) {\n const hierarchyId = props.catalogCategoryListPayload.find((x) => x.id === item.contentId)?.hierarchyId;\n navigationURL = `/${props.webApplicationLanguageISOCode}/shop?c=${hierarchyId}`;\n }\n \n const layoutName = item.layouts[0]?.layoutName;\n\n if ( layoutName === \"SLDR_001\" ) {\n return (\n { props._viewEvent(item.contentId, props.webApplicationLanguageCode) }}\n />\n )\n } else if ( layoutName === \"SLDR_002\" ) {\n return (\n { props._viewEvent(item.contentId, props.webApplicationLanguageCode) }}\n />\n )\n }\n \n }) \n }\n
\n );\n\n }\n\n return null;\n\n}\n\nconst Component = React.memo(SLDRGRP002, ( prevProps: TSLDRGRPLayout, nextProps: TSLDRGRPLayout ) => {\n console.log(\"SLDRGRP002.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.webApplicationLanguageISOCode !== nextProps.webApplicationLanguageISOCode\n || prevProps.payload !== nextProps.payload\n )\n});\n\nexport default connector(Component);\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { isEmpty } from \"lodash\";\nimport cn from 'classnames';\n//\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport BannerCard, { BannerCardLoader } from \"components/BannerCard\";\nimport { TSLDRGRPLayout } from \"../type\";\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport IClientCatalogCategoryList from \"ecommerce/interfaces/IClientCatalogCategoryList\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport ContentMetricsServiceAction from \"cms/actions/components/Slider/ContentMetricsServiceAction\";\nimport { EContentMetricsType } from \"core/enums/EContentMetricsType\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"Slider.mapStateToProps: \", state);\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const webApplicationLanguage: IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode: string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode: string = state.CoreStore.languageCode?.payload;\n\n const catalogCategoryListPayload:IClientCatalogCategoryList[] = state.ClientCatalogCategoryStore.list.payload;\n\n return {\n\n siteSettingDetailPayload,\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n catalogCategoryListPayload\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"SliderGroup.mapDispatchToProps\");\n\n const contentMetricsServiceAction = new ContentMetricsServiceAction(dispatch);\n\n return {\n\n _viewEvent: ( contentId:string, webApplicationLanguageCode:string ) => {\n contentMetricsServiceAction.post({ \n servicePayload: { \n body: {\n contentId: contentId,\n metricType: EContentMetricsType.VIEV\n }, \n language: webApplicationLanguageCode \n } \n });\n },\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction SLDRGRP003Loader () {\n\n return (\n
\n \n \n
\n )\n\n}\n\nfunction SLDRGRP003 ( props: TSLDRGRPLayout ) {\n console.log(\"SLDRGRP003.rendered: \", props);\n\n if ( props.payload && isEmpty(props.payload) ) {\n return \n }\n // else if (props.sliderItemListIsLoading === false && isEmpty(props.sliderItemListPayload) && isEmpty(props.sliderItemListError)) {\n // return (\n //
\n // \n //
\n // )\n // }\n else if (!isEmpty(props.payload)) {\n\n return (\n
\n {\n props.payload?.map((item, index) => {\n let navigationURL = null;\n\n if ( item.contentContentType === EContentType.CATALOG_CATEGORY ) {\n const hierarchyId = props.catalogCategoryListPayload.find((x) => x.id === item.contentId)?.hierarchyId;\n navigationURL = `/${props.webApplicationLanguageISOCode}/shop?c=${hierarchyId}`;\n }\n \n return (\n { props._viewEvent(item.contentId, props.webApplicationLanguageCode) }}\n />\n )\n \n \n }) \n }\n
\n );\n\n }\n\n return null;\n\n}\n\nconst Component = React.memo(SLDRGRP003, ( prevProps: TSLDRGRPLayout, nextProps: TSLDRGRPLayout ) => {\n console.log(\"SLDRGRP003.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.webApplicationLanguageISOCode !== nextProps.webApplicationLanguageISOCode\n || prevProps.payload !== nextProps.payload\n )\n});\n\nexport default connector(Component);\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { isEmpty } from \"lodash\";\nimport cn from 'classnames';\n//\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport { TSLDRGRPLayout } from \"../type\";\nimport IClientCatalogCategoryList from \"ecommerce/interfaces/IClientCatalogCategoryList\";\nimport ContentMetricsServiceAction from \"cms/actions/components/Slider/ContentMetricsServiceAction\";\nimport { EContentMetricsType } from \"core/enums/EContentMetricsType\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"Slider.mapStateToProps: \", state);\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const webApplicationLanguage: IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode: string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode: string = state.CoreStore.languageCode?.payload;\n\n const catalogCategoryListPayload:IClientCatalogCategoryList[] = state.ClientCatalogCategoryStore.list.payload;\n\n return {\n\n siteSettingDetailPayload,\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n catalogCategoryListPayload\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"SliderGroup.mapDispatchToProps\");\n\n const contentMetricsServiceAction = new ContentMetricsServiceAction(dispatch);\n\n return {\n\n _viewEvent: ( contentId:string, webApplicationLanguageCode:string ) => {\n contentMetricsServiceAction.post({ \n servicePayload: { \n body: {\n contentId: contentId,\n metricType: EContentMetricsType.VIEV\n }, \n language: webApplicationLanguageCode \n } \n });\n },\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction SLDRGRP004Loader () {\n\n return (\n <>\n \n )\n\n}\n\nfunction SLDRGRP004 ( props: TSLDRGRPLayout ) {\n console.log(\"SLDRGRP004.rendered: \", props);\n\n if ( props.payload && isEmpty(props.payload) ) {\n return \n }\n // else if (props.sliderItemListIsLoading === false && isEmpty(props.sliderItemListPayload) && isEmpty(props.sliderItemListError)) {\n // return (\n //
\n // \n //
\n // )\n // }\n else if (!isEmpty(props.payload)) {\n\n return (\n <>\n \n );\n\n }\n\n return null;\n\n}\n\nconst Component = React.memo(SLDRGRP004, ( prevProps: TSLDRGRPLayout, nextProps: TSLDRGRPLayout ) => {\n console.log(\"SLDRGRP004.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.webApplicationLanguageISOCode !== nextProps.webApplicationLanguageISOCode\n || prevProps.payload !== nextProps.payload\n )\n});\n\nexport default connector(Component);\n","import SLDRGRP_001 from \"./components/SLDRGRP_001\";\nimport SLDRGRP_002 from \"./components/SLDRGRP_002\";\nimport SLDRGRP_003 from \"./components/SLDRGRP_003\";\nimport SLDRGRP_004 from \"./components/SLDRGRP_004\";\n\n\nconst SliderGroupLayouts:any = {\n \n SLDRGRP_001,\n SLDRGRP_002,\n SLDRGRP_003,\n SLDRGRP_004\n\n}\n\nexport default SliderGroupLayouts;\n","// action \nimport OdataReadOnlyActionBase from \"core/actions/OdataReadOnlyActionBase\";\n// service\nimport ClientSliderItemService from \"cms/services/ClientSliderItemService\";\n\n\nclass ClientSliderItemServiceAction extends OdataReadOnlyActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, ClientSliderItemService, screenCode);\n }\n\n}\n\nexport default ClientSliderItemServiceAction;\n","import _ClientSilderItemServiceAction from \"cms/actions/services/ClientSilderItemServiceAction\";\n\n\nconst screenCode = \"209\";\nclass ClientSilderItemServiceAction extends _ClientSilderItemServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ClientSilderItemServiceAction;\n","function getLocalDateTime( isEnd:boolean = false ) {\n\n let localDateTime = (new Date()).toJSON();\n \n try {\n\n if ( isEnd ) return `${getDate(localDateTime)}T23:59:59Z`;\n return `${getDate(localDateTime)}T00:00:00Z`;\n\n } catch (e) { }\n \n}\n\nfunction getDate( dateTime?:string ) {\n\n if ( dateTime ) {\n let val = dateTime.split(\"T\");\n return val[0];\n }\n\n}\n\nfunction _getTime( dateTime?:string ) {\n\n if ( dateTime ) {\n let val = dateTime.split(\"T\");\n return val[1];\n }\n\n}\n\nfunction dataTimeToHumanReadable ( datetime?:string ) {\n\n if ( datetime ) {\n\n try {\n let splittedDateTime = new Date(Date.parse(datetime)).toString().split(\" \")\n return { day: splittedDateTime[2], month: splittedDateTime[1], year: splittedDateTime[3] }\n } catch(ex) {\n return null;\n }\n \n\n }\n\n}\n\nexport {\n\n getLocalDateTime,\n getDate,\n dataTimeToHumanReadable\n\n}","import React, { useEffect } from \"react\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport Lodash, { isEmpty } from \"lodash\";\r\n// components\r\nimport SliderGroupLayouts from \"components/SliderGroupLayouts\";\r\n// actions\r\nimport CoreAction from \"core/actions/common/CoreAction\";\r\nimport ClientSilderItemServiceAction from \"cms/actions/components/Slider/ClientSilderItemServiceAction\";\r\n// interfaces\r\nimport IOdataQueryOptions from 'core/interfaces/IOdataQueryOptions';\r\n// \r\nimport { getLocalDateTime } from \"core/utilities/DateTimeHelper\";\r\nimport IClientSliderItemList from \"cms/interfaces/IClientSliderItemList\";\r\n//\r\nimport { EContentStatus } from \"cms/enums/EContentStatus\";\r\nimport { Dispatch } from \"@reduxjs/toolkit\";\r\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\r\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\r\nimport TValidations from \"cms/types/TValidations\";\r\nimport { BannerCardLoader } from \"./BannerCard\";\r\n\r\n\r\nfunction mapStateToProps ( state: any ) {\r\n console.log(\"Slider.mapStateToProps: \", state);\r\n\r\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\r\n\r\n const webApplicationLanguage: IClientLanguage = state.CoreStore.language?.payload;\r\n const webApplicationLanguageCode: string = webApplicationLanguage.code;\r\n const webApplicationLanguageISOCode: string = state.CoreStore.languageCode?.payload;\r\n\r\n const sliderItemListPayload:IClientSliderItemList[]|null = state.SliderStore.ClientSilderItemStore.list?.payload;\r\n const sliderItemListError:TValidations[]|null = state.SliderStore.ClientSilderItemStore.list?.error;\r\n const sliderItemListIsLoading:boolean = state.SliderStore.ClientSilderItemStore.list?.isLoading;\r\n\r\n return {\r\n\r\n siteSettingDetailPayload,\r\n\r\n webApplicationLanguage,\r\n webApplicationLanguageCode,\r\n webApplicationLanguageISOCode,\r\n\r\n sliderItemListPayload,\r\n sliderItemListError,\r\n sliderItemListIsLoading\r\n\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\r\n console.log(\"Slider.mapDispatchToProps\");\r\n\r\n const coreAction = new CoreAction(dispatch);\r\n const clientSilderItemServiceAction = new ClientSilderItemServiceAction(dispatch);\r\n\r\n return {\r\n // list\r\n _listSliderItems: ( layoutName: string, webApplicationLanguageCode: string ) => {\r\n let queryOptions: IOdataQueryOptions = {\r\n filter: [`status eq ${EContentStatus.ACTIVE}`, \"and\", `mapLayoutName eq '${layoutName}'`, \"and\", `(publishDate le ${getLocalDateTime()} or publishDate eq null)`, \"and\", `(expireDate ge ${getLocalDateTime(true)} or expireDate eq null)`],\r\n orderBy: [\"order asc\"],\r\n top: 1000\r\n };\r\n\r\n clientSilderItemServiceAction.list({ servicePayload: { queryOptions, language: webApplicationLanguageCode } });\r\n },\r\n\r\n _listAllSliderItems: ( webApplicationLanguageCode: string ) => {\r\n let queryOptions: IOdataQueryOptions = {\r\n filter: [`status eq ${EContentStatus.ACTIVE}`, \"and\", `(publishDate le ${getLocalDateTime()} or publishDate eq null)`, \"and\", `(expireDate ge ${getLocalDateTime(true)} or expireDate eq null)`],\r\n orderBy: [\"mapLayoutName asc\", \"order asc\"],\r\n top: 1000\r\n };\r\n\r\n clientSilderItemServiceAction.list({ servicePayload: { queryOptions, language: webApplicationLanguageCode } });\r\n },\r\n\r\n // other\r\n _hideLoader: () => {\r\n coreAction.hideLoader();\r\n }\r\n }\r\n}\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\n\r\n\r\n/* types */\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype TSlider = {\r\n\r\n layoutName?:string;\r\n\r\n} & T;\r\n\r\n\r\n/* component */\r\nfunction SliderLoader () {\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n\r\n}\r\n\r\nfunction Slider ( props: TSlider ) {\r\n console.log(\"Slider.rendered: \", props);\r\n\r\n useEffect(\r\n () => {\r\n\r\n if ( props.layoutName && !Lodash.isEmpty(props.layoutName) ) {\r\n props._listSliderItems(props.layoutName, props.webApplicationLanguageCode);\r\n }\r\n else {\r\n\r\n props._listAllSliderItems( props.webApplicationLanguageCode );\r\n\r\n }\r\n \r\n }, [ props.layoutName ]\r\n )\r\n\r\n\r\n if ( props.sliderItemListIsLoading && isEmpty(props.sliderItemListError) ) {\r\n return \r\n }\r\n // else if (props.sliderItemListIsLoading === false && isEmpty(props.sliderItemListPayload) && isEmpty(props.sliderItemListError)) {\r\n // return (\r\n //
\r\n // \r\n //
\r\n // )\r\n // }\r\n else if ( !isEmpty(props.sliderItemListPayload) && props.layoutName && !isEmpty(props.layoutName) ) {\r\n\r\n const SliderGroupLayout = SliderGroupLayouts[props.layoutName];\r\n\r\n if ( !isEmpty(SliderGroupLayout) ) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n }\r\n else if ( !isEmpty(props.sliderItemListPayload) && props.sliderItemListPayload ) {\r\n\r\n const firstItemMapLayoutName = props.sliderItemListPayload?.[0]?.mapLayoutName;\r\n if ( firstItemMapLayoutName ) {\r\n \r\n const SliderGroupLayout = SliderGroupLayouts[firstItemMapLayoutName];\r\n const sliderItems = props.sliderItemListPayload.filter((item) => item.mapLayoutName === firstItemMapLayoutName);\r\n\r\n if ( !isEmpty(SliderGroupLayout) ) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n return null;\r\n\r\n}\r\n\r\nSlider.defaultProps = {\r\n\r\n}\r\n\r\nconst Component = React.memo(Slider, ( prevProps: TSlider, nextProps: TSlider ) => {\r\n console.log(\"Slider.memo\", { prevProps, nextProps });\r\n\r\n return !(\r\n prevProps.webApplicationLanguageISOCode !== nextProps.webApplicationLanguageISOCode\r\n || prevProps.sliderItemListPayload !== nextProps.sliderItemListPayload\r\n )\r\n});\r\n\r\nexport default connector(Component);\r\n","import React, { JSXElementConstructor, CSSProperties } from 'react';\nimport cn from 'classnames';\nimport SanitizeHTMLString from 'cms/utilities/SanitizeHTMLString';\n\ninterface Props {\n variant?: Variant;\n className?: string;\n style?: CSSProperties;\n children?: React.ReactNode | any;\n html?: string;\n}\n\ntype Variant = 'mediumHeading' | 'heading' | 'body' | 'pageHeading' | 'subHeading';\n\nfunction Text(props: Props) {\n\n const componentsMap: {\n [P in Variant]: React.ComponentType | string;\n } = {\n body: 'p',\n mediumHeading: 'h3',\n heading: 'h4',\n pageHeading: 'h1',\n subHeading: 'h2',\n };\n\n const Component: JSXElementConstructor | React.ReactElement | React.ComponentType | string = componentsMap![props.variant!];\n\n const htmlContentProps = props.html\n ? {\n dangerouslySetInnerHTML: { __html: SanitizeHTMLString(props.html) },\n }\n : {};\n\n return (\n \n {props.children}\n
\n );\n};\n\nText.defaultProps = {\n\n variant: 'body'\n\n}\n\nexport default Text;\n","enum EEndpointProtocol {\n\n ODATA = \"odata\",\n MVB_API = \"mvbapi\",\n API = \"api\"\n\n}\n\nexport default EEndpointProtocol;\n","import EHttpStatusCode from \"core/enums/EHttpStatusCode\";\nimport EEndpointProtocol from \"core/enums/EEndpointProtocol\";\n\nconst CoreDefault = {\n\n url: `${process.env.PROTOCOL}${process.env.HOSTNAME||window.location.hostname}${process.env.PORT ? `:${process.env.PORT}`:\"\"}`,\n api: `${process.env.PROTOCOL}${process.env.API_HOSTNAME||window.location.hostname}${process.env.API_PORT ? `:${process.env.API_PORT}`:\"\"}`,\n\tcdn: `${process.env.PROTOCOL}${process.env.CDN_HOSTNAME||window.location.hostname}${process.env.CDN_PORT ? `:${process.env.CDN_PORT}`:\"\"}`,\n ai: \"https://ai.armadorteknoloji.com/openai\",\n\n acceptableHttpStatus: [\n EHttpStatusCode.OK,\n EHttpStatusCode.CREATED,\n EHttpStatusCode.ACCEPTED,\n EHttpStatusCode.BAD_REQUEST,\n EHttpStatusCode.UNAUTHORIZED,\n EHttpStatusCode.NOT_ACCEPTABLE,\n EHttpStatusCode.INTERNAL_SERVER_ERROR\n ],\n fetchSettings: {\n protocol: EEndpointProtocol.MVB_API\n },\n tokenKeyName: \"token\",\n clientLanguage: {\n code: \"en-US\",\n name: \"English\",\n twoLetterISOName: \"en\"\n }\n\n};\n\nexport default CoreDefault;\n","import Lodash from 'lodash';\n\n\nfunction deleteKeyFromListOfDictionary( value:any[], keys:string[] ) {\n\n if ( Lodash.isEmpty(value) ) return value;\n\n const _keys = keys?.filter((item:string) => item);\n if ( Lodash.isEmpty(keys) || Lodash.isEmpty(_keys) ) return value;\n\n let _value:any[] = [...value];\n _value.map((item:any) => { for(let key of _keys) delete item[key]});\n\n return _value;\n\n}\n\nexport default deleteKeyFromListOfDictionary;\n","// enum\nimport HttpStatusCode from \"core/enums/EHttpStatusCode\";\nimport EActionType from \"core/enums/EActionType\";\nimport EActionStatus from \"core/enums/EActionStatus\";\n// interface\nimport IServiceResponse from \"core/interfaces/IServiceResponse\";\nimport IActionCallbackArgs from \"core/interfaces/IActionCallbackArgs\";\nimport IActionRunParams from \"core/interfaces/IActionRunParams\";\nimport deleteKeyFromListOfDictionary from \"core/utilities/DeleteKeyFromListOfDictionary\";\nimport TDispatchPayload from \"core/types/TDispatchPayload\";\n\n\nexport default class ActionBase {\n\n dispatch: any = null;\n service: any = null;\n\n serviceCode: string = \"\";\n screenCode: string = \"\";\n\n constructor ( dispatch: any, service: any, screenCode: string ) {\n\n this.dispatch = dispatch;\n if ( service ) {\n this.service = new service();\n this.serviceCode = service.code;\n }\n if (screenCode) this.screenCode = screenCode;\n \n }\n\n callback200( response: IServiceResponse, args?: IActionCallbackArgs ) {\n\n if ( args?.actionType === EActionType.LIST || args?.actionType === EActionType.POST ) {\n this.dispatch({ \n type: `${this.screenCode}${this.serviceCode}${args.actionType}${EActionStatus.SUCCESS}`, \n payload: args[\"keysToBeRemoved\"] ? deleteKeyFromListOfDictionary(response.value, args[\"keysToBeRemoved\"] as string[]) : response.value,\n count: response?.[\"@odata.count\"]\n });\n } \n else if ( args?.actionType === EActionType.DETAILS ) {\n this.dispatch({ \n type: `${this.screenCode}${this.serviceCode}${args.actionType}${EActionStatus.SUCCESS}`, \n payload: response.value\n });\n }\n else if ( args?.actionType === EActionType.GET ) {\n\n // extraPayload parametresinin çalışbilmesi için sayfadan yapılan istek aşağıdaki gibi olmalıdır. İstek içindeki storeMapOptions değişkeni api den gelen verinin içindeki bilginin nereye atanacağını gösteriyor.\n // dataMetricsAction.list({ servicePayload: queryOptions, args: { storeMapOptions: [{ destinationName: \"totalCountGroupByMetricType\", sourceName: \"value\" }] } }); \n\n if ( args.storeMapOptions && Array.isArray(args.storeMapOptions) ) {\n let dispatchPayload:TDispatchPayload = {\n type: `${this.screenCode}${this.serviceCode}${args.actionType}${EActionStatus.SUCCESS}`,\n extraPayload: {}\n }\n\n for ( let item of args.storeMapOptions ) {\n dispatchPayload.extraPayload[item.destinationName] = (response as any)?.[item.sourceName];\n }\n\n this.dispatch(dispatchPayload);\n }\n \n }\n\n }\n\n callback201( response: IServiceResponse, args?: IActionCallbackArgs ) {\n\n }\n\n callback400( response: IServiceResponse, args?: IActionCallbackArgs ) {\n\n if ( args?.actionType === EActionType.LIST || args?.actionType === EActionType.POST || args?.actionType === EActionType.DETAILS ) {\n this.dispatch({ \n type: `${this.screenCode}${this.serviceCode}${args.actionType}${EActionStatus.FAIL}`, \n payload: response\n });\n }\n\n }\n\n callback401( response: IServiceResponse, args?: IActionCallbackArgs ) {\n \n }\n\n callback406( response: IServiceResponse, args?: IActionCallbackArgs ) {\n\n this.callback400( response, args );\n\n }\n\n callback500( response?: IServiceResponse, args?: IActionCallbackArgs ) {\n\n }\n\n callbackOther( response?: IServiceResponse, args?: IActionCallbackArgs ) {\n\n }\n \n callbackError( response?: IServiceResponse, args?: IActionCallbackArgs ) {\n\n }\n\n executeService( service: any, params: IActionRunParams ) {\n \n service( params.servicePayload )\n .then( (response: any) => {\n switch (response.status) {\n\n // from data\n case HttpStatusCode.OK:\n this.callback200(response.data, params.args);\n break;\n\n case HttpStatusCode.CREATED:\n this.callback201(response.data, params.args);\n break;\n\n case HttpStatusCode.ACCEPTED:\n this.callback201(response.data, params.args);\n break;\n\n case HttpStatusCode.BAD_REQUEST:\n this.callback400(response.data, params.args);\n break;\n\n case HttpStatusCode.UNAUTHORIZED:\n this.callback401(response.data, params.args);\n break;\n\n case HttpStatusCode.NOT_ACCEPTABLE:\n this.callback406(response.data, params.args);\n break;\n\n case HttpStatusCode.INTERNAL_SERVER_ERROR:\n this.callback500(response, params.args);\n break;\n\n default:\n this.callbackOther(response, params.args);\n\n }\n\n return Promise.resolve();\n\n })\n .catch( (error: any) => {\n\n console.error(\"executeService.error: \", JSON.stringify(error, null, 4));\n\n const message = (error.response && error.response.data && error.response.data.message) || error.message || error.toString();\n console.error(\"executeService.catch: \", message);\n\n this.callbackError(message, params?.args);\n\n return Promise.resolve();\n\n });\n }\n}\n","// actions\nimport ActionBase from \"core/actions/ActionBase\";\n// enums\nimport EActionStatus from 'core/enums/EActionStatus';\nimport EActionType from 'core/enums/EActionType';\n// interfaces\nimport IModifierPayload from 'core/interfaces/IModifierPayload';\n// types\nimport TActionType from \"core/types/TActionType\";\n\n\nclass ActionCore extends ActionBase {\n\n fetching( actionType:TActionType, screenCode?:string, serviceCode?:string ) {\n\n this.dispatch({ \n type: `${screenCode ?? this.screenCode}${serviceCode ?? this.serviceCode}${actionType}${EActionStatus.FETCHING}` \n });\n\n }\n\n modify( actionType:TActionType, payload:any, screenCode?:string, serviceCode?:string ) {\n\n this.dispatch({ \n type: `${screenCode ?? this.screenCode}${serviceCode ?? this.serviceCode}${actionType}${EActionStatus.MODIFIER}`,\n payload\n });\n\n }\n\n store( actionType:TActionType, payload:any, screenCode?:string, serviceCode?:string ) {\n\n this.dispatch({ \n type: `${screenCode ?? this.screenCode}${serviceCode ?? this.serviceCode}${actionType}${EActionStatus.STORE}`,\n payload\n });\n\n }\n\n set( actionType:TActionType, payload:any, screenCode?:string, serviceCode?:string ) {\n \n this.dispatch({ \n type: `${screenCode ?? this.screenCode}${serviceCode ?? this.serviceCode}${actionType}${EActionStatus.SUCCESS}`,\n payload\n });\n\n }\n\n clean( actionType:TActionType, key?:string, screenCode?:string, serviceCode?:string ) {\n\n this.dispatch({ \n type: `${screenCode ?? this.screenCode}${serviceCode ?? this.serviceCode}${actionType}${EActionStatus.CLEAN}`,\n key\n });\n\n }\n\n storageModifier ( payload: IModifierPayload[], screenCode?:string, serviceCode?:string ) {\n\n this.modify(EActionType.STORAGE, payload, screenCode, serviceCode);\n\n }\n\n storageStore ( payload:{}, screenCode?:string, serviceCode?:string ) {\n\n this.store(EActionType.STORAGE, payload, screenCode, serviceCode);\n\n }\n\n storageClean() {\n\n this.clean(EActionType.STORAGE);\n \n }\n\n}\n\nexport default ActionCore;\n","// action\nimport OdataReadOnlyActionBase from \"./OdataReadOnlyActionBase\";\n// enum\nimport EActionStatus from \"core/enums/EActionStatus\";\nimport EActionType from \"core/enums/EActionType\";\n// interface\nimport { IActionPostOdata } from \"core/interfaces/IActionPost\";\nimport { IActionDeleteOdata } from \"core/interfaces/IActionDelete\";\nimport IActionRunParams from \"core/interfaces/IActionRunParams\";\nimport IServiceResponse from \"core/interfaces/IServiceResponse\";\nimport IActionCallbackArgs from \"core/interfaces/IActionCallbackArgs\";\n\n\nclass OdataActionBase extends OdataReadOnlyActionBase {\n\n async post ( params: IActionPostOdata ) {\n\n this.fetching(EActionType.POST);\n \n const serviceParams: IActionRunParams = {\n args: {...params.args, actionType: EActionType.POST},\n servicePayload: params.servicePayload\n }\n \n this.executeService( this.service.post.bind(this.service), serviceParams );\n \n }\n\n async postModifier ( params: IActionPostOdata ) {\n console.log(\"OdataActionBase.post_modify: \", params);\n\n this.fetching(EActionType.POST);\n this.modify(EActionType.POST, params.servicePayload);\n\n }\n\n postClean () {\n\n this.clean(EActionType.POST);\n\n }\n\n async delete ( params: IActionDeleteOdata ) {\n\n this.fetching(EActionType.DELETE);\n \n const serviceParams: IActionRunParams = {\n args: {...params.args, actionType: EActionType.DELETE},\n servicePayload: params.payload\n }\n \n this.executeService( this.service.delete.bind(this.service), serviceParams );\n \n }\n\n deleteClean () {\n\n this.clean(EActionType.DELETE);\n\n }\n\n // callback406 ( response: IServiceResponse, args?: IActionCallbackArgs ) {\n\n // if ( args?.actionType === EActionType.POST || args?.actionType === EActionType.DELETE ) {\n // this.dispatch({ \n // type: `${this.screenCode}${this.serviceCode}${args?.actionType}${EActionStatus.FAIL}`, \n // payload: response,\n // message: null\n // });\n // }\n // else if ( args?.actionType === EActionType.POST || args?.actionType === EActionType.DELETE ) {\n // this.dispatch({ \n // type: `${this.screenCode}${this.serviceCode}${args?.actionType}${EActionStatus.FAIL}`, \n // payload: response,\n // message: null\n // });\n // }\n\n // }\n\n}\n\nexport default OdataActionBase;\n","// action\nimport ActionCore from \"./ActionCore\";\n// enum\nimport EActionType from \"core/enums/EActionType\";\n// interface\nimport { IActionGetOdata } from \"core/interfaces/IActionGet\";\nimport IActionRunParams from \"core/interfaces/IActionRunParams\";\n\n\nclass OdataCoreActionBase extends ActionCore {\n\n async list ( params: IActionGetOdata ) {\n\n this.fetching(EActionType.LIST);\n\n const serviceParams: IActionRunParams = {\n args: {\n ...params.args, \n actionType: EActionType.LIST\n },\n servicePayload: params.servicePayload\n }\n\n this.executeService( this.service.get.bind(this.service), serviceParams );\n \n }\n\n async listModifier ( params: IActionGetOdata ) {\n\n this.fetching(EActionType.LIST);\n this.modify(EActionType.LIST, params.payload);\n \n }\n\n async listStore ( params: IActionGetOdata ) {\n\n this.store(EActionType.LIST, params.payload);\n \n }\n\n listClean () {\n\n this.clean(EActionType.LIST);\n\n }\n\n async get ( params:IActionGetOdata ) {\n\n this.fetching(EActionType.GET);\n\n const serviceParams: IActionRunParams = {\n args: {\n ...params.args, \n actionType: EActionType.GET\n },\n servicePayload: params.servicePayload\n }\n\n this.executeService( this.service.get.bind(this.service), serviceParams );\n\n }\n\n async getClean( key:string ) {\n\n this.clean(EActionType.GET, key);\n \n }\n\n}\n\nexport default OdataCoreActionBase;\n","// action\nimport OdataCoreActionBase from \"./OdataCoreActionBase\";\n// enum\nimport EActionStatus from \"core/enums/EActionStatus\";\nimport EActionType from \"core/enums/EActionType\";\n// interface\nimport { IActionDetailOdata } from \"core/interfaces/IActionDetail\";\nimport IActionRunParams from \"core/interfaces/IActionRunParams\";\n\n\nclass OdataReadOnlyActionBase extends OdataCoreActionBase {\n\n async details( params: IActionDetailOdata ) {\n\n this.fetching(EActionType.DETAILS);\n\n const serviceParams: IActionRunParams = {\n args: {\n ...params.args, \n actionType: EActionType.DETAILS\n },\n servicePayload: params.servicePayload\n }\n\n this.executeService( this.service.details.bind(this.service), serviceParams );\n\n }\n\n detailsClean () {\n \n this.clean(EActionType.DETAILS);\n \n }\n\n}\n\nexport default OdataReadOnlyActionBase;\n","import IClientLanguage from 'core/interfaces/IClientLanguage';\nimport EActionType from \"core/enums/EActionType\";\nimport ActionCore from 'core/actions/ActionCore';\n\n\nconst screenCode = \"COM\";\nclass CoreAction extends ActionCore {\n\n constructor( dispatch:any ) {\n super( dispatch, \"\", screenCode);\n\n this.serviceCode = \"Core\";\n }\n\n /**\n * set web application language\n */\n setWebApplicationLanguage ( language: IClientLanguage ) {\n\n localStorage.setItem(\"WebApplicationLanguage\", JSON.stringify(language));\n localStorage.setItem(\"WebApplicationLanguageISOCode\", language.twoLetterISOName);\n\n this.store(EActionType.LANGUAGE, language);\n this.store(EActionType.LANGUAGE_CODE, language.twoLetterISOName);\n \n }\n\n /**\n * show full screen loader\n */\n showLoader () {\n\n this.clean(EActionType.LOADER)\n\n }\n\n /**\n * hide full screen loader\n */\n hideLoader () {\n this.fetching(EActionType.LOADER);\n\n }\n\n /**\n * change color palette\n */\n changeColorPalette( payload:any ) {\n\n localStorage.setItem(\"color-palette\", payload);\n this.store(EActionType.COLOR_PALETTE, payload);\n\n }\n\n /**\n * theme mode\n */\n changeColorPaletteMode( payload:any ) {\n \n localStorage.setItem(\"color-palette-mode\", payload);\n this.store(EActionType.COLOR_PALETTE_MODE, payload);\n\n }\n\n}\n\nexport default CoreAction;\n","import EActionType from \"core/enums/EActionType\";\nimport EMessageStatus from \"core/enums/EMessageStatus\";\n\n\nclass MessagePublisherAction {\n\n dispatch:any;\n\n constructor ( dispatch:any ) {\n this.dispatch = dispatch;\n }\n\n /**\n * show success message\n */\n showSuccessMessage( message:string ) {\n this.dispatch({\n type: `${EActionType.PUBLISH_MESSAGE}${EMessageStatus.SUCCESS}`,\n payload: message\n });\n }\n\n /**\n * show error message\n */\n showErrorMessage( message:string ) {\n this.dispatch({\n type: `${EActionType.PUBLISH_MESSAGE}${EMessageStatus.ERROR}`,\n payload: message\n });\n }\n\n /**\n * show warning message\n */\n showWarningMessage( message:string ) {\n this.dispatch({\n type: `${EActionType.PUBLISH_MESSAGE}${EMessageStatus.WARNING}`,\n payload: message\n });\n }\n\n /**\n * show info message\n */\n showInfoMessage( message:string ) {\n this.dispatch({\n type: `${EActionType.PUBLISH_MESSAGE}${EMessageStatus.INFO}`,\n payload: message\n });\n }\n\n}\n\nexport default MessagePublisherAction;\n","// action\nimport OdataActionBase from \"core/actions/OdataActionBase\";\n// service\nimport ContentMetricsService from \"core/services/metrics/ContentMetricsService\";\n\n\nclass ContentMetricsServiceAction extends OdataActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n\n super(dispatch, ContentMetricsService, screenCode);\n \n }\n\n}\n\nexport default ContentMetricsServiceAction;\n","enum EActionStatus {\n\n SUCCESS = \"SU\",\n FAIL = \"FA\",\n STORE = \"ST\",\n MODIFIER = \"MO\",\n \n CLEAN = \"CL\",\n CLEAN_MESSAGE = \"CM\",\n CLEAN_PAYLOAD = \"CP\",\n CLEAN_ERROR = \"CE\",\n CLEAN_COUNT = \"CC\",\n \n FETCHING = \"FE\",\n TOGGLE = \"TO\",\n\n}\n\nexport default EActionStatus;\n","enum EActionType {\n\n LIST = \"LI\",\n POST = \"PO\",\n PATCH = \"PA\",\n MANAGEMENT = \"MA\",\n DELETE = \"DE\",\n DETAILS = \"DT\",\n STORAGE = \"ST\",\n SIGNIN = \"SI\",\n GET = \"GE\",\n\n LANGUAGE = \"LA\",\n LANGUAGE_CODE = \"LC\",\n LOADER = \"LO\",\n\n DOWNLOAD = \"DL\",\n UPLOAD = \"UL\",\n\n CHANGE = \"CH\",\n COLOR_PALETTE = \"CP\",\n COLOR_PALETTE_MODE = \"CM\",\n PAGINATION = \"PN\",\n\n PUBLISH_MESSAGE = \"PM\",\n PUBLISH_POPUP = \"PP\"\n\n}\n\nexport default EActionType;\n","const EContentMetricsTypeDataSource = {\n\n LIKE : { id: 1, name: \"Like\", description: \"Like\" },\n COPY_PATH : { id: 2, name: \"CopyPath\", description: \"CopyPath\" },\n VIEV : { id: 3, name: \"View\", description: \"View\" },\n DOWNLOAD : { id: 4, name: \"Download\", description: \"Download\" }\n\n}\n\n\nenum EContentMetricsType {\n\n LIKE = 1,\n COPY_PATH = 2,\n VIEV = 3,\n DOWNLOAD = 4\n\n}\n\nexport default EContentMetricsTypeDataSource;\nexport {\n\n EContentMetricsType\n\n}\n","enum EHttpMethod {\n\n GET = \"get\",\n DELETE = \"delete\",\n HEAD = \"head\",\n OPTIONS = \"options\",\n POST = \"post\",\n PUT = \"put\",\n PATCH = \"patch\",\n PURGE = \"purge\",\n LINK = \"link\",\n UNLINK = \"unlink\"\n\n}\n\nexport default EHttpMethod;\n","const EHttpStatusCode = {\n\n\t// Informational responses \n\tCONTINUE: 100,\n\tSWITCHING_PROTOCOLS: 101,\n\tPROCESSING: 102,\n\tEARLY_HINTS: 103,\n\n\t// Successful responses\n\tOK: 200,\n\tCREATED: 201,\n\tACCEPTED: 202,\n\tNON_AUTHORITATIVE_INFORMATION: 203,\n\tNO_CONTENT: 204,\n\tRESET_CONTENT: 205,\n\tPARTIAL_CONTENT: 206,\n\tMULTI_STATUS: 207,\n\n\t// Redirection messages\n\tMULTIPLE_CHOICES: 300,\n\tMOVED_PERMANENTLY: 301,\n\tMOVED_TEMPORARILY: 302,\n\tSEE_OTHER: 303,\n\tNOT_MODIFIED: 304,\n\tUSE_PROXY: 305,\n\tTEMPORARY_REDIRECT: 307,\n\tPERMANENT_REDIRECT: 308,\n\n\t// Client error responses\n\tBAD_REQUEST: 400,\n\tUNAUTHORIZED: 401,\n\tPAYMENT_REQUIRED: 402,\n\tFORBIDDEN: 403,\n\tNOT_FOUND: 404,\n\tMETHOD_NOT_ALLOWED: 405,\n\tNOT_ACCEPTABLE: 406,\n\tPROXY_AUTHENTICATION_REQUIRED: 407,\n\tREQUEST_TIMEOUT: 408,\n\tCONFLICT: 409,\n\tGONE: 410,\n\tLENGTH_REQUIRED: 411,\n\tPRECONDITION_FAILED: 412,\n\tREQUEST_TOO_LONG: 413,\n\tREQUEST_URI_TOO_LONG: 414,\n\tUNSUPPORTED_MEDIA_TYPE: 415,\n\tREQUESTED_RANGE_NOT_SATISFIABLE: 416,\n\tEXPECTATION_FAILED: 417,\n\tIM_A_TEAPOT: 418,\n\tINSUFFICIENT_SPACE_ON_RESOURCE: 419,\n\tMISDIRECTED_REQUEST: 421,\n\tUNPROCESSABLE_ENTITY: 422,\n\tMETHOD_FAILURE: 420,\n\tLOCKED: 423,\n\tFAILED_DEPENDENCY: 424,\n\tTOO_EARLY: 425,\n\tUPGRADE_REQUIRED: 426,\n\tPRECONDITION_REQUIRED: 428,\n\tTOO_MANY_REQUESTS: 429,\n\tREQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\tUNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\n\t// Server error responses\n\tINTERNAL_SERVER_ERROR: 500,\n\tNOT_IMPLEMENTED: 501,\n\tBAD_GATEWAY: 502,\n\tSERVICE_UNAVAILABLE: 503,\n\tGATEWAY_TIMEOUT: 504,\n\tHTTP_VERSION_NOT_SUPPORTED: 505,\n\tVARIANT_ALSO_NEGOTIATES: 506,\n\tINSUFFICIENT_STORAGE: 507,\n\tLOOP_DETECTED: 508,\n\tNOT_EXTENDED: 510,\n\tNETWORK_AUTHENTICATION_REQUIRED: 511\n\n}\n\nexport default EHttpStatusCode;","enum EMessageStatus {\n\n SUCCESS = \"MS\",\n ERROR = \"ME\",\n WARNING = \"MW\",\n INFO = \"MI\",\n POPUP = \"MP\"\n\n}\n\nexport default EMessageStatus;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import Axios, { AxiosRequestConfig } from 'axios';\nimport Cookies from \"universal-cookie\";\n// core\nimport CoreDefault from \"core/Defaults\";\n// interfaces\nimport IFetchExtension from 'core/interfaces/IFetchExtension';\nimport IOdataQueryOptions from 'core/interfaces/IOdataQueryOptions';\nimport sleep from 'core/utilities/sleep';\n\n// constants\nconst cookies = new Cookies();\ndeclare module \"axios\" {\n export interface AxiosRequestConfig {\n responseEncoding?: string;\n }\n}\n\n\nfunction OdataQueryComposer( baseUrl: string, queryOptions?: (IOdataQueryOptions|null) ) : string {\n if ( queryOptions === null ) return baseUrl;\n\n const queryList = [];\n let url = baseUrl;\n\n \n if (queryOptions?.filter && queryOptions?.filter?.length > 0) {\n queryList.push(`$filter=${queryOptions.filter.join(' ')}`);\n }\n if (queryOptions?.skip && queryOptions?.skip >= 0) {\n queryList.push(`$skip=${queryOptions.skip}`);\n }\n if (queryOptions?.top && queryOptions?.top >= 0) {\n queryList.push(`$top=${queryOptions.top}`);\n }\n if (queryOptions?.orderBy && queryOptions?.orderBy?.length > 0) {\n queryList.push(`$orderby=${queryOptions.orderBy.join(',')}`);\n }\n if (queryOptions?.expand && queryOptions?.expand?.length > 0) {\n queryList.push(`$expand=${queryOptions.expand.join(',')}`);\n }\n if (queryOptions?.count === true) {\n queryList.push(`$count=true`);\n }\n\n if (queryList.length > 0) {\n url = `${baseUrl}?${queryList.join('&')}`;\n }\n\n return url;\n}\n\nasync function FetchExtension ( params: IFetchExtension ) : Promise {\n console.log(\"FetchExtension.params: \", params);\n\n const baseUrl = `${CoreDefault.api}/${params.protocol ?? CoreDefault.fetchSettings.protocol}/${params.sourcePath}`;\n const url: string = OdataQueryComposer(baseUrl, params.queryOptions);\n // const language: (string|null) = localStorage.getItem(\"WebApplicationLanguage\");\n\n const axiosConfig: AxiosRequestConfig = {\n url,\n method: params.method,\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': params.contentType || 'application/json',\n 'Accept-Language': params.language || CoreDefault.clientLanguage.code\n },\n responseType: 'json',\n responseEncoding: 'utf8',\n validateStatus: function (status: number) {\n return CoreDefault.acceptableHttpStatus.indexOf(status) > -1;\n }\n }\n\n console.log(\"FetchExtension.params: \", axiosConfig);\n\n // token\n // const token = cookies.get(CoreDefault.tokenKeyName);\n // if ( token && axiosConfig.headers ) { \n // axiosConfig.headers['Authorization'] = `Bearer ${ token }`; \n // }\n\n // body\n if ( params.body || params.formData ) {\n axiosConfig.data = params.formData ? params.formData : JSON.stringify(params.body);\n }\n\n // await sleep(5000);\n\n return Axios(axiosConfig);\n}\n\nexport default FetchExtension;","import FetchExtension from 'core/extensions/FetchExtension';\n// service \nimport ServiceBase from \"core/services/ServiceBase\";\n// interface\nimport IFetchExtension from 'core/interfaces/IFetchExtension';\nimport { IOdataGetRequest } from 'core/interfaces/IGetRequest';\n// enum\nimport HttpMethodEnum from 'core/enums/EHttpMethod';\nimport EndpointProtocol from 'core/enums/EEndpointProtocol';\n\n\nclass OdataCoreServiceBase extends ServiceBase {\n\n\tasync get( params: IOdataGetRequest ): Promise {\n\n\t\tconst apiFetchConfig: IFetchExtension = {\n\t\t\t// protocol: EndpointProtocol.ODATA,\n method: HttpMethodEnum.GET,\n\t\t\tlanguage: params.language,\n \n\t\t\tsourcePath: this.sourcePath,\n\t\t\tqueryOptions: params.queryOptions\n\t\t}\n\n\t\treturn FetchExtension(apiFetchConfig);\n\t\n }\n\n}\n\nexport default OdataCoreServiceBase;\n","import FetchExtension from 'core/extensions/FetchExtension';\n// service \nimport OdataCoreServiceBase from 'core/services/OdataCoreServiceBase';\n// interface\nimport IFetchExtension from 'core/interfaces/IFetchExtension';\nimport { IOdataDetailRequest } from 'core/interfaces/IDetailRequest';\n// enum\nimport HttpMethodEnum from 'core/enums/EHttpMethod';\nimport EndpointProtocol from 'core/enums/EEndpointProtocol';\n\n\nclass OdataReadOnlyServiceBase extends OdataCoreServiceBase {\n\n\tasync details( params: IOdataDetailRequest ): Promise {\n\n\t\tconst apiFetchConfig: IFetchExtension = {\n // protocol: EndpointProtocol.ODATA,\n\t\t\tmethod: HttpMethodEnum.GET,\n language: params.language,\n\n\t\t\tsourcePath: `${this.sourcePath}/${params.key}/details`,\n\t\t}\n\n\t\treturn FetchExtension(apiFetchConfig);\n\t\n }\n\n}\n\nexport default OdataReadOnlyServiceBase;\n","import FetchExtension from 'core/extensions/FetchExtension';\n// service \nimport OdataReadOnlyServiceBase from 'core/services/OdataReadOnlyServiceBase';\n// interface\nimport IFetchExtension from 'core/interfaces/IFetchExtension';\nimport { IOdataPostRequest } from 'core/interfaces/IPostRequest';\nimport { IOdataDeleteRequest } from 'core/interfaces/IDeleteRequest';\n// enum\nimport HttpMethodEnum from 'core/enums/EHttpMethod';\nimport EndpointProtocol from 'core/enums/EEndpointProtocol';\n\n\nclass OdataServiceBase extends OdataReadOnlyServiceBase {\n\n\tasync post ( params: IOdataPostRequest ): Promise {\n\n\t\tconst apiFetchConfig: IFetchExtension = {\n // protocol: EndpointProtocol.ODATA,\n\t\t\tmethod: HttpMethodEnum.POST,\n\t\t\tlanguage: params.language,\n\n\t\t\tsourcePath: this.sourcePath,\n\t\t\tbody: params.body,\n\t\t}\n\n\t\treturn FetchExtension(apiFetchConfig);\n\n\t}\n\n async delete( params: IOdataDeleteRequest ): Promise {\n\n\t\tconst apiFetchConfig: IFetchExtension = {\n // protocol: EndpointProtocol.ODATA,\n\t\t\tmethod: HttpMethodEnum.DELETE,\n language: params.language,\n\n\t\t\tsourcePath: `${this.sourcePath}/${params.key}`,\n\t\t}\n\n\t\treturn FetchExtension(apiFetchConfig);\n\t\n }\n\n}\n\nexport default OdataServiceBase;\n","// interface\nimport IServiceBase from \"core/interfaces/IServiceBase\";\n\n\nclass ServiceBase {\n\n sourcePath: string = \"\";\n code: string = \"\";\n\n constructor ( { sourcePath }: IServiceBase ) {\n this.sourcePath = sourcePath\n }\n\n}\n\nexport default ServiceBase;\n","import OdataServiceBase from 'core/services/OdataServiceBase';\n\n\nclass ContentMetricsService extends OdataServiceBase {\n\t\n static code = \"00A\";\n code = \"00A\";\n\n\tconstructor () {\n\t\tsuper({\n\t\t\tsourcePath: \"content-metrics\"\n\t\t});\n\t}\n\t\n}\n\nexport default ContentMetricsService;\n","import ActionCore from 'core/actions/ActionCore';\n\n\nconst screenCode = \"ECOM\";\nclass CMSAction extends ActionCore {\n\n constructor( dispatch:any ) {\n super( dispatch, \"\", screenCode);\n\n this.serviceCode = \"Core\";\n }\n\n // product details popup\n openProductDetailPopup ( payload:any ) {\n this.store(\"PDP\", payload);\n this.fetching(\"PDP\");\n }\n\n closeProductDetailPopup () {\n this.clean(\"PDP\");\n this.store(\"PDP\", {});\n }\n\n \n\n}\n\nexport default CMSAction;\n","// action \nimport OdataReadOnlyActionBase from \"core/actions/OdataReadOnlyActionBase\";\nimport EActionType from \"core/enums/EActionType\";\nimport { IActionGetOdata } from \"core/interfaces/IActionGet\";\nimport IActionRunParams from \"core/interfaces/IActionRunParams\";\n// service\nimport ClientProductsService from \"ecommerce/services/ClientProductsService\";\n\n\nclass ClientProductsServiceAction extends OdataReadOnlyActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, ClientProductsService, screenCode);\n }\n\n async search ( params: IActionGetOdata ) {\n\n this.fetching(EActionType.LIST);\n\n const serviceParams: IActionRunParams = {\n args: {\n ...params.args, \n actionType: EActionType.LIST\n },\n servicePayload: params.servicePayload\n }\n\n this.executeService( this.service.search.bind(this.service), serviceParams );\n \n }\n\n}\n\nexport default ClientProductsServiceAction;\n","// action \nimport OdataReadOnlyActionBase from \"core/actions/OdataReadOnlyActionBase\";\n// service\nimport StockStatusService from \"ecommerce/services/enum/StockStatusService\";\n\n\nclass StockStatusServiceAction extends OdataReadOnlyActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, StockStatusService, screenCode);\n }\n\n}\n\nexport default StockStatusServiceAction;\n","import HttpMethodEnum from 'core/enums/EHttpMethod';\nimport FetchExtension from 'core/extensions/FetchExtension';\nimport IFetchExtension from \"core/interfaces/IFetchExtension\";\nimport { IOdataGetRequest } from \"core/interfaces/IGetRequest\";\nimport ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientProductsService extends ReadOnlyOdataServiceBase {\n\n static code = \"402\";\n code = \"402\";\n\n constructor () {\n super({\n sourcePath: \"client-products\"\n });\n }\n\n async search( params: IOdataGetRequest ): Promise {\n\n\t\tconst apiFetchConfig: IFetchExtension = {\n\t\t\t// protocol: EndpointProtocol.ODATA,\n method: HttpMethodEnum.GET,\n\t\t\tlanguage: params.language,\n \n\t\t\tsourcePath: `${this.sourcePath}/search`,\n\t\t\tqueryOptions: params.queryOptions\n\t\t}\n\n\t\treturn FetchExtension(apiFetchConfig);\n\t\n }\n\n}\n\nexport default ClientProductsService;\n","import FetchExtension from 'core/extensions/FetchExtension';\n// service\nimport ServiceBase from 'core/services/ServiceBase';\n// interface\nimport IFetchExtension from 'core/interfaces/IFetchExtension';\nimport { IApiGetRequest } from 'core/interfaces/IGetRequest';\n// enum\nimport HttpMethodEnum from \"core/enums/EHttpMethod\";\n\n\nclass EnumService extends ServiceBase {\n\t\n static code = \"003\";\n code = \"003\";\n\n\tconstructor () {\n\t\tsuper({\n\t\t\tsourcePath: \"enums\"\n\t\t});\n\t}\n\n get( params: IApiGetRequest ): Promise {\n \n\t\tconst apiFetchConfig: IFetchExtension = {\n // protocol: EndpointProtocol.ODATA,\n\t\t\tmethod: HttpMethodEnum.GET,\n language: params.language,\n\n sourcePath: `${this.sourcePath}/${params.key}`,\n\t\t}\n\n\t\treturn FetchExtension(apiFetchConfig);\n\n\t}\n\n}\n\nexport default EnumService;\n","import FetchExtension from 'core/extensions/FetchExtension';\n// service\nimport EnumService from 'core/services/enum/EnumService';\n// interface\nimport IFetchExtension from 'core/interfaces/IFetchExtension';\nimport { IApiGetRequest } from 'core/interfaces/IGetRequest';\n// enum\nimport HttpMethodEnum from \"core/enums/EHttpMethod\";\n\n\nclass StockStatusService extends EnumService {\n\t\n static code = \"405\";\n code = \"405\";\n\n get( params: IApiGetRequest ): Promise {\n \n\t\tconst apiFetchConfig: IFetchExtension = {\n // protocol: EndpointProtocol.ODATA,\n\t\t\tmethod: HttpMethodEnum.GET,\n language: params.language,\n\n sourcePath: `${this.sourcePath}/StockStatus`,\n\t\t}\n\n\t\treturn FetchExtension(apiFetchConfig);\n\n\t}\n\n}\n\nexport default StockStatusService;\n","var e,n,t,i,r,a=-1,o=function(e){addEventListener(\"pageshow\",(function(n){n.persisted&&(a=n.timeStamp,e(n))}),!0)},c=function(){return window.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0]},u=function(){var e=c();return e&&e.activationStart||0},f=function(e,n){var t=c(),i=\"navigate\";a>=0?i=\"back-forward-cache\":t&&(document.prerendering||u()>0?i=\"prerender\":document.wasDiscarded?i=\"restore\":t.type&&(i=t.type.replace(/_/g,\"-\")));return{name:e,value:void 0===n?-1:n,rating:\"good\",delta:0,entries:[],id:\"v3-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:i}},s=function(e,n,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var i=new PerformanceObserver((function(e){Promise.resolve().then((function(){n(e.getEntries())}))}));return i.observe(Object.assign({type:e,buffered:!0},t||{})),i}}catch(e){}},d=function(e,n,t,i){var r,a;return function(o){n.value>=0&&(o||i)&&((a=n.value-(r||0))||void 0===r)&&(r=n.value,n.delta=a,n.rating=function(e,n){return e>n[1]?\"poor\":e>n[0]?\"needs-improvement\":\"good\"}(n.value,t),e(n))}},l=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){var n=function(n){\"pagehide\"!==n.type&&\"hidden\"!==document.visibilityState||e(n)};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},v=function(e){var n=!1;return function(t){n||(e(t),n=!0)}},m=-1,h=function(){return\"hidden\"!==document.visibilityState||document.prerendering?1/0:0},g=function(e){\"hidden\"===document.visibilityState&&m>-1&&(m=\"visibilitychange\"===e.type?e.timeStamp:0,T())},y=function(){addEventListener(\"visibilitychange\",g,!0),addEventListener(\"prerenderingchange\",g,!0)},T=function(){removeEventListener(\"visibilitychange\",g,!0),removeEventListener(\"prerenderingchange\",g,!0)},E=function(){return m<0&&(m=h(),y(),o((function(){setTimeout((function(){m=h(),y()}),0)}))),{get firstHiddenTime(){return m}}},C=function(e){document.prerendering?addEventListener(\"prerenderingchange\",(function(){return e()}),!0):e()},L=[1800,3e3],w=function(e,n){n=n||{},C((function(){var t,i=E(),r=f(\"FCP\"),a=s(\"paint\",(function(e){e.forEach((function(e){\"first-contentful-paint\"===e.name&&(a.disconnect(),e.startTimei.value&&(i.value=r,i.entries=a,t())},u=s(\"layout-shift\",c);u&&(t=d(e,i,b,n.reportAllChanges),p((function(){c(u.takeRecords()),t(!0)})),o((function(){r=0,i=f(\"CLS\",0),t=d(e,i,b,n.reportAllChanges),l((function(){return t()}))})),setTimeout(t,0))})))},A={passive:!0,capture:!0},I=new Date,P=function(i,r){e||(e=r,n=i,t=new Date,k(removeEventListener),F())},F=function(){if(n>=0&&n1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,n){var t=function(){P(e,n),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",t,A),removeEventListener(\"pointercancel\",i,A)};addEventListener(\"pointerup\",t,A),addEventListener(\"pointercancel\",i,A)}(n,e):P(n,e)}},k=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(n){return e(n,M,A)}))},D=[100,300],x=function(t,r){r=r||{},C((function(){var a,c=E(),u=f(\"FID\"),l=function(e){e.startTimen.latency){if(t)t.entries.push(e),t.latency=Math.max(t.latency,e.duration);else{var i={id:e.interactionId,latency:e.duration,entries:[e]};J[i.id]=i,G.push(i)}G.sort((function(e,n){return n.latency-e.latency})),G.splice(10).forEach((function(e){delete J[e.id]}))}},Q=function(e,n){n=n||{},C((function(){var t;q();var i,r=f(\"INP\"),a=function(e){e.forEach((function(e){(e.interactionId&&K(e),\"first-input\"===e.entryType)&&(!G.some((function(n){return n.entries.some((function(n){return e.duration===n.duration&&e.startTime===n.startTime}))}))&&K(e))}));var n,t=(n=Math.min(G.length-1,Math.floor(z()/50)),G[n]);t&&t.latency!==r.value&&(r.value=t.latency,r.entries=t.entries,i())},c=s(\"event\",a,{durationThreshold:null!==(t=n.durationThreshold)&&void 0!==t?t:40});i=d(e,r,j,n.reportAllChanges),c&&(\"PerformanceEventTiming\"in window&&\"interactionId\"in PerformanceEventTiming.prototype&&c.observe({type:\"first-input\",buffered:!0}),p((function(){a(c.takeRecords()),r.value<0&&z()>0&&(r.value=0,r.entries=[]),i(!0)})),o((function(){G=[],_=O(),r=f(\"INP\"),i=d(e,r,j,n.reportAllChanges)})))}))},U=[2500,4e3],V={},W=function(e,n){n=n||{},C((function(){var t,i=E(),r=f(\"LCP\"),a=function(e){var n=e[e.length-1];n&&n.startTimeperformance.now())return;t.value=Math.max(a-u(),0),t.entries=[r],i(!0),o((function(){t=f(\"TTFB\",0),(i=d(e,t,X,n.reportAllChanges))(!0)}))}}))};export{b as CLSThresholds,L as FCPThresholds,D as FIDThresholds,j as INPThresholds,U as LCPThresholds,X as TTFBThresholds,S as getCLS,w as getFCP,x as getFID,Q as getINP,W as getLCP,Z as getTTFB,S as onCLS,w as onFCP,x as onFID,Q as onINP,W as onLCP,Z as onTTFB};\n","import ReactGA from 'react-ga4';\nimport Lodash from \"lodash\";\nimport { onCLS, onFCP, onFID, onINP, onLCP, onTTFB } from 'web-vitals';\n\n\nvar instance:any = null;\n\nclass IAnalytics {\n\n isActive:boolean;\n\n constructor() {\n\n this.isActive = false;\n this.init();\n \n }\n\n init() {\n\n }\n\n sendWebVitalsData( metric:any ) {\n\n }\n\n sendPageView( page:string, title:string ) {\n\n }\n\n}\n\nclass GoogleAnalytics extends IAnalytics {\n\n init () {\n\n if ( process.env.GOOGLE_ANALYTICS && !Lodash.isEmpty(process.env.GOOGLE_ANALYTICS) ) {\n ReactGA.initialize(process.env.GOOGLE_ANALYTICS);\n this.isActive = true;\n }\n \n }\n\n sendPageView ( page:string, title:string ) {\n \n if ( this.isActive ) {\n ReactGA.send({ hitType: \"pageview\", page, title });\n }\n \n }\n\n sendWebVitalsData ( metric:any ) {\n \n // if ( this.isActive && metric !== null ) {\n // ReactGA.event({\n // eventCategory: 'Web Vitals',\n // eventAction: metric.name,\n // eventValue: Math.round(metric.name === 'CLS' ? metric.value * 1000 : metric.value), // values must be integers\n // eventLabel: metric.id, // id unique to current page load\n // nonInteraction: true, // avoids affecting bounce rate\n // });\n // }\n \n }\n\n}\n\nclass ApiAnalytics extends IAnalytics {\n\n}\n\nclass SerializeAnalytics extends IAnalytics {\n\n init () {\n\n this.isActive = true;\n \n }\n\n sendPageView ( page:string, title:string ) {\n \n console.table({ hitType: \"pageview\", page, title })\n \n }\n\n sendWebVitalsData ( metric:any ) {\n\n console.table(JSON.parse(JSON.stringify(metric)));\n \n }\n\n}\n\nclass AnalyticsExtension {\n\n googleAnalytics:GoogleAnalytics;\n apiAnalytics:ApiAnalytics;\n serializeAnalytics:SerializeAnalytics;\n\n constructor() {\n\n this.googleAnalytics = new GoogleAnalytics();\n this.apiAnalytics = new ApiAnalytics();\n this.serializeAnalytics = new SerializeAnalytics();\n\n console.log(\"test:\", process.env);\n\n this.webVitals();\n \n }\n\n initGoogleAnalytics () {\n \n this.googleAnalytics.init();\n \n }\n\n initApiAnalytics () {\n \n this.apiAnalytics.init()\n \n }\n\n initSerializeAnalytics () {\n \n this.serializeAnalytics.init()\n \n }\n\n sendWebVitals ( metric:any ) {\n \n this.googleAnalytics.sendWebVitalsData(metric);\n this.apiAnalytics.sendWebVitalsData(metric);\n this.serializeAnalytics.sendWebVitalsData(metric);\n \n }\n\n sendPageView ( page:string, title:string) {\n \n this.googleAnalytics.sendPageView( page, title );\n this.apiAnalytics.sendPageView( page, title );\n this.serializeAnalytics.sendPageView( page, title );\n \n }\n\n send ( webVitalMetric:any, page:string, title:string ) {\n \n this.sendWebVitals(webVitalMetric);\n this.sendPageView( page, title );\n \n }\n\n webVitals () {\n \n onCLS(this.sendWebVitals.bind(this));\n onFCP(this.sendWebVitals.bind(this));\n onFID(this.sendWebVitals.bind(this));\n onINP(this.sendWebVitals.bind(this));\n onLCP(this.sendWebVitals.bind(this));\n onTTFB(this.sendWebVitals.bind(this));\n \n }\n\n}\n\nif ( !instance ) instance = new AnalyticsExtension();\n\nexport default instance;\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 { runIdentityFunctionCheck } from './devModeChecks/identityFunctionCheck'\r\nimport { runInputStabilityCheck } from './devModeChecks/inputStabilityCheck'\r\nimport { globalDevModeChecks } from './devModeChecks/setGlobalDevModeChecks'\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\r\nimport type {\r\n DevModeChecks,\r\n Selector,\r\n SelectorArray,\r\n DevModeChecksExecutionInfo\r\n} from './types'\r\n\r\nexport const NOT_FOUND = /* @__PURE__ */ Symbol('NOT_FOUND')\r\nexport type NOT_FOUND_TYPE = typeof NOT_FOUND\r\n\r\n/**\r\n * Assert that the provided value is a function. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param func - The value to be checked.\r\n * @param errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsFunction(\r\n func: unknown,\r\n errorMessage = `expected a function, instead received ${typeof func}`\r\n): asserts func is FunctionType {\r\n if (typeof func !== 'function') {\r\n throw new TypeError(errorMessage)\r\n }\r\n}\r\n\r\n/**\r\n * Assert that the provided value is an object. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param object - The value to be checked.\r\n * @param errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsObject>(\r\n object: unknown,\r\n errorMessage = `expected an object, instead received ${typeof object}`\r\n): asserts object is ObjectType {\r\n if (typeof object !== 'object') {\r\n throw new TypeError(errorMessage)\r\n }\r\n}\r\n\r\n/**\r\n * Assert that the provided array is an array of functions. If the assertion fails,\r\n * a `TypeError` is thrown with an optional custom error message.\r\n *\r\n * @param array - The array to be checked.\r\n * @param errorMessage - An optional custom error message to use if the assertion fails.\r\n * @throws A `TypeError` if the assertion fails.\r\n */\r\nexport function assertIsArrayOfFunctions(\r\n array: unknown[],\r\n errorMessage = `expected all items to be functions, instead received the following types: `\r\n): asserts array is FunctionType[] {\r\n if (\r\n !array.every((item): item is FunctionType => typeof item === 'function')\r\n ) {\r\n const itemTypes = array\r\n .map(item =>\r\n typeof item === 'function'\r\n ? `function ${item.name || 'unnamed'}()`\r\n : typeof item\r\n )\r\n .join(', ')\r\n throw new TypeError(`${errorMessage}[${itemTypes}]`)\r\n }\r\n}\r\n\r\n/**\r\n * Ensure that the input is an array. If it's already an array, it's returned as is.\r\n * If it's not an array, it will be wrapped in a new array.\r\n *\r\n * @param item - The item to be checked.\r\n * @returns An array containing the input item. If the input is already an array, it's returned without modification.\r\n */\r\nexport const ensureIsArray = (item: unknown) => {\r\n return Array.isArray(item) ? item : [item]\r\n}\r\n\r\n/**\r\n * Extracts the \"dependencies\" / \"input selectors\" from the arguments of `createSelector`.\r\n *\r\n * @param createSelectorArgs - Arguments passed to `createSelector` as an array.\r\n * @returns An array of \"input selectors\" / \"dependencies\".\r\n * @throws A `TypeError` if any of the input selectors is not function.\r\n */\r\nexport function getDependencies(createSelectorArgs: unknown[]) {\r\n const dependencies = Array.isArray(createSelectorArgs[0])\r\n ? createSelectorArgs[0]\r\n : createSelectorArgs\r\n\r\n assertIsArrayOfFunctions(\r\n dependencies,\r\n `createSelector expects all input-selectors to be functions, but received the following types: `\r\n )\r\n\r\n return dependencies as SelectorArray\r\n}\r\n\r\n/**\r\n * Runs each input selector and returns their collective results as an array.\r\n *\r\n * @param dependencies - An array of \"dependencies\" or \"input selectors\".\r\n * @param inputSelectorArgs - An array of arguments being passed to the input selectors.\r\n * @returns An array of input selector results.\r\n */\r\nexport function collectInputSelectorResults(\r\n dependencies: SelectorArray,\r\n inputSelectorArgs: unknown[] | IArguments\r\n) {\r\n const inputSelectorResults = []\r\n const { length } = dependencies\r\n for (let i = 0; i < length; i++) {\r\n // @ts-ignore\r\n // apply arguments instead of spreading and mutate a local list of params for performance.\r\n inputSelectorResults.push(dependencies[i].apply(null, inputSelectorArgs))\r\n }\r\n return inputSelectorResults\r\n}\r\n\r\n/**\r\n * Retrieves execution information for development mode checks.\r\n *\r\n * @param devModeChecks - Custom Settings for development mode checks. These settings will override the global defaults.\r\n * @param firstRun - Indicates whether it is the first time the selector has run.\r\n * @returns An object containing the execution information for each development mode check.\r\n */\r\nexport const getDevModeChecksExecutionInfo = (\r\n firstRun: boolean,\r\n devModeChecks: Partial\r\n) => {\r\n const { identityFunctionCheck, inputStabilityCheck } = {\r\n ...globalDevModeChecks,\r\n ...devModeChecks\r\n }\r\n return {\r\n identityFunctionCheck: {\r\n shouldRun:\r\n identityFunctionCheck === 'always' ||\r\n (identityFunctionCheck === 'once' && firstRun),\r\n run: runIdentityFunctionCheck\r\n },\r\n inputStabilityCheck: {\r\n shouldRun:\r\n inputStabilityCheck === 'always' ||\r\n (inputStabilityCheck === 'once' && firstRun),\r\n run: runInputStabilityCheck\r\n }\r\n } satisfies DevModeChecksExecutionInfo\r\n}\r\n","// Original source:\r\n// - https://github.com/simonihmig/tracked-redux/blob/master/packages/tracked-redux/src/-private/proxy.ts\r\n\r\nimport type { Node, Tag } from './tracking'\r\nimport {\r\n consumeCollection,\r\n consumeTag,\r\n createTag,\r\n dirtyCollection,\r\n dirtyTag\r\n} from './tracking'\r\n\r\nexport const REDUX_PROXY_LABEL = Symbol()\r\n\r\nlet nextId = 0\r\n\r\nconst proto = Object.getPrototypeOf({})\r\n\r\nclass ObjectTreeNode> implements Node {\r\n proxy: T = new Proxy(this, objectProxyHandler) as unknown as T\r\n tag = createTag()\r\n tags = {} as Record\r\n children = {} as Record\r\n collectionTag = null\r\n id = nextId++\r\n\r\n constructor(public value: T) {\r\n this.value = value\r\n this.tag.value = value\r\n }\r\n}\r\n\r\nconst objectProxyHandler = {\r\n get(node: Node, key: string | symbol): unknown {\r\n function calculateResult() {\r\n const { value } = node\r\n\r\n const childValue = Reflect.get(value, key)\r\n\r\n if (typeof key === 'symbol') {\r\n return childValue\r\n }\r\n\r\n if (key in proto) {\r\n return childValue\r\n }\r\n\r\n if (typeof childValue === 'object' && childValue !== null) {\r\n let childNode = node.children[key]\r\n\r\n if (childNode === undefined) {\r\n childNode = node.children[key] = createNode(childValue)\r\n }\r\n\r\n if (childNode.tag) {\r\n consumeTag(childNode.tag)\r\n }\r\n\r\n return childNode.proxy\r\n } else {\r\n let tag = node.tags[key]\r\n\r\n if (tag === undefined) {\r\n tag = node.tags[key] = createTag()\r\n tag.value = childValue\r\n }\r\n\r\n consumeTag(tag)\r\n\r\n return childValue\r\n }\r\n }\r\n const res = calculateResult()\r\n return res\r\n },\r\n\r\n ownKeys(node: Node): ArrayLike {\r\n consumeCollection(node)\r\n return Reflect.ownKeys(node.value)\r\n },\r\n\r\n getOwnPropertyDescriptor(\r\n node: Node,\r\n prop: string | symbol\r\n ): PropertyDescriptor | undefined {\r\n return Reflect.getOwnPropertyDescriptor(node.value, prop)\r\n },\r\n\r\n has(node: Node, prop: string | symbol): boolean {\r\n return Reflect.has(node.value, prop)\r\n }\r\n}\r\n\r\nclass ArrayTreeNode> implements Node {\r\n proxy: T = new Proxy([this], arrayProxyHandler) as unknown as T\r\n tag = createTag()\r\n tags = {}\r\n children = {}\r\n collectionTag = null\r\n id = nextId++\r\n\r\n constructor(public value: T) {\r\n this.value = value\r\n this.tag.value = value\r\n }\r\n}\r\n\r\nconst arrayProxyHandler = {\r\n get([node]: [Node], key: string | symbol): unknown {\r\n if (key === 'length') {\r\n consumeCollection(node)\r\n }\r\n\r\n return objectProxyHandler.get(node, key)\r\n },\r\n\r\n ownKeys([node]: [Node]): ArrayLike {\r\n return objectProxyHandler.ownKeys(node)\r\n },\r\n\r\n getOwnPropertyDescriptor(\r\n [node]: [Node],\r\n prop: string | symbol\r\n ): PropertyDescriptor | undefined {\r\n return objectProxyHandler.getOwnPropertyDescriptor(node, prop)\r\n },\r\n\r\n has([node]: [Node], prop: string | symbol): boolean {\r\n return objectProxyHandler.has(node, prop)\r\n }\r\n}\r\n\r\nexport function createNode | Record>(\r\n value: T\r\n): Node {\r\n if (Array.isArray(value)) {\r\n return new ArrayTreeNode(value)\r\n }\r\n\r\n return new ObjectTreeNode(value) as Node\r\n}\r\n\r\nconst keysMap = new WeakMap<\r\n Array | Record,\r\n Set\r\n>()\r\n\r\nexport function updateNode | Record>(\r\n node: Node,\r\n newValue: T\r\n): void {\r\n const { value, tags, children } = node\r\n\r\n node.value = newValue\r\n\r\n if (\r\n Array.isArray(value) &&\r\n Array.isArray(newValue) &&\r\n value.length !== newValue.length\r\n ) {\r\n dirtyCollection(node)\r\n } else {\r\n if (value !== newValue) {\r\n let oldKeysSize = 0\r\n let newKeysSize = 0\r\n let anyKeysAdded = false\r\n\r\n for (const _key in value) {\r\n oldKeysSize++\r\n }\r\n\r\n for (const key in newValue) {\r\n newKeysSize++\r\n if (!(key in value)) {\r\n anyKeysAdded = true\r\n break\r\n }\r\n }\r\n\r\n const isDifferent = anyKeysAdded || oldKeysSize !== newKeysSize\r\n\r\n if (isDifferent) {\r\n dirtyCollection(node)\r\n }\r\n }\r\n }\r\n\r\n for (const key in tags) {\r\n const childValue = (value as Record)[key]\r\n const newChildValue = (newValue as Record)[key]\r\n\r\n if (childValue !== newChildValue) {\r\n dirtyCollection(node)\r\n dirtyTag(tags[key], newChildValue)\r\n }\r\n\r\n if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n delete tags[key]\r\n }\r\n }\r\n\r\n for (const key in children) {\r\n const childNode = children[key]\r\n const newChildValue = (newValue as Record)[key]\r\n\r\n const childValue = childNode.value\r\n\r\n if (childValue === newChildValue) {\r\n continue\r\n } else if (typeof newChildValue === 'object' && newChildValue !== null) {\r\n updateNode(childNode, newChildValue as Record)\r\n } else {\r\n deleteNode(childNode)\r\n delete children[key]\r\n }\r\n }\r\n}\r\n\r\nfunction deleteNode(node: Node): void {\r\n if (node.tag) {\r\n dirtyTag(node.tag, null)\r\n }\r\n dirtyCollection(node)\r\n for (const key in node.tags) {\r\n dirtyTag(node.tags[key], null)\r\n }\r\n for (const key in node.children) {\r\n deleteNode(node.children[key])\r\n }\r\n}\r\n","// Original source:\r\n// - https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react/src/ReactCache.js\r\n\r\nimport type {\r\n AnyFunction,\r\n DefaultMemoizeFields,\r\n EqualityFn,\r\n Simplify\r\n} from './types'\r\n\r\nclass StrongRef {\r\n constructor(private value: T) {}\r\n deref() {\r\n return this.value\r\n }\r\n}\r\n\r\nconst Ref =\r\n typeof WeakRef !== 'undefined'\r\n ? WeakRef\r\n : (StrongRef as unknown as typeof WeakRef)\r\n\r\nconst UNTERMINATED = 0\r\nconst TERMINATED = 1\r\n\r\ninterface UnterminatedCacheNode {\r\n /**\r\n * Status, represents whether the cached computation returned a value or threw an error.\r\n */\r\n s: 0\r\n /**\r\n * Value, either the cached result or an error, depending on status.\r\n */\r\n v: void\r\n /**\r\n * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n */\r\n o: null | WeakMap>\r\n /**\r\n * Primitive cache, a regular Map where primitive arguments are stored.\r\n */\r\n p: null | Map>\r\n}\r\n\r\ninterface TerminatedCacheNode {\r\n /**\r\n * Status, represents whether the cached computation returned a value or threw an error.\r\n */\r\n s: 1\r\n /**\r\n * Value, either the cached result or an error, depending on status.\r\n */\r\n v: T\r\n /**\r\n * Object cache, a `WeakMap` where non-primitive arguments are stored.\r\n */\r\n o: null | WeakMap>\r\n /**\r\n * Primitive cache, a regular `Map` where primitive arguments are stored.\r\n */\r\n p: null | Map>\r\n}\r\n\r\ntype CacheNode = TerminatedCacheNode | UnterminatedCacheNode\r\n\r\nfunction createCacheNode(): CacheNode {\r\n return {\r\n s: UNTERMINATED,\r\n v: undefined,\r\n o: null,\r\n p: null\r\n }\r\n}\r\n\r\n/**\r\n * Configuration options for a memoization function utilizing `WeakMap` for\r\n * its caching mechanism.\r\n *\r\n * @template Result - The type of the return value of the memoized function.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport interface WeakMapMemoizeOptions {\r\n /**\r\n * If provided, used to compare a newly generated output value against previous values in the cache.\r\n * If a match is found, the old value is returned. This addresses the common\r\n * ```ts\r\n * todos.map(todo => todo.id)\r\n * ```\r\n * use case, where an update to another field in the original data causes a recalculation\r\n * due to changed references, but the output is still effectively the same.\r\n *\r\n * @since 5.0.0\r\n */\r\n resultEqualityCheck?: EqualityFn\r\n}\r\n\r\n/**\r\n * Creates a tree of `WeakMap`-based cache nodes based on the identity of the\r\n * arguments it's been called with (in this case, the extracted values from your input selectors).\r\n * This allows `weakMapMemoize` to have an effectively infinite cache size.\r\n * Cache results will be kept in memory as long as references to the arguments still exist,\r\n * and then cleared out as the arguments are garbage-collected.\r\n *\r\n * __Design Tradeoffs for `weakMapMemoize`:__\r\n * - Pros:\r\n * - It has an effectively infinite cache size, but you have no control over\r\n * how long values are kept in cache as it's based on garbage collection and `WeakMap`s.\r\n * - Cons:\r\n * - There's currently no way to alter the argument comparisons.\r\n * They're based on strict reference equality.\r\n * - It's roughly the same speed as `lruMemoize`, although likely a fraction slower.\r\n *\r\n * __Use Cases for `weakMapMemoize`:__\r\n * - This memoizer is likely best used for cases where you need to call the\r\n * same selector instance with many different arguments, such as a single\r\n * selector instance that is used in a list item component and called with\r\n * item IDs like:\r\n * ```ts\r\n * useSelector(state => selectSomeData(state, props.category))\r\n * ```\r\n * @param func - The function to be memoized.\r\n * @returns A memoized function with a `.clearCache()` method attached.\r\n *\r\n * @example\r\n * Using `createSelector`\r\n * ```ts\r\n * import { createSelector, weakMapMemoize } from 'reselect'\r\n *\r\n * interface RootState {\r\n * items: { id: number; category: string; name: string }[]\r\n * }\r\n *\r\n * const selectItemsByCategory = createSelector(\r\n * [\r\n * (state: RootState) => state.items,\r\n * (state: RootState, category: string) => category\r\n * ],\r\n * (items, category) => items.filter(item => item.category === category),\r\n * {\r\n * memoize: weakMapMemoize,\r\n * argsMemoize: weakMapMemoize\r\n * }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * Using `createSelectorCreator`\r\n * ```ts\r\n * import { createSelectorCreator, weakMapMemoize } from 'reselect'\r\n *\r\n * const createSelectorWeakMap = createSelectorCreator({ memoize: weakMapMemoize, argsMemoize: weakMapMemoize })\r\n *\r\n * const selectItemsByCategory = createSelectorWeakMap(\r\n * [\r\n * (state: RootState) => state.items,\r\n * (state: RootState, category: string) => category\r\n * ],\r\n * (items, category) => items.filter(item => item.category === category)\r\n * )\r\n * ```\r\n *\r\n * @template Func - The type of the function that is memoized.\r\n *\r\n * @see {@link https://reselect.js.org/api/weakMapMemoize `weakMapMemoize`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n * @experimental\r\n */\r\nexport function weakMapMemoize(\r\n func: Func,\r\n options: WeakMapMemoizeOptions> = {}\r\n) {\r\n let fnNode = createCacheNode()\r\n const { resultEqualityCheck } = options\r\n\r\n let lastResult: WeakRef | undefined\r\n\r\n let resultsCount = 0\r\n\r\n function memoized() {\r\n let cacheNode = fnNode\r\n const { length } = arguments\r\n for (let i = 0, l = length; i < l; i++) {\r\n const arg = arguments[i]\r\n if (\r\n typeof arg === 'function' ||\r\n (typeof arg === 'object' && arg !== null)\r\n ) {\r\n // Objects go into a WeakMap\r\n let objectCache = cacheNode.o\r\n if (objectCache === null) {\r\n cacheNode.o = objectCache = new WeakMap()\r\n }\r\n const objectNode = objectCache.get(arg)\r\n if (objectNode === undefined) {\r\n cacheNode = createCacheNode()\r\n objectCache.set(arg, cacheNode)\r\n } else {\r\n cacheNode = objectNode\r\n }\r\n } else {\r\n // Primitives go into a regular Map\r\n let primitiveCache = cacheNode.p\r\n if (primitiveCache === null) {\r\n cacheNode.p = primitiveCache = new Map()\r\n }\r\n const primitiveNode = primitiveCache.get(arg)\r\n if (primitiveNode === undefined) {\r\n cacheNode = createCacheNode()\r\n primitiveCache.set(arg, cacheNode)\r\n } else {\r\n cacheNode = primitiveNode\r\n }\r\n }\r\n }\r\n\r\n const terminatedNode = cacheNode as unknown as TerminatedCacheNode\r\n\r\n let result\r\n\r\n if (cacheNode.s === TERMINATED) {\r\n result = cacheNode.v\r\n } else {\r\n // Allow errors to propagate\r\n result = func.apply(null, arguments as unknown as any[])\r\n resultsCount++\r\n\r\n if (resultEqualityCheck) {\r\n const lastResultValue = lastResult?.deref?.() ?? lastResult\r\n\r\n if (\r\n lastResultValue != null &&\r\n resultEqualityCheck(lastResultValue as ReturnType, result)\r\n ) {\r\n result = lastResultValue\r\n\r\n resultsCount !== 0 && resultsCount--\r\n }\r\n\r\n const needsWeakRef =\r\n (typeof result === 'object' && result !== null) ||\r\n typeof result === 'function'\r\n\r\n lastResult = needsWeakRef ? new Ref(result) : result\r\n }\r\n }\r\n\r\n terminatedNode.s = TERMINATED\r\n\r\n terminatedNode.v = result\r\n return result\r\n }\r\n\r\n memoized.clearCache = () => {\r\n fnNode = createCacheNode()\r\n memoized.resetResultsCount()\r\n }\r\n\r\n memoized.resultsCount = () => resultsCount\r\n\r\n memoized.resetResultsCount = () => {\r\n resultsCount = 0\r\n }\r\n\r\n return memoized as Func & Simplify\r\n}\r\n","import { weakMapMemoize } from './weakMapMemoize'\r\n\r\nimport type {\r\n Combiner,\r\n CreateSelectorOptions,\r\n DropFirstParameter,\r\n ExtractMemoizerFields,\r\n GetParamsFromSelectors,\r\n GetStateFromSelectors,\r\n InterruptRecursion,\r\n OutputSelector,\r\n Selector,\r\n SelectorArray,\r\n SetRequired,\r\n Simplify,\r\n UnknownMemoizer\r\n} from './types'\r\n\r\nimport {\r\n assertIsFunction,\r\n collectInputSelectorResults,\r\n ensureIsArray,\r\n getDependencies,\r\n getDevModeChecksExecutionInfo\r\n} from './utils'\r\n\r\n/**\r\n * An instance of `createSelector`, customized with a given memoize implementation.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template StateType - The type of state that the selectors created with this selector creator will operate on.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSelectorFunction<\r\n MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n StateType = any\r\n> {\r\n /**\r\n * Creates a memoized selector function.\r\n *\r\n * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments and a `combiner` function.\r\n * @returns A memoized output selector.\r\n *\r\n * @template InputSelectors - The type of the input selectors as an array.\r\n * @template Result - The return type of the `combiner` as well as the output selector.\r\n * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n */\r\n , Result>(\r\n ...createSelectorArgs: [\r\n ...inputSelectors: InputSelectors,\r\n combiner: Combiner\r\n ]\r\n ): OutputSelector<\r\n InputSelectors,\r\n Result,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a memoized selector function.\r\n *\r\n * @param createSelectorArgs - An arbitrary number of input selectors as separate inline arguments, a `combiner` function and an `options` object.\r\n * @returns A memoized output selector.\r\n *\r\n * @template InputSelectors - The type of the input selectors as an array.\r\n * @template Result - The return type of the `combiner` as well as the output selector.\r\n * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n */\r\n <\r\n InputSelectors extends SelectorArray,\r\n Result,\r\n OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n >(\r\n ...createSelectorArgs: [\r\n ...inputSelectors: InputSelectors,\r\n combiner: Combiner,\r\n createSelectorOptions: Simplify<\r\n CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n >\r\n ]\r\n ): OutputSelector<\r\n InputSelectors,\r\n Result,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a memoized selector function.\r\n *\r\n * @param inputSelectors - An array of input selectors.\r\n * @param combiner - A function that Combines the input selectors and returns an output selector. Otherwise known as the result function.\r\n * @param createSelectorOptions - An optional options object that allows for further customization per selector.\r\n * @returns A memoized output selector.\r\n *\r\n * @template InputSelectors - The type of the input selectors array.\r\n * @template Result - The return type of the `combiner` as well as the output selector.\r\n * @template OverrideMemoizeFunction - The type of the optional `memoize` function that could be passed into the options object to override the original `memoize` function that was initially passed into `createSelectorCreator`.\r\n * @template OverrideArgsMemoizeFunction - The type of the optional `argsMemoize` function that could be passed into the options object to override the original `argsMemoize` function that was initially passed into `createSelectorCreator`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createselector `createSelector`}\r\n */\r\n <\r\n InputSelectors extends SelectorArray,\r\n Result,\r\n OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n >(\r\n inputSelectors: [...InputSelectors],\r\n combiner: Combiner,\r\n createSelectorOptions?: Simplify<\r\n CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n >\r\n ): OutputSelector<\r\n InputSelectors,\r\n Result,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a \"pre-typed\" version of {@linkcode createSelector createSelector}\r\n * where the `state` type is predefined.\r\n *\r\n * This allows you to set the `state` type once, eliminating the need to\r\n * specify it with every {@linkcode createSelector createSelector} call.\r\n *\r\n * @returns A pre-typed `createSelector` with the state type already defined.\r\n *\r\n * @example\r\n * ```ts\r\n * import { createSelector } from 'reselect'\r\n *\r\n * export interface RootState {\r\n * todos: { id: number; completed: boolean }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * export const createAppSelector = createSelector.withTypes()\r\n *\r\n * const selectTodoIds = createAppSelector(\r\n * [\r\n * // Type of `state` is set to `RootState`, no need to manually set the type\r\n * state => state.todos\r\n * ],\r\n * todos => todos.map(({ id }) => id)\r\n * )\r\n * ```\r\n * @template OverrideStateType - The specific type of state used by all selectors created with this selector creator.\r\n *\r\n * @see {@link https://reselect.js.org/api/createselector#defining-a-pre-typed-createselector `createSelector.withTypes`}\r\n *\r\n * @since 5.1.0\r\n */\r\n withTypes: () => CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideStateType\r\n >\r\n}\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param options - An options object containing the `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). It also provides additional options for customizing memoization. While the `memoize` property is mandatory, the rest are optional.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator({\r\n * memoize: customMemoize, // Function to be used to memoize `resultFunc`\r\n * memoizeOptions: [memoizeOption1, memoizeOption2], // Options passed to `customMemoize` as the second argument onwards\r\n * argsMemoize: customArgsMemoize, // Function to be used to memoize the selector's arguments\r\n * argsMemoizeOptions: [argsMemoizeOption1, argsMemoizeOption2] // Options passed to `customArgsMemoize` as the second argument onwards\r\n * })\r\n *\r\n * const customSelector = customCreateSelector(\r\n * [inputSelector1, inputSelector2],\r\n * resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n *\r\n * customSelector(\r\n * ...selectorArgs // Will be memoized by `customArgsMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-options-since-500 `createSelectorCreator`}\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport function createSelectorCreator<\r\n MemoizeFunction extends UnknownMemoizer,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n>(\r\n options: Simplify<\r\n SetRequired<\r\n CreateSelectorOptions<\r\n typeof weakMapMemoize,\r\n typeof weakMapMemoize,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >,\r\n 'memoize'\r\n >\r\n >\r\n): CreateSelectorFunction\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization function\r\n * and options for customizing memoization behavior.\r\n *\r\n * @param memoize - The `memoize` function responsible for memoizing the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @example\r\n * ```ts\r\n * const customCreateSelector = createSelectorCreator(customMemoize, // Function to be used to memoize `resultFunc`\r\n * option1, // Will be passed as second argument to `customMemoize`\r\n * option2, // Will be passed as third argument to `customMemoize`\r\n * option3 // Will be passed as fourth argument to `customMemoize`\r\n * )\r\n *\r\n * const customSelector = customCreateSelector(\r\n * [inputSelector1, inputSelector2],\r\n * resultFunc // `resultFunc` will be passed as the first argument to `customMemoize`\r\n * )\r\n * ```\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelectorCreator#using-memoize-and-memoizeoptions `createSelectorCreator`}\r\n *\r\n * @public\r\n */\r\nexport function createSelectorCreator(\r\n memoize: MemoizeFunction,\r\n ...memoizeOptionsFromArgs: DropFirstParameter\r\n): CreateSelectorFunction\r\n\r\n/**\r\n * Creates a selector creator function with the specified memoization\r\n * function and options for customizing memoization behavior.\r\n *\r\n * @param memoizeOrOptions - Either A `memoize` function or an `options` object containing the `memoize` function.\r\n * @param memoizeOptionsFromArgs - Optional configuration options for the memoization function. These options are then passed to the memoize function as the second argument onwards.\r\n * @returns A customized `createSelector` function.\r\n *\r\n * @template MemoizeFunction - The type of the memoize function that is used to memoize the `resultFunc` inside `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`).\r\n * @template ArgsMemoizeFunction - The type of the optional memoize function that is used to memoize the arguments passed into the output selector generated by `createSelector` (e.g., `lruMemoize` or `weakMapMemoize`). If none is explicitly provided, `weakMapMemoize` will be used.\r\n * @template MemoizeOrOptions - The type of the first argument. It can either be a `memoize` function or an `options` object containing the `memoize` function.\r\n */\r\nexport function createSelectorCreator<\r\n MemoizeFunction extends UnknownMemoizer,\r\n ArgsMemoizeFunction extends UnknownMemoizer,\r\n MemoizeOrOptions extends\r\n | MemoizeFunction\r\n | SetRequired<\r\n CreateSelectorOptions,\r\n 'memoize'\r\n >\r\n>(\r\n memoizeOrOptions: MemoizeOrOptions,\r\n ...memoizeOptionsFromArgs: MemoizeOrOptions extends SetRequired<\r\n CreateSelectorOptions,\r\n 'memoize'\r\n >\r\n ? never\r\n : DropFirstParameter\r\n) {\r\n /** options initially passed into `createSelectorCreator`. */\r\n const createSelectorCreatorOptions: SetRequired<\r\n CreateSelectorOptions,\r\n 'memoize'\r\n > = typeof memoizeOrOptions === 'function'\r\n ? {\r\n memoize: memoizeOrOptions as MemoizeFunction,\r\n memoizeOptions: memoizeOptionsFromArgs\r\n }\r\n : memoizeOrOptions\r\n\r\n const createSelector = <\r\n InputSelectors extends SelectorArray,\r\n Result,\r\n OverrideMemoizeFunction extends UnknownMemoizer = MemoizeFunction,\r\n OverrideArgsMemoizeFunction extends UnknownMemoizer = ArgsMemoizeFunction\r\n >(\r\n ...createSelectorArgs: [\r\n ...inputSelectors: [...InputSelectors],\r\n combiner: Combiner,\r\n createSelectorOptions?: CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n ]\r\n ) => {\r\n let recomputations = 0\r\n let dependencyRecomputations = 0\r\n let lastResult: Result\r\n\r\n // Due to the intricacies of rest params, we can't do an optional arg after `...createSelectorArgs`.\r\n // So, start by declaring the default value here.\r\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\r\n let directlyPassedOptions: CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n > = {}\r\n\r\n // Normally, the result func or \"combiner\" is the last arg\r\n let resultFunc = createSelectorArgs.pop() as\r\n | Combiner\r\n | CreateSelectorOptions<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n\r\n // If the result func is actually an _object_, assume it's our options object\r\n if (typeof resultFunc === 'object') {\r\n directlyPassedOptions = resultFunc\r\n // and pop the real result func off\r\n resultFunc = createSelectorArgs.pop() as Combiner\r\n }\r\n\r\n assertIsFunction(\r\n resultFunc,\r\n `createSelector expects an output function after the inputs, but received: [${typeof resultFunc}]`\r\n )\r\n\r\n // Determine which set of options we're using. Prefer options passed directly,\r\n // but fall back to options given to `createSelectorCreator`.\r\n const combinedOptions = {\r\n ...createSelectorCreatorOptions,\r\n ...directlyPassedOptions\r\n }\r\n\r\n const {\r\n memoize,\r\n memoizeOptions = [],\r\n argsMemoize = weakMapMemoize,\r\n argsMemoizeOptions = [],\r\n devModeChecks = {}\r\n } = combinedOptions\r\n\r\n // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\r\n // is an array. In most libs I've looked at, it's an equality function or options object.\r\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\r\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\r\n // we wrap it in an array so we can apply it.\r\n const finalMemoizeOptions = ensureIsArray(memoizeOptions)\r\n const finalArgsMemoizeOptions = ensureIsArray(argsMemoizeOptions)\r\n const dependencies = getDependencies(createSelectorArgs) as InputSelectors\r\n\r\n const memoizedResultFunc = memoize(function recomputationWrapper() {\r\n recomputations++\r\n // apply arguments instead of spreading for performance.\r\n // @ts-ignore\r\n return (resultFunc as Combiner).apply(\r\n null,\r\n arguments as unknown as Parameters>\r\n )\r\n }, ...finalMemoizeOptions) as Combiner &\r\n ExtractMemoizerFields\r\n\r\n let firstRun = true\r\n\r\n // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\r\n const selector = argsMemoize(function dependenciesChecker() {\r\n dependencyRecomputations++\r\n /** Return values of input selectors which the `resultFunc` takes as arguments. */\r\n const inputSelectorResults = collectInputSelectorResults(\r\n dependencies,\r\n arguments\r\n )\r\n\r\n // apply arguments instead of spreading for performance.\r\n // @ts-ignore\r\n lastResult = memoizedResultFunc.apply(null, inputSelectorResults)\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n const { identityFunctionCheck, inputStabilityCheck } =\r\n getDevModeChecksExecutionInfo(firstRun, devModeChecks)\r\n if (identityFunctionCheck.shouldRun) {\r\n identityFunctionCheck.run(\r\n resultFunc as Combiner,\r\n inputSelectorResults,\r\n lastResult\r\n )\r\n }\r\n\r\n if (inputStabilityCheck.shouldRun) {\r\n // make a second copy of the params, to check if we got the same results\r\n const inputSelectorResultsCopy = collectInputSelectorResults(\r\n dependencies,\r\n arguments\r\n )\r\n\r\n inputStabilityCheck.run(\r\n { inputSelectorResults, inputSelectorResultsCopy },\r\n { memoize, memoizeOptions: finalMemoizeOptions },\r\n arguments\r\n )\r\n }\r\n\r\n if (firstRun) firstRun = false\r\n }\r\n\r\n return lastResult\r\n }, ...finalArgsMemoizeOptions) as unknown as Selector<\r\n GetStateFromSelectors,\r\n Result,\r\n GetParamsFromSelectors\r\n > &\r\n ExtractMemoizerFields\r\n\r\n return Object.assign(selector, {\r\n resultFunc,\r\n memoizedResultFunc,\r\n dependencies,\r\n dependencyRecomputations: () => dependencyRecomputations,\r\n resetDependencyRecomputations: () => {\r\n dependencyRecomputations = 0\r\n },\r\n lastResult: () => lastResult,\r\n recomputations: () => recomputations,\r\n resetRecomputations: () => {\r\n recomputations = 0\r\n },\r\n memoize,\r\n argsMemoize\r\n }) as OutputSelector<\r\n InputSelectors,\r\n Result,\r\n OverrideMemoizeFunction,\r\n OverrideArgsMemoizeFunction\r\n >\r\n }\r\n\r\n Object.assign(createSelector, {\r\n withTypes: () => createSelector\r\n })\r\n\r\n return createSelector as CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >\r\n}\r\n\r\n/**\r\n * Accepts one or more \"input selectors\" (either as separate arguments or a single array),\r\n * a single \"result function\" / \"combiner\", and an optional options object, and\r\n * generates a memoized selector function.\r\n *\r\n * @see {@link https://reselect.js.org/api/createSelector `createSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createSelector =\r\n /* #__PURE__ */ createSelectorCreator(weakMapMemoize)\r\n","import { createSelector } from './createSelectorCreator'\r\n\r\nimport type { CreateSelectorFunction } from './createSelectorCreator'\r\nimport type {\r\n InterruptRecursion,\r\n ObjectValuesToTuple,\r\n OutputSelector,\r\n Selector,\r\n Simplify,\r\n UnknownMemoizer\r\n} from './types'\r\nimport { assertIsObject } from './utils'\r\nimport type { weakMapMemoize } from './weakMapMemoize'\r\n\r\n/**\r\n * Represents a mapping of selectors to their return types.\r\n *\r\n * @template TObject - An object type where each property is a selector function.\r\n *\r\n * @public\r\n */\r\nexport type SelectorResultsMap = {\r\n [Key in keyof TObject]: ReturnType\r\n}\r\n\r\n/**\r\n * Represents a mapping of selectors for each key in a given root state.\r\n *\r\n * This type is a utility that takes a root state object type and\r\n * generates a corresponding set of selectors. Each selector is associated\r\n * with a key in the root state, allowing for the selection\r\n * of specific parts of the state.\r\n *\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type RootStateSelectors = {\r\n [Key in keyof RootState]: Selector\r\n}\r\n\r\n/**\r\n * @deprecated Please use {@linkcode StructuredSelectorCreator.withTypes createStructuredSelector.withTypes()} instead. This type will be removed in the future.\r\n * @template RootState - The type of the root state object.\r\n *\r\n * @since 5.0.0\r\n * @public\r\n */\r\nexport type TypedStructuredSelectorCreator =\r\n /**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * Modern Use Case\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n * todos: {\r\n * id: number\r\n * completed: boolean\r\n * title: string\r\n * description: string\r\n * }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n * {\r\n * todos: (state: RootState) => state.todos,\r\n * alerts: (state: RootState) => state.alerts,\r\n * todoById: (state: RootState, id: number) => state.todos[id]\r\n * },\r\n * createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n * [\r\n * (state: RootState) => state.todos,\r\n * (state: RootState) => state.alerts,\r\n * (state: RootState, id: number) => state.todos[id]\r\n * ],\r\n * (todos, alerts, todoById) => {\r\n * return {\r\n * todos,\r\n * alerts,\r\n * todoById\r\n * }\r\n * }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * In your component:\r\n * ```tsx\r\n * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n * import type { FC } from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * interface Props {\r\n * id: number\r\n * }\r\n *\r\n * const MyComponent: FC = ({ id }) => {\r\n * const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n * structuredSelector(state, id)\r\n * )\r\n *\r\n * return (\r\n *
\r\n * Next to do is:\r\n *

{todoById.title}

\r\n *

Description: {todoById.description}

\r\n *
    \r\n *

    All other to dos:

    \r\n * {todos.map(todo => (\r\n *
  • {todo.title}
  • \r\n * ))}\r\n *
\r\n *
\r\n * )\r\n * }\r\n * ```\r\n *\r\n * @example\r\n * Simple Use Case\r\n * ```ts\r\n * const selectA = state => state.a\r\n * const selectB = state => state.b\r\n *\r\n * // The result function in the following selector\r\n * // is simply building an object from the input selectors\r\n * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n * a,\r\n * b\r\n * }))\r\n *\r\n * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n * ```\r\n *\r\n * @template InputSelectorsObject - The shape of the input selectors object.\r\n * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n */\r\n <\r\n InputSelectorsObject extends RootStateSelectors = RootStateSelectors,\r\n MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n >(\r\n inputSelectorsObject: InputSelectorsObject,\r\n selectorCreator?: CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >\r\n ) => OutputSelector<\r\n ObjectValuesToTuple,\r\n Simplify>,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n/**\r\n * Represents an object where each property is a selector function.\r\n *\r\n * @template StateType - The type of state that all the selectors operate on.\r\n *\r\n * @public\r\n */\r\nexport type SelectorsObject = Record<\r\n string,\r\n Selector\r\n>\r\n\r\n/**\r\n * It provides a way to create structured selectors.\r\n * The structured selector can take multiple input selectors\r\n * and map their output to an object with specific keys.\r\n *\r\n * @template StateType - The type of state that the structured selectors created with this structured selector creator will operate on.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport interface StructuredSelectorCreator {\r\n /**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * Modern Use Case\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n * todos: {\r\n * id: number\r\n * completed: boolean\r\n * title: string\r\n * description: string\r\n * }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n * {\r\n * todos: (state: RootState) => state.todos,\r\n * alerts: (state: RootState) => state.alerts,\r\n * todoById: (state: RootState, id: number) => state.todos[id]\r\n * },\r\n * createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n * [\r\n * (state: RootState) => state.todos,\r\n * (state: RootState) => state.alerts,\r\n * (state: RootState, id: number) => state.todos[id]\r\n * ],\r\n * (todos, alerts, todoById) => {\r\n * return {\r\n * todos,\r\n * alerts,\r\n * todoById\r\n * }\r\n * }\r\n * )\r\n * ```\r\n *\r\n * @example\r\n * In your component:\r\n * ```tsx\r\n * import type { RootState } from 'createStructuredSelector/modernUseCase'\r\n * import { structuredSelector } from 'createStructuredSelector/modernUseCase'\r\n * import type { FC } from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * interface Props {\r\n * id: number\r\n * }\r\n *\r\n * const MyComponent: FC = ({ id }) => {\r\n * const { todos, alerts, todoById } = useSelector((state: RootState) =>\r\n * structuredSelector(state, id)\r\n * )\r\n *\r\n * return (\r\n *
\r\n * Next to do is:\r\n *

{todoById.title}

\r\n *

Description: {todoById.description}

\r\n *
    \r\n *

    All other to dos:

    \r\n * {todos.map(todo => (\r\n *
  • {todo.title}
  • \r\n * ))}\r\n *
\r\n *
\r\n * )\r\n * }\r\n * ```\r\n *\r\n * @example\r\n * Simple Use Case\r\n * ```ts\r\n * const selectA = state => state.a\r\n * const selectB = state => state.b\r\n *\r\n * // The result function in the following selector\r\n * // is simply building an object from the input selectors\r\n * const structuredSelector = createSelector(selectA, selectB, (a, b) => ({\r\n * a,\r\n * b\r\n * }))\r\n *\r\n * const result = structuredSelector({ a: 1, b: 2 }) // will produce { x: 1, y: 2 }\r\n * ```\r\n *\r\n * @template InputSelectorsObject - The shape of the input selectors object.\r\n * @template MemoizeFunction - The type of the memoize function that is used to create the structured selector. It defaults to `weakMapMemoize`.\r\n * @template ArgsMemoizeFunction - The type of the of the memoize function that is used to memoize the arguments passed into the generated structured selector. It defaults to `weakMapMemoize`.\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n */\r\n <\r\n InputSelectorsObject extends SelectorsObject,\r\n MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n >(\r\n inputSelectorsObject: InputSelectorsObject,\r\n selectorCreator?: CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >\r\n ): OutputSelector<\r\n ObjectValuesToTuple,\r\n Simplify>,\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n > &\r\n InterruptRecursion\r\n\r\n /**\r\n * Creates a \"pre-typed\" version of\r\n * {@linkcode createStructuredSelector createStructuredSelector}\r\n * where the `state` type is predefined.\r\n *\r\n * This allows you to set the `state` type once, eliminating the need to\r\n * specify it with every\r\n * {@linkcode createStructuredSelector createStructuredSelector} call.\r\n *\r\n * @returns A pre-typed `createStructuredSelector` with the state type already defined.\r\n *\r\n * @example\r\n * ```ts\r\n * import { createStructuredSelector } from 'reselect'\r\n *\r\n * export interface RootState {\r\n * todos: { id: number; completed: boolean }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * export const createStructuredAppSelector =\r\n * createStructuredSelector.withTypes()\r\n *\r\n * const structuredAppSelector = createStructuredAppSelector({\r\n * // Type of `state` is set to `RootState`, no need to manually set the type\r\n * todos: state => state.todos,\r\n * alerts: state => state.alerts,\r\n * todoById: (state, id: number) => state.todos[id]\r\n * })\r\n *\r\n * ```\r\n * @template OverrideStateType - The specific type of state used by all structured selectors created with this structured selector creator.\r\n *\r\n * @see {@link https://reselect.js.org/api/createstructuredselector#defining-a-pre-typed-createstructuredselector `createSelector.withTypes`}\r\n *\r\n * @since 5.1.0\r\n */\r\n withTypes: <\r\n OverrideStateType extends StateType\r\n >() => StructuredSelectorCreator\r\n}\r\n\r\n/**\r\n * A convenience function that simplifies returning an object\r\n * made up of selector results.\r\n *\r\n * @param inputSelectorsObject - A key value pair consisting of input selectors.\r\n * @param selectorCreator - A custom selector creator function. It defaults to `createSelector`.\r\n * @returns A memoized structured selector.\r\n *\r\n * @example\r\n * Modern Use Case\r\n * ```ts\r\n * import { createSelector, createStructuredSelector } from 'reselect'\r\n *\r\n * interface RootState {\r\n * todos: {\r\n * id: number\r\n * completed: boolean\r\n * title: string\r\n * description: string\r\n * }[]\r\n * alerts: { id: number; read: boolean }[]\r\n * }\r\n *\r\n * // This:\r\n * const structuredSelector = createStructuredSelector(\r\n * {\r\n * todos: (state: RootState) => state.todos,\r\n * alerts: (state: RootState) => state.alerts,\r\n * todoById: (state: RootState, id: number) => state.todos[id]\r\n * },\r\n * createSelector\r\n * )\r\n *\r\n * // Is essentially the same as this:\r\n * const selector = createSelector(\r\n * [\r\n * (state: RootState) => state.todos,\r\n * (state: RootState) => state.alerts,\r\n * (state: RootState, id: number) => state.todos[id]\r\n * ],\r\n * (todos, alerts, todoById) => {\r\n * return {\r\n * todos,\r\n * alerts,\r\n * todoById\r\n * }\r\n * }\r\n * )\r\n * ```\r\n *\r\n * @see {@link https://reselect.js.org/api/createStructuredSelector `createStructuredSelector`}\r\n *\r\n * @public\r\n */\r\nexport const createStructuredSelector: StructuredSelectorCreator =\r\n Object.assign(\r\n <\r\n InputSelectorsObject extends SelectorsObject,\r\n MemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize,\r\n ArgsMemoizeFunction extends UnknownMemoizer = typeof weakMapMemoize\r\n >(\r\n inputSelectorsObject: InputSelectorsObject,\r\n selectorCreator: CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n > = createSelector as CreateSelectorFunction<\r\n MemoizeFunction,\r\n ArgsMemoizeFunction\r\n >\r\n ) => {\r\n assertIsObject(\r\n inputSelectorsObject,\r\n 'createStructuredSelector expects first argument to be an object ' +\r\n `where each property is a selector, instead received a ${typeof inputSelectorsObject}`\r\n )\r\n const inputSelectorKeys = Object.keys(inputSelectorsObject)\r\n const dependencies = inputSelectorKeys.map(\r\n key => inputSelectorsObject[key]\r\n )\r\n const structuredSelector = selectorCreator(\r\n dependencies,\r\n (...inputSelectorResults: any[]) => {\r\n return inputSelectorResults.reduce((composition, value, index) => {\r\n composition[inputSelectorKeys[index]] = value\r\n return composition\r\n }, {})\r\n }\r\n )\r\n return structuredSelector\r\n },\r\n { withTypes: () => createStructuredSelector }\r\n ) as StructuredSelectorCreator\r\n","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from 'redux';\n/**\n * @public\n */\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\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\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\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\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\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\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\n immutable?: any;\n /**\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\n */\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\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\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\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\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\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\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\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\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\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\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\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\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\n lock?: boolean;\n /**\n * persist states on page reloading\n */\n\n persist?: boolean;\n /**\n * export history of actions in a file\n */\n\n export?: boolean | 'custom';\n /**\n * import history of actions from a file\n */\n\n import?: boolean | 'custom';\n /**\n * jump back and forth (time travelling)\n */\n\n jump?: boolean;\n /**\n * skip (cancel) actions\n */\n\n skip?: boolean;\n /**\n * drag and drop actions in the history list\n */\n\n reorder?: boolean;\n /**\n * dispatch custom actions or action creators\n */\n\n dispatch?: boolean;\n /**\n * generate tests for the selected actions\n */\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\n trace?: boolean | ((action: A) => string);\n /**\n * The maximum number of stack trace entries to record per action. Defaults to 10.\n */\n\n traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n (options: DevToolsEnhancerOptions): Compose;\n (...funcs: StoreEnhancer[]): StoreEnhancer;\n}\n/**\n * @public\n */\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 * @public\n */\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 { 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\n const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n\n Object.assign(wrappedSelector, selector);\n return (wrappedSelector as any);\n }, {\n withTypes: () => createDraftSafeSelector\n });\n return createDraftSafeSelector;\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 */\n\nexport const createDraftSafeSelector = createDraftSafeSelectorCreator(weakMapMemoize);","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 * 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 */\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 * 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 */\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 * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\n *\n * @internal\n */\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 * Basic type for all action creators.\n *\n * @inheritdoc {redux#ActionCreator}\n */\n\nexport interface BaseActionCreator {\n type: T;\n match: (action: unknown) => action is PayloadAction;\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 */\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 * An action creator of type `T` that takes an optional payload of type `P`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\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 * An action creator of type `T` that takes no payload.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\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 * An action creator of type `T` that requires a payload of type P.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\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 * 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 */\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 * 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 */\n\nexport type PayloadActionCreator

| void = void> = IfPrepareActionMethodProvided, // else\nIsAny, IsUnknownOrNonInferrable, // else\nIfVoid, // else\nIfMaybeUndefined, // else\nActionCreatorWithPayload>>>>>;\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 */\n\nexport function createAction

(type: T): PayloadActionCreator;\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 */\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\n if (!prepared) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n }\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\n return {\n type,\n payload: args[0]\n };\n }\n\n actionCreator.toString = () => `${type}`;\n\n actionCreator.type = type;\n\n actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n\n return actionCreator;\n}\n/**\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\n */\n\nexport function isActionCreator(action: unknown): action is BaseActionCreator & Function {\n return typeof action === 'function' && 'type' in action && // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n hasMatchFunction((action as any));\n}\n/**\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\n */\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}\n\nfunction isValidKey(key: string) {\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n} // helper types for more readable typings\n\n\ntype IfPrepareActionMethodProvided | void, True, False> = PA extends (...args: any[]) => any ? True : False;","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { produce as createNextState, isDraftable } from 'immer';\nimport type { Middleware, StoreEnhancer } from 'redux';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n let elapsed = 0;\n return {\n measureTime(fn: () => T): T {\n const started = Date.now();\n\n try {\n return fn();\n } finally {\n const finished = Date.now();\n elapsed += finished - started;\n }\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 };\n}\nexport function delay(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport function find(iterable: Iterable, comparator: (item: T) => boolean): T | undefined {\n for (const entry of iterable) {\n if (comparator(entry)) {\n return entry;\n }\n }\n\n return undefined;\n}\nexport class Tuple = []> extends Array {\n constructor(length: number);\n constructor(...items: Items);\n\n constructor(...items: any[]) {\n super(...items);\n Object.setPrototypeOf(this, Tuple.prototype);\n }\n\n static get [Symbol.species]() {\n return (Tuple as any);\n }\n\n concat>(items: Tuple): Tuple<[...Items, ...AdditionalItems]>;\n concat>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n concat>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n\n concat(...arr: any[]) {\n return super.concat.apply(this, arr);\n }\n\n prepend>(items: Tuple): Tuple<[...AdditionalItems, ...Items]>;\n prepend>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n prepend>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n\n prepend(...arr: any[]) {\n if (arr.length === 1 && Array.isArray(arr[0])) {\n return new Tuple(...arr[0].concat(this));\n }\n\n return new Tuple(...arr.concat(this));\n }\n\n}\nexport function freezeDraftable(val: T) {\n return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\ninterface WeakMapEmplaceHandler {\n /**\n * Will be called to get value, if no value is currently in map.\n */\n insert?(key: K, map: WeakMap): V;\n /**\n * Will be called to update a value, if one exists already.\n */\n\n update?(previous: V, key: K, map: WeakMap): V;\n}\ninterface MapEmplaceHandler {\n /**\n * Will be called to get value, if no value is currently in map.\n */\n insert?(key: K, map: Map): V;\n /**\n * Will be called to update a value, if one exists already.\n */\n\n update?(previous: V, key: K, map: Map): V;\n}\nexport function emplace(map: Map, key: K, handler: MapEmplaceHandler): V;\nexport function emplace(map: WeakMap, key: K, handler: WeakMapEmplaceHandler): V;\n/**\n * Allow inserting a new value, or updating an existing one\n * @throws if called for a key with no current value and no `insert` handler is provided\n * @returns current value in map (after insertion/updating)\n * ```ts\n * // return current value if already in map, otherwise initialise to 0 and return that\n * const num = emplace(map, key, {\n * insert: () => 0\n * })\n *\n * // increase current value by one if already in map, otherwise initialise to 0\n * const num = emplace(map, key, {\n * update: (n) => n + 1,\n * insert: () => 0,\n * })\n *\n * // only update if value's already in the map - and increase it by one\n * if (map.has(key)) {\n * const num = emplace(map, key, {\n * update: (n) => n + 1,\n * })\n * }\n * ```\n *\n * @remarks\n * Based on https://github.com/tc39/proposal-upsert currently in Stage 2 - maybe in a few years we'll be able to replace this with direct method calls\n */\n\nexport function emplace(map: WeakMap, key: K, handler: WeakMapEmplaceHandler): V {\n if (map.has(key)) {\n let value = (map.get(key) as V);\n\n if (handler.update) {\n value = handler.update(value, key, map);\n map.set(key, value);\n }\n\n return value;\n }\n\n if (!handler.insert) throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(10) : 'No insert provided for key not already in map');\n const inserted = handler.insert(key, map);\n map.set(key, inserted);\n return inserted;\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 */\n\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';\n\nfunction isBoolean(x: any): x is boolean {\n return typeof x === 'boolean';\n}\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\n if (thunk) {\n if (isBoolean(thunk)) {\n middlewareArray.push(thunkMiddleware);\n } else {\n middlewareArray.push(withExtraArgument(thunk.extraArgument));\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (immutableCheck) {\n /* PROD_START_REMOVE_UMD */\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n\n if (!isBoolean(immutableCheck)) {\n immutableOptions = immutableCheck;\n }\n\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n /* PROD_STOP_REMOVE_UMD */\n }\n\n if (serializableCheck) {\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n\n if (!isBoolean(serializableCheck)) {\n serializableOptions = serializableCheck;\n }\n\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n }\n\n if (actionCreatorCheck) {\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n\n if (!isBoolean(actionCreatorCheck)) {\n actionCreatorOptions = actionCreatorCheck;\n }\n\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n }\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});\n\nconst createQueueWithTimer = (timeout: number) => {\n return (notify: () => void) => {\n setTimeout(notify, timeout);\n };\n}; // requestAnimationFrame won't exist in SSR environments.\n// Fall back to a vague approximation just to keep from erroring.\n\n\nconst rAF = typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10);\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 * 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 */\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' ? rAF : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n\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\n if (shouldNotifyAtEndOfTick) {\n shouldNotifyAtEndOfTick = false;\n listeners.forEach(l => l());\n }\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\n const unsubscribe = store.subscribe(wrappedListener);\n listeners.add(listener);\n return () => {\n unsubscribe();\n listeners.delete(listener);\n };\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]; // 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\n shouldNotifyAtEndOfTick = !notifying;\n\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 } // 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\n\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 });\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\n if (autoBatch) {\n enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n }\n\n return (enhancerArray as any);\n};","import { formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } 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';\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production';\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\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 * 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\n middleware?: (getDefaultMiddleware: GetDefaultMiddleware) => M;\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\n devTools?: boolean | DevToolsOptions;\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\n preloadedState?: P;\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\n enhancers?: (getDefaultEnhancers: GetDefaultEnhancers) => E;\n}\nexport type Middlewares = ReadonlyArray>;\ntype Enhancers = ReadonlyArray;\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\n\nexport type EnhancedStore = ExtractStoreExtensions & Store>>;\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 */\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\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\n if (!IS_PRODUCTION && middleware && typeof middleware !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n }\n\n let finalMiddleware: Tuple>;\n\n if (typeof middleware === 'function') {\n finalMiddleware = middleware(getDefaultMiddleware);\n\n if (!IS_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\n if (!IS_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\n let finalCompose = compose;\n\n if (devTools) {\n finalCompose = composeWithDevTools({\n // Enable capture of stack traces for dispatched Redux actions\n trace: !IS_PRODUCTION,\n ...(typeof devTools === 'object' && devTools)\n });\n }\n\n const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);\n\n if (!IS_PRODUCTION && enhancers && typeof enhancers !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(5) : '`enhancers` field must be a callback');\n }\n\n let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n\n if (!IS_PRODUCTION && !Array.isArray(storeEnhancers)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(6) : '`enhancers` callback must return an array');\n }\n\n if (!IS_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\n if (!IS_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\n const composedEnhancer: StoreEnhancer = finalCompose(...storeEnhancers);\n return createStore(rootReducer, (preloadedState as P), composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage6 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nexport interface TypedActionCreator {\n (...args: any[]): Action;\n type: Type;\n}\n/**\n * A builder for an action <-> reducer map.\n *\n * @public\n */\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\n addCase>(type: Type, reducer: CaseReducer): ActionReducerMapBuilder;\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\n addMatcher(matcher: TypeGuard | ((action: any) => boolean), reducer: CaseReducer): Omit, 'addCase'>;\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\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\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\n const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n\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\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\n actionsMap[type] = reducer;\n return builder;\n },\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\n actionMatchers.push({\n matcher,\n reducer\n });\n return builder;\n },\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\n defaultCaseReducer = reducer;\n return builder;\n }\n\n };\n builderCallback(builder);\n return [actionsMap, actionMatchers, defaultCaseReducer];\n}","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\n// optimize the gzip compression for this alphabet.\nlet urlAlphabet = 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';\n/**\n *\n * @public\n */\n\nexport let nanoid = (size = 21) => {\n let id = ''; // A compact alternative for `for (var i = 0; i < step; i++)`.\n\n let i = size;\n\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n\n return id;\n};","import { formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Action, UnknownAction, Reducer } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, Tail, TypeGuard } from './tsHelpers';\nimport type { InjectConfig } from './combineSlices';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport { emplace } from './utils';\nconst asyncThunkSymbol = Symbol.for('rtk-slice-createasyncthunk'); // type is annotated because it's too long to infer\n\nexport const asyncThunkCreator: {\n [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n [asyncThunkSymbol]: _createAsyncThunk\n};\ninterface InjectIntoConfig extends InjectConfig {\n reducerPath?: NewReducerPath;\n}\n/**\n * The return value of `createSlice`\n *\n * @public\n */\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 * The slice reducer path.\n */\n\n reducerPath: ReducerPath;\n /**\n * The slice's reducer.\n */\n\n reducer: Reducer;\n /**\n * Action creators for the types of actions that are handled by the slice\n * reducer.\n */\n\n actions: CaseReducerActions;\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\n caseReducers: SliceDefinedCaseReducers;\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\n getInitialState: () => State;\n /**\n * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n */\n\n getSelectors(): Id>;\n /**\n * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n */\n\n getSelectors(selectState: (rootState: RootState) => State): Id>;\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\n get selectors(): Id>;\n /**\n * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\n */\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 * Select the slice state, using the slice's current reducerPath.\n *\n * Will throw an error if slice is not found.\n */\n\n selectSlice(state: { [K in ReducerPath]: State }): State;\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 */\n\ninterface InjectedSlice = SliceCaseReducers, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors = SliceSelectors> extends 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 * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n */\n\n getSelectors(selectState: (rootState: RootState) => State | undefined): Id>;\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\n get selectors(): Id>;\n /**\n * Select the slice state, using the slice's current reducerPath.\n *\n * Returns initial state if slice is not found.\n */\n\n selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n}\n/**\n * Options for `createSlice()`.\n *\n * @public\n */\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 * The slice's reducer path. Used when injecting into a combined slice reducer.\n */\n\n reducerPath?: ReducerPath;\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\n initialState: State | (() => State);\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\n reducers: ValidateSliceCaseReducers | ((creators: ReducerCreators) => CR);\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\n extraReducers?: (builder: ActionReducerMapBuilder) => void;\n /**\n * A map of selectors that receive the slice's state and any additional arguments, and return a result.\n */\n\n selectors?: Selectors;\n}\nexport enum ReducerType {\n reducer = 'reducer',\n reducerWithPrepare = 'reducerWithPrepare',\n asyncThunk = 'asyncThunk',\n}\ninterface ReducerDefinition {\n _reducerDefinitionType: T;\n}\nexport interface CaseReducerDefinition extends CaseReducer, ReducerDefinition {}\n/**\n * A CaseReducer with a `prepare` method.\n *\n * @public\n */\n\nexport type CaseReducerWithPrepare = {\n reducer: CaseReducer;\n prepare: PrepareAction;\n};\nexport interface CaseReducerWithPrepareDefinition extends CaseReducerWithPrepare, ReducerDefinition {}\nexport interface AsyncThunkSliceReducerConfig {\n pending?: CaseReducer['pending']>>;\n rejected?: CaseReducer['rejected']>>;\n fulfilled?: CaseReducer['fulfilled']>>;\n settled?: CaseReducer['rejected' | 'fulfilled']>>;\n options?: AsyncThunkOptions;\n}\nexport interface AsyncThunkSliceReducerDefinition extends AsyncThunkSliceReducerConfig, ReducerDefinition {\n payloadCreator: AsyncThunkPayloadCreator;\n}\n/**\n * Providing these as part of the config would cause circular types, so we disallow passing them\n */\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 * The type describing a slice's `reducers` option.\n *\n * @public\n */\n\nexport type SliceCaseReducers = Record> | CaseReducerWithPrepareDefinition> | AsyncThunkSliceReducerDefinition> | Record> | CaseReducerWithPrepare>>;\n/**\n * The type describing a slice's `selectors` option.\n */\n\nexport type SliceSelectors = {\n [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n/**\n * Derives the slice's `actions` property from the `reducers` options\n *\n * @public\n */\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 * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\n *\n * @internal\n */\n\ntype ActionCreatorForCaseReducerWithPrepare = _ActionCreatorWithPreparedPayload;\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\n *\n * @internal\n */\n\ntype ActionCreatorForCaseReducer = CR extends (state: any, action: infer Action) => any ? Action extends {\n payload: infer P;\n} ? PayloadActionCreator : ActionCreatorWithoutPayload : ActionCreatorWithoutPayload;\n/**\n * Extracts the CaseReducers out of a `reducers` object, even if they are\n * tested into a `CaseReducerWithPrepare`.\n *\n * @internal\n */\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 * Extracts the final selector type from the `selectors` object.\n *\n * Removes the `string` index signature from the default value.\n */\n\ntype SliceDefinedSelectors, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector };\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 */\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} : {} };\n\nfunction getType(slice: string, actionKey: string): string {\n return `${slice}/${actionKey}`;\n}\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\n if (!name) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n }\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\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\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\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\n context.sliceCaseReducersByType[type] = reducer;\n return contextMethods;\n },\n\n addMatcher(matcher, reducer) {\n context.sliceMatchers.push({\n matcher,\n reducer\n });\n return contextMethods;\n },\n\n exposeAction(name, actionCreator) {\n context.actionCreators[name] = actionCreator;\n return contextMethods;\n },\n\n exposeCaseReducer(name, reducer) {\n context.sliceCaseReducersByName[name] = reducer;\n return contextMethods;\n }\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\n if (isAsyncThunkSliceReducerDefinition(reducerDefinition)) {\n handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n } else {\n handleNormalReducerDefinition(reducerDetails, reducerDefinition, contextMethods);\n }\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\n const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n const finalCaseReducers = { ...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\n for (let sM of context.sliceMatchers) {\n builder.addMatcher(sM.matcher, sM.reducer);\n }\n\n for (let m of actionMatchers) {\n builder.addMatcher(m.matcher, m.reducer);\n }\n\n if (defaultCaseReducer) {\n builder.addDefaultCase(defaultCaseReducer);\n }\n });\n }\n\n const selectSelf = (state: State) => state;\n\n const injectedSelectorCache = new Map State | undefined, Record any>>>();\n\n let _reducer: ReducerWithInitialState;\n\n function reducer(state: State | undefined, action: UnknownAction) {\n if (!_reducer) _reducer = buildReducer();\n return _reducer(state, action);\n }\n\n function getInitialState() {\n if (!_reducer) _reducer = buildReducer();\n return _reducer.getInitialState();\n }\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\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\n return sliceState;\n }\n\n function getSelectors(selectState: (rootState: any) => State = selectSelf) {\n const selectorCache = emplace(injectedSelectorCache, injected, {\n insert: () => new WeakMap()\n });\n return (emplace(selectorCache, selectState, {\n insert: () => {\n const map: Record> = {};\n\n for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n map[name] = wrapSelector(selector, selectState, getInitialState, injected);\n }\n\n return map;\n }\n }) as any);\n }\n\n return {\n reducerPath,\n getSelectors,\n\n get selectors() {\n return getSelectors(selectSlice);\n },\n\n selectSlice\n };\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\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 ({ ...slice,\n ...makeSelectorProps(newReducerPath, true)\n } as any);\n }\n\n };\n return slice;\n };\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\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\n return selector(sliceState, ...args);\n }\n\n wrapper.unwrapped = selector;\n return (wrapper as RemappedSelector);\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 */\n\n\nexport const createSlice = 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\n addCase>(type: Type, reducer: CaseReducer): ReducerHandlingContextMethods;\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\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\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\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\n type: string;\n /** Whether create. notation was used when defining reducers */\n\n createNotation: boolean;\n}\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\n asyncThunk.withTypes = () => asyncThunk;\n\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\n }[caseReducer.name], ({\n _reducerDefinitionType: ReducerType.reducer\n } as const));\n },\n\n preparedReducer(prepare, reducer) {\n return {\n _reducerDefinitionType: ReducerType.reducerWithPrepare,\n prepare,\n reducer\n };\n },\n\n asyncThunk: (asyncThunk as any)\n };\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\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\n caseReducer = maybeReducerWithPrepare.reducer;\n prepareCallback = maybeReducerWithPrepare.prepare;\n } else {\n caseReducer = maybeReducerWithPrepare;\n }\n\n context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\n\nfunction isAsyncThunkSliceReducerDefinition(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition {\n return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\n\nfunction isCaseReducerWithPrepareDefinition(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition {\n return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\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\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\n if (fulfilled) {\n context.addCase(thunk.fulfilled, fulfilled);\n }\n\n if (pending) {\n context.addCase(thunk.pending, pending);\n }\n\n if (rejected) {\n context.addCase(thunk.rejected, rejected);\n }\n\n if (settled) {\n context.addMatcher(thunk.settled, settled);\n }\n\n context.exposeCaseReducer(reducerName, {\n fulfilled: fulfilled || noop,\n pending: pending || noop,\n rejected: rejected || noop,\n settled: settled || noop\n });\n}\n\nfunction noop() {}","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n/* TaskAbortError error codes */\n\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\n constructor(public code: string | undefined) {\n this.message = `${task} ${cancelled} (reason: ${code})`;\n }\n\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { AbortSignalWithReason } from './types';\nexport const assertFunction: (func: unknown, expected: string) => asserts func is (...args: unknown[]) => unknown = (func: unknown, expected: string) => {\n if (typeof func !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(32) : `${expected} is not a function`);\n }\n};\nexport const noop = () => {};\nexport const catchRejection = (promise: Promise, onError = noop): Promise => {\n promise.catch(onError);\n return promise;\n};\nexport const addAbortSignalListener = (abortSignal: AbortSignal, callback: (evt: Event) => void) => {\n abortSignal.addEventListener('abort', callback, {\n once: true\n });\n return () => abortSignal.removeEventListener('abort', callback);\n};\n/**\n * Calls `abortController.abort(reason)` and patches `signal.reason`.\n * if it is not supported.\n *\n * At the time of writing `signal.reason` is available in FF chrome, edge node 17 and deno.\n * @param abortController\n * @param reason\n * @returns\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason\n */\n\nexport const abortControllerWithReason = (abortController: AbortController, reason: T): void => {\n type Consumer = (val: T) => void;\n const signal = (abortController.signal as AbortSignalWithReason);\n\n if (signal.aborted) {\n return;\n } // Patch `reason` if necessary.\n // - We use defineProperty here because reason is a getter of `AbortSignal.__proto__`.\n // - We need to patch 'reason' before calling `.abort()` because listeners to the 'abort'\n // event are are notified immediately.\n\n\n if (!('reason' in signal)) {\n Object.defineProperty(signal, 'reason', {\n enumerable: true,\n value: reason,\n configurable: true,\n writable: true\n });\n }\n\n ;\n (abortController.abort as Consumer)(reason);\n};","import { TaskAbortError } from './exceptions';\nimport type { AbortSignalWithReason, TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\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 */\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 * 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 */\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\n if (signal.aborted) {\n notifyRejection();\n return;\n }\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 * 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 */\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 * 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 */\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 * 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 */\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 _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } 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 { find } from '../utils';\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'; //Overly-aggressive byte-shaving\n\nconst {\n assign\n} = Object;\n/**\n * @internal\n */\n\nconst INTERNAL_NIL_TOKEN = ({} as const);\nconst alm = ('listenerMiddleware' as const);\n\nconst createFork = (parentAbortSignal: AbortSignalWithReason, parentBlockingPromises: Promise[]) => {\n const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => abortControllerWithReason(controller, parentAbortSignal.reason));\n\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\n if (opts?.autoJoin) {\n parentBlockingPromises.push(result.catch(noop));\n }\n\n return {\n result: createPause>(parentAbortSignal)(result),\n\n cancel() {\n abortControllerWithReason(childAbortController, taskCancelled);\n }\n\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); // Placeholder unsubscribe function until the listener is added\n\n let unsubscribe: UnsubscribeListener = () => {};\n\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(); // Resolve the promise with the same arguments the predicate saw\n\n resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n }\n });\n\n unsubscribe = () => {\n stopListening();\n reject();\n };\n });\n const promises: (Promise | Promise<[Action, S, S]>)[] = [tuplePromise];\n\n if (timeout != null) {\n promises.push(new Promise(resolve => setTimeout(resolve, timeout, null)));\n }\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\n return (((predicate: AnyListenerPredicate, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern);\n};\n\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n let {\n type,\n actionCreator,\n matcher,\n predicate,\n effect\n } = options;\n\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) {// 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\n assertFunction(effect, 'options.listener');\n return {\n predicate,\n type,\n effect\n };\n};\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\n\n\nexport const createListenerEntry: TypedCreateListenerEntry = ((Object.assign((options: FallbackAddListenerOptions) => {\n const {\n type,\n predicate,\n effect\n } = getListenerEntryPropsFrom(options);\n const id = nanoid();\n const entry: ListenerEntry = {\n id,\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);\n\nconst cancelActiveListeners = (entry: ListenerEntry>) => {\n entry.pending.forEach(controller => {\n abortControllerWithReason(controller, listenerCancelled);\n });\n};\n\nconst createClearListenerMiddleware = (listenerMap: Map) => {\n return () => {\n listenerMap.forEach(cancelActiveListeners);\n listenerMap.clear();\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 */\n\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 * @public\n */\n\n\nexport const addListener = ((Object.assign(createAction(`${alm}/add`), {\n withTypes: () => addListener\n}) as unknown) as TypedAddListener);\n/**\n * @public\n */\n\nexport const clearAllListeners = createAction(`${alm}/removeAll`);\n/**\n * @public\n */\n\nexport const removeListener = ((Object.assign(createAction(`${alm}/remove`), {\n withTypes: () => removeListener\n}) as unknown) as TypedRemoveListener);\n\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n console.error(`${alm}/error`, ...args);\n};\n/**\n * @public\n */\n\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\n const insertEntry = (entry: ListenerEntry) => {\n entry.unsubscribe = () => listenerMap.delete(entry!.id);\n\n listenerMap.set(entry.id, entry);\n return (cancelOptions?: UnsubscribeListenerOptions) => {\n entry.unsubscribe();\n\n if (cancelOptions?.cancelActive) {\n cancelActiveListeners(entry);\n }\n };\n };\n\n const startListening = (((options: FallbackAddListenerOptions) => {\n let entry = find(Array.from(listenerMap.values()), existingEntry => existingEntry.effect === options.effect);\n\n if (!entry) {\n entry = createListenerEntry((options as any));\n }\n\n return insertEntry(entry);\n }) as AddListenerOverloads);\n Object.assign(startListening, {\n withTypes: () => startListening\n });\n\n const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n const {\n type,\n effect,\n predicate\n } = getListenerEntryPropsFrom(options);\n const entry = find(Array.from(listenerMap.values()), entry => {\n const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n return matchPredicateOrType && entry.effect === effect;\n });\n\n if (entry) {\n entry.unsubscribe();\n\n if (options.cancelActive) {\n cancelActiveListeners(entry);\n }\n }\n\n return !!entry;\n };\n\n Object.assign(stopListening, {\n withTypes: () => stopListening\n });\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\n try {\n entry.pending.add(internalTaskController);\n await Promise.resolve(entry.effect(action, // 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\n entry.pending.delete(internalTaskController);\n }\n };\n\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\n\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\n if (addListener.match(action)) {\n return startListening((action.payload as any));\n }\n\n if (clearAllListeners.match(action)) {\n clearListenerMiddleware();\n return;\n }\n\n if (removeListener.match(action)) {\n return stopListening(action.payload);\n } // Need to get this state _before_ the reducer processes the action\n\n\n let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState(); // `getOriginalState` can only be called synchronously.\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n\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\n return (originalState as StateType);\n };\n\n let result: unknown;\n\n try {\n // Actually forward the action to the reducer before we handle listeners\n result = next(action);\n\n if (listenerMap.size > 0) {\n const currentState = api.getState(); // Work around ESBuild+TS transpilation issue\n\n const listenerEntries = Array.from(listenerMap.values());\n\n for (const entry of listenerEntries) {\n let runListener = false;\n\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\n if (!runListener) {\n continue;\n }\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\n return result;\n };\n\n return ({\n middleware,\n startListening,\n stopListening,\n clearListeners: clearListenerMiddleware\n } as ListenerMiddlewareInstance);\n};","import { formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { UnknownAction, Reducer, StateFromReducersMapObject } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { emplace } 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 * A reducer that allows for slices/reducers to be injected after initialisation.\n */\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 * 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\n inject>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer>>;\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\n inject(slice: SliceLike, config?: InjectConfig): CombinedSliceReducer>>>;\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\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 * 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\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\n original: (state: DeclaredState) => InitialState & Partial;\n };\n}\ntype InitialState> = UnionToIntersection : StateFromReducersMapObject : never>;\n\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\n\nconst getReducers = (slices: Array) => slices.flatMap(sliceOrMap => isSliceLike(sliceOrMap) ? [([sliceOrMap.reducerPath, sliceOrMap.reducer] as const)] : Object.entries(sliceOrMap));\n\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\n\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\n\nconst stateProxyMap = new WeakMap();\n\nconst createStateProxy = (state: State, reducerMap: Partial>) => (emplace(stateProxyMap, state, {\n insert: () => new Proxy(state, {\n get: (target, prop, receiver) => {\n if (prop === ORIGINAL_STATE) return target;\n const result = Reflect.get(target, prop, receiver);\n\n if (typeof result === 'undefined') {\n const reducer = reducerMap[prop.toString()];\n\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\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\n return reducerResult;\n }\n }\n\n return result;\n }\n })\n}) as State);\n\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\n return state[ORIGINAL_STATE];\n};\n\nexport function combineSlices]>(...slices: Slices): CombinedSliceReducer>> {\n const reducerMap = Object.fromEntries(getReducers(slices));\n\n const getReducer = () => combineReducers(reducerMap);\n\n let reducer = getReducer();\n\n function combinedReducer(state: Record, action: UnknownAction) {\n return reducer(state, action);\n }\n\n combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n\n const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n const {\n reducerPath,\n reducer: reducerToInject\n } = slice;\n const currentReducer = reducerMap[reducerPath];\n\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\n return combinedReducer;\n }\n\n reducerMap[reducerPath] = reducerToInject;\n reducer = getReducer();\n return combinedReducer;\n };\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}","enum EReduxStoreInitialState {\n\n DEFAULT = 1,\n ARRAY = 2,\n OBJECT = 3\n\n};\n\nexport default EReduxStoreInitialState;\n","import EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\nimport Lodash from 'lodash';\n\n\nfunction changeValue(\n value:any, \n initialState:EReduxStoreInitialState, \n changeOrders:{ key:string, value:any, match_key:string, match_value:any }[]\n) {\n \n console.log(\"This is it.changeValue: \", value, initialState, changeOrders);\n\n if ( initialState === EReduxStoreInitialState.ARRAY ) return changeValueInArray(value, changeOrders);\n else if ( initialState === EReduxStoreInitialState.OBJECT ) return changeValueInDictionary(value, changeOrders);\n \n return value;\n\n}\n\nfunction changeValueInArray(\n value:any[], \n changeOrders:{ key:string, value:any, match_key:string, match_value:any }[]\n) {\n\n \n let _value = !Lodash.isEmpty(value) ? [...value] : [];\n\n for ( let order of changeOrders ) {\n\n try {\n if ( !Lodash.isEmpty(order.match_key) && Lodash.isEmpty(order.key) ) {\n _value = _value.map(\n valueItem => { \n if (valueItem[order.match_key] === order.match_value) return { ...valueItem, ...order.value } \n else return valueItem \n }\n );\n }\n else if ( !Lodash.isEmpty(order.match_key) && !Lodash.isEmpty(order.key) ) {\n _value = _value.map( \n (valueItem) => { \n if ( valueItem[order.match_key] === order.match_value ) return { ...valueItem, [order.key]: order.value }\n else return valueItem\n }\n );\n }\n else if (Lodash.isEmpty(order.match_key) && Lodash.isEmpty(order.key)) {\n _value = [ ..._value, order.value ]\n }\n } catch (ex) {\n\n }\n\n }\n\n return Object.assign(_value);\n\n}\n\nfunction changeValueInDictionary(\n value:{[key: string]: any}|null, \n changeOrders:{ key:string, value:any, match_key:string, match_value:any }[]\n) {\n\n let _value:{[key: string]: any} = !Lodash.isEmpty(value) ? {...value} : {};\n for(let item of changeOrders) if (!Lodash.isEmpty(item.key)) _value[item.key] = item.value;\n\n return Object.assign(_value);\n\n}\n\nexport default changeValue;","import Lodash from 'lodash';\nimport CoreDefault from 'core/Defaults';\nimport Cookies from \"universal-cookie\";\n// interface\nimport IBaseReduxStore from 'core/interfaces/IBaseReduxStore';\nimport IBaseReduxStoreAction from 'core/interfaces/IBaseReduxStoreAction';\nimport IBaseReduxStoreState from 'core/interfaces/IBaseReduxStoreState';\n// enum\nimport EActionStatus from 'core/enums/EActionStatus';\nimport EActionType from 'core/enums/EActionType';\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\n// utilities\nimport changeValue from 'core/utilities/ReduxStoreModifierFunctions';\n\n\nfunction BaseReduxStore ( { screenCode, serviceCode, protocol, initialState = EReduxStoreInitialState.DEFAULT}: IBaseReduxStore ) {\n\n // init state\n const initStateArray: IBaseReduxStoreState = { message: null, payload: [], count: 0, error: null, isLoading: false }\n const initStateObject: IBaseReduxStoreState = { message: null, payload: {}, count: 0, error: null, isLoading: false }\n const initStateAny: IBaseReduxStoreState = { message: null, payload: null, count: 0, error: null, isLoading: false }\n\n let initState: IBaseReduxStoreState = ((initialState === EReduxStoreInitialState.ARRAY && initStateArray) || (initialState === EReduxStoreInitialState.OBJECT && initStateObject) || (initialState === EReduxStoreInitialState.DEFAULT && initStateAny)) as IBaseReduxStoreState;\n\n // cookies\n let cookies:(Cookies|null) = null;\n if ( protocol === EActionType.SIGNIN ) {\n cookies = new Cookies();\n }\n\n return function ( state: IBaseReduxStoreState = initState, action: IBaseReduxStoreAction ) {\n\n switch (action.type) {\n \n /**\n * setter\n */\n // success\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.SUCCESS}`:\n if ( protocol === EActionType.SIGNIN ) {\n let _token: string = action?.payload as string;\n\n if ( !Lodash.isEmpty(_token) ) {\n localStorage.setItem(CoreDefault.tokenKeyName, _token);\n cookies?.set(CoreDefault.tokenKeyName, _token, { path: \"/\" });\n } \n }\n\n if ( protocol === EActionType.GET ) {\n return {\n ...state,\n error: null,\n isLoading: false,\n ...action.extraPayload\n }\n }\n else {\n return {\n ...state,\n message: action.message,\n payload: action.payload,\n count: action.count || 0,\n error: null,\n isLoading: false,\n }\n }\n \n // fail\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.FAIL}`:\n if ( protocol === EActionType.SIGNIN ) {\n localStorage.clear();\n cookies?.remove(CoreDefault.tokenKeyName, { path: \"/\" });\n }\n \n return {\n ...state,\n message: action.message,\n payload: null,\n count: 0,\n error: action.payload,\n isLoading: false\n };\n \n // store\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.STORE}`:\n return {\n ...state,\n message: !Lodash.isEmpty(action.message) ? action.message : state.message,\n payload: !Lodash.isEmpty(action.payload) ? action.payload : state.payload,\n count: Lodash.isNumber(action.count) ? action.count : state.count,\n error: !Lodash.isEmpty(action.error) ? action.error : state.error,\n isLoading: false\n };\n \n // modifier\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.MODIFIER}`:\n return {\n ...state,\n payload: changeValue(state?.payload, initialState, action?.payload),\n isLoading: false\n };\n \n /**\n * cleaner\n */\n // clean\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.CLEAN}`:\n if ( protocol === EActionType.SIGNIN ) {\n localStorage.clear();\n cookies?.remove(CoreDefault.tokenKeyName, { path: \"/\" });\n }\n \n if ( protocol === EActionType.GET ) {\n return {\n ...state,\n [action.key]: undefined\n }\n }\n else {\n if (initialState === EReduxStoreInitialState.ARRAY) return initStateArray;\n else if (initialState === EReduxStoreInitialState.OBJECT) return initStateObject;\n else if (initialState === EReduxStoreInitialState.DEFAULT) return initStateAny;\n else return null;\n }\n \n // clean message\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.CLEAN_MESSAGE}`:\n return {\n ...state,\n message: null\n };\n \n // clean payload\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.CLEAN_PAYLOAD}`:\n return {\n ...state,\n payload: null\n };\n \n // clean error\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.CLEAN_ERROR}`:\n return {\n ...state,\n error: null\n };\n \n // clean count\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.CLEAN_COUNT}`:\n return {\n ...state,\n count: 0\n };\n\n\n /**\n * others\n */\n // fetching\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.FETCHING}`:\n return {\n ...state,\n isLoading: true\n };\n \n // toggle\n case `${screenCode}${serviceCode}${protocol}${EActionStatus.TOGGLE}`:\n return {\n ...state,\n payload: (state.payload === true || state.payload === false) ? !state.payload : state.payload,\n isLoading: false\n };\n\n // default\n default:\n return state;\n }\n\n }\n\n}\n\nexport default BaseReduxStore;\n","import BaseReduxStore from 'core/reducers/BaseReduxStore';\n// interface\nimport ICoreReduxStore from 'core/interfaces/ICoreReduxStore';\nimport ICoreReduxStoreBase from 'core/interfaces/ICoreReduxStoreBase';\n// enum\nimport EActionType from 'core/enums/EActionType';\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\n\n\nclass CoreReduxStore {\n\n serviceCode: string = \"\";\n screenCode: string = \"\";\n\n constructor({ screenCode, serviceCode }: ICoreReduxStore ) {\n this.serviceCode = serviceCode;\n this.screenCode = screenCode;\n }\n\n\n BASE ( {storeKey, protocolKey, initialState = EReduxStoreInitialState.DEFAULT}: ICoreReduxStoreBase ) {\n return {\n [storeKey]: BaseReduxStore({ \n screenCode: this.screenCode,\n serviceCode: this.serviceCode, \n protocol: protocolKey,\n initialState: initialState\n }) \n }\n }\n\n \n LIST () {\n return this.BASE({ \n storeKey: \"list\", \n protocolKey: EActionType.LIST,\n initialState: EReduxStoreInitialState.ARRAY\n });\n }\n\n POST ( initialState = EReduxStoreInitialState.OBJECT ) {\n return this.BASE({ \n storeKey: \"post\", \n protocolKey: EActionType.POST, \n initialState: initialState\n });\n }\n\n PATCH () {\n return this.BASE({ \n storeKey: \"patch\", \n protocolKey: EActionType.PATCH, \n initialState: EReduxStoreInitialState.OBJECT\n });\n }\n\n MANAGEMENT ( initialState = EReduxStoreInitialState.OBJECT ) {\n return this.BASE({ \n storeKey: \"management\", \n protocolKey: EActionType.MANAGEMENT, \n initialState: initialState\n });\n }\n\n DELETE () {\n return this.BASE({ \n storeKey: \"delete\", \n protocolKey: EActionType.DELETE, \n initialState: EReduxStoreInitialState.OBJECT\n });\n }\n\n DETAILS () {\n return this.BASE({ \n storeKey: \"details\", \n protocolKey: EActionType.DETAILS, \n initialState: EReduxStoreInitialState.OBJECT\n });\n }\n\n STORAGE ( initialState = EReduxStoreInitialState.OBJECT ) {\n return this.BASE({ \n storeKey: \"storage\", \n protocolKey: EActionType.STORAGE, \n initialState: initialState\n });\n }\n\n GET () {\n return this.BASE({ \n storeKey: \"get\", \n protocolKey: EActionType.GET,\n initialState: EReduxStoreInitialState.OBJECT\n });\n }\n\n SIGNIN () {\n return { \n \"signIn\": BaseReduxStore({ \n screenCode: \"\",\n serviceCode: \"\", \n protocol: EActionType.SIGNIN,\n initialState: EReduxStoreInitialState.OBJECT\n })\n }\n }\n\n DOWNLOAD () {\n return this.BASE({ \n storeKey: \"download\", \n protocolKey: EActionType.DOWNLOAD, \n initialState: EReduxStoreInitialState.OBJECT\n });\n }\n\n UPLOAD () {\n return this.BASE({ \n storeKey: \"upload\", \n protocolKey: EActionType.UPLOAD, \n initialState: EReduxStoreInitialState.OBJECT\n });\n }\n \n \n CHANGE () {\n return this.BASE({ \n storeKey: \"change\", \n protocolKey: EActionType.CHANGE, \n initialState: EReduxStoreInitialState.OBJECT\n });\n }\n\n \n PUBLISH_MESSAGE () {\n return this.BASE({ \n storeKey: \"publishMessage\", \n protocolKey: EActionType.PUBLISH_MESSAGE, \n initialState: EReduxStoreInitialState.OBJECT \n });\n }\n\n PUBLISH_POPUP () {\n return this.BASE({ \n storeKey: \"publishPopup\", \n protocolKey: EActionType.PUBLISH_POPUP, \n initialState: EReduxStoreInitialState.OBJECT\n });\n }\n\n}\n\nexport default CoreReduxStore;\n","import { combineReducers } from 'redux';\n// reducers\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// interfaces\nimport ICoreReduxStore from 'core/interfaces/ICoreReduxStore';\n// enums\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\nimport EActionType from 'core/enums/EActionType';\n\nconst reduxStorages = new CoreReduxStore( { screenCode: \"COM\", serviceCode: \"Core\" } as ICoreReduxStore )\n\n/**\n * - Uygulama ana verileri burada depolanır\n * - Herhangi bir sayfaya bağlı kalmaksızın verilerin depolanması için \n * screenCode COM(Common) ve serviceCode Core(Core) olarak set edilmiştir.\n */\n\nconst CoreStore = combineReducers({\n\n language: reduxStorages.BASE({ \n storeKey: \"floorsandextras\",\n protocolKey: EActionType.LANGUAGE,\n initialState: EReduxStoreInitialState.OBJECT\n })[\"floorsandextras\"],\n languageCode: reduxStorages.BASE({ \n storeKey: \"floorsandextras\",\n protocolKey: EActionType.LANGUAGE_CODE,\n initialState: EReduxStoreInitialState.DEFAULT\n })[\"floorsandextras\"],\n\n loader: reduxStorages.BASE({ \n storeKey: \"floorsandextras\",\n protocolKey: EActionType.LOADER,\n initialState: EReduxStoreInitialState.DEFAULT\n })[\"floorsandextras\"],\n\n colorPalette: reduxStorages.BASE({ \n storeKey: \"floorsandextras\",\n protocolKey: EActionType.COLOR_PALETTE,\n initialState: EReduxStoreInitialState.OBJECT\n })[\"floorsandextras\"],\n colorPaletteMode: reduxStorages.BASE({ \n storeKey: \"floorsandextras\",\n protocolKey: EActionType.COLOR_PALETTE_MODE,\n initialState: EReduxStoreInitialState.OBJECT\n })[\"floorsandextras\"]\n\n});\n\nexport default CoreStore;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\nimport ICoreReduxStore from 'core/interfaces/ICoreReduxStore';\n\nconst reduxStorages = new CoreReduxStore( { screenCode: \"COM\", serviceCode: \"Lang\" } as ICoreReduxStore )\n\n/**\n * - Language api sinden alınan veriler burada depolanır.\n * - Herhangi bir sayfaya bağlı kalmaksızın verilerin depolanması için \n * screenCode COM(Common) ve serviceCode Lang(Langauge) olarak set edilmiştir.\n */\n\nconst LanguageStore = combineReducers({\n\n ...reduxStorages.LIST()\n\n});\n\nexport default LanguageStore;","import EActionType from 'core/enums/EActionType';\nimport EMessageStatus from 'core/enums/EMessageStatus';\n//\nimport IAction from 'core/interfaces/IAction';\n\n/**\n * - Uygulama içinde herhangi bir sayfada popup mesajı gösterir.\n * - Herhangi bir sayfaya bağlı kalmaksızın verilerin depolanması için \n * screenCode ve serviceCode verisi empty olarak set edilmiştir.\n */\n\nfunction PopupPublisherStore (state:object = {}, action:IAction) {\n\n switch (action.type) {\n\n // success\n case `${EActionType.PUBLISH_POPUP}${EMessageStatus.SUCCESS}`:\n // TODO: Popup Message\n return state;\n\n // default\n default:\n return state;\n \n }\n\n}\n\nexport default PopupPublisherStore;\n","import { combineReducers } from 'redux';\n\n/* Common */\nimport CoreStore from \"core/reducers/common/CoreStore\";\nimport LanguageStore from \"core/reducers/common/LanguageStore\";\nimport MessagePublisherStore from \"core/reducers/common/MessagePublisherStore\";\nimport PopupPublisherStore from \"core/reducers/common/PopupPublisherStore\";\n\n\nconst CoreReducer = {\n\n /* Common */\n CoreStore,\n LanguageStore,\n MessagePublisherStore,\n PopupPublisherStore\n\n}\n\nexport default CoreReducer;\n","import EActionType from 'core/enums/EActionType';\nimport EMessageStatus from 'core/enums/EMessageStatus';\n//\nimport IAction from 'core/interfaces/IAction';\n//\nimport { toast } from 'react-toastify';\n/**\n * - Uygulama içinde herhangi bir sayfada natification mesajı gösterir.\n * - Herhangi bir sayfaya bağlı kalmaksızın verilerin depolanması için \n * screenCode ve serviceCode verisi empty olarak set edilmiştir.\n */\n\nfunction MessagePublisherStore (state:object = {}, action:IAction) {\n\n switch (action.type) {\n // success\n case `${EActionType.PUBLISH_MESSAGE}${EMessageStatus.SUCCESS}`:\n toast.success(action?.payload, {\n position: \"top-right\",\n autoClose: 3000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n \n return state;\n\n // error\n case `${EActionType.PUBLISH_MESSAGE}${EMessageStatus.ERROR}`:\n toast.error(action?.payload, {\n position: \"top-right\",\n autoClose: 3000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n\n return state;\n\n // warning\n case `${EActionType.PUBLISH_MESSAGE}${EMessageStatus.WARNING}`:\n toast.warn(action?.payload, {\n position: \"top-right\",\n autoClose: 3000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n\n return state;\n\n // info\n case `${EActionType.PUBLISH_MESSAGE}${EMessageStatus.INFO}`:\n toast.info(action?.payload, {\n position: \"top-right\",\n autoClose: 3000,\n hideProgressBar: false,\n closeOnClick: true,\n pauseOnHover: true,\n draggable: true,\n progress: undefined,\n theme: \"colored\",\n });\n\n return state;\n \n // popup message\n case `${EActionType.PUBLISH_MESSAGE}${EMessageStatus.POPUP}`:\n // TODO: Popup Message\n return state;\n\n // default\n default:\n return state;\n }\n\n}\n\nexport default MessagePublisherStore;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\nimport ICoreReduxStore from 'core/interfaces/ICoreReduxStore';\n\nconst reduxStorages = new CoreReduxStore( { screenCode: \"COM\", serviceCode: \"SS\" } as ICoreReduxStore )\n\n/**\n * - Site Settings api sinden alınan veriler burada depolanır.\n * - Herhangi bir sayfaya bağlı kalmaksızın verilerin depolanması için \n * screenCode COM(Common) ve serviceCode SS(SiteSetting) olarak set edilmiştir.\n */\n\nconst SiteSettingStore = combineReducers({\n\n ...reduxStorages.LIST(),\n ...reduxStorages.DETAILS(),\n\n});\n\nexport default SiteSettingStore;","import { combineReducers } from 'redux';\n// reducers\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// interfaces\nimport ICoreReduxStore from 'core/interfaces/ICoreReduxStore';\n// enums\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\n\nconst reduxStorages = new CoreReduxStore( { screenCode: \"CMS\", serviceCode: \"Core\" } as ICoreReduxStore )\n\n/**\n * - Uygulama ana verileri burada depolanır\n * - Herhangi bir sayfaya bağlı kalmaksızın verilerin depolanması için \n * screenCode CMS ve serviceCode Core(Core) olarak set edilmiştir.\n */\n\nconst CoreStore = combineReducers({\n\n mobileMenu: reduxStorages.BASE({ \n storeKey: \"floorsandextras\",\n protocolKey: \"MM\",\n initialState: EReduxStoreInitialState.DEFAULT\n })[\"floorsandextras\"],\n\n mobileSearch: reduxStorages.BASE({ \n storeKey: \"floorsandextras\",\n protocolKey: \"MS\",\n initialState: EReduxStoreInitialState.DEFAULT\n })[\"floorsandextras\"],\n\n});\n\nexport default CoreStore;\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientMenuItemService extends ReadOnlyOdataServiceBase {\n\n static code = \"203\";\n code = \"203\";\n\n constructor () {\n super({\n sourcePath: \"client-menu-items\"\n });\n }\n\n}\n\nexport default ClientMenuItemService;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientMenuItemService from 'cms/services/ClientMenuItemService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction ClientMenuItemServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientMenuItemService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST(),\n ...reduxStorages.GET()\n \n });\n}\n\nexport default ClientMenuItemServiceStore;\n","import { combineReducers } from 'redux';\n// reducers\nimport ClientMenuItemServiceStore from \"cms/reducers/services/ClientMenuItemServiceStore\";\n\n\nconst screenCode = \"201\";\nconst HeaderStore = combineReducers({\n \n ClientMenuItemStore: ClientMenuItemServiceStore({ screenCode }),\n\n});\n\nexport default HeaderStore;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientMainPageItemsService from 'cms/services/ClientMainPageItemsService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction ClientMainPageItemsServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientMainPageItemsService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST()\n \n });\n}\n\nexport default ClientMainPageItemsServiceStore;\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n// extensions\nimport FetchExtension from 'core/extensions/FetchExtension';\n// interface\nimport IFetchExtension from 'core/interfaces/IFetchExtension';\nimport { IOdataGetRequest } from 'core/interfaces/IGetRequest';\n// enum\nimport HttpMethodEnum from 'core/enums/EHttpMethod';\n\n\nclass ClientPagesService extends ReadOnlyOdataServiceBase {\n\n static code = \"204\";\n code = \"204\";\n\n constructor () {\n\n super({\n sourcePath: \"client-pages\"\n });\n\n }\n\n async search( params: IOdataGetRequest ): Promise {\n\n\t\tconst apiFetchConfig: IFetchExtension = {\n // protocol: EndpointProtocol.ODATA,\n\t\t\tmethod: HttpMethodEnum.GET,\n language: params.language,\n\n\t\t\tsourcePath: `${this.sourcePath}/search`,\n queryOptions: params.queryOptions\n\t\t}\n\n\t\treturn FetchExtension(apiFetchConfig);\n\t\n }\n\n}\n\nexport default ClientPagesService;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientPagesService from 'cms/services/ClientPagesService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\nimport EActionType from 'core/enums/EActionType';\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\n\n\nfunction ClientPagesServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientPagesService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST(),\n ...reduxStorages.DETAILS(),\n ...reduxStorages.GET(),\n \n pagination: reduxStorages.BASE({ \n storeKey: \"pagination\",\n protocolKey: EActionType.PAGINATION,\n initialState: EReduxStoreInitialState.OBJECT\n })[\"pagination\"]\n\n });\n}\n\nexport default ClientPagesServiceStore;\n","import { combineReducers } from 'redux';\n\n// reducers\nimport ClientMainPageItemsServiceStore from \"cms/reducers/services/ClientMainPageItemsServiceStore\";\nimport ClientPagesServiceStore from \"cms/reducers/services/ClientPagesServiceStore\";\n\n\nconst screenCode = \"200\";\n\nconst FooterStore = combineReducers({\n \n ClientMainPageItemsStore: ClientMainPageItemsServiceStore({ screenCode }),\n ClientPagesStore: ClientPagesServiceStore({ screenCode }),\n\n});\n\nexport default FooterStore;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientSliderItemService from 'cms/services/ClientSliderItemService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction ClientSliderItemServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientSliderItemService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST()\n \n });\n}\n\nexport default ClientSliderItemServiceStore;\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientCategoriesService extends ReadOnlyOdataServiceBase {\n\n static code = \"200\";\n code = \"200\";\n\n constructor () {\n super({\n sourcePath: \"client-categories\"\n });\n }\n\n}\n\nexport default ClientCategoriesService;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientCategoriesService from 'cms/services/ClientCategoriesService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\nimport EActionType from 'core/enums/EActionType';\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\n\n\nfunction ClientCategoriesServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientCategoriesService.code });\n\n return combineReducers({\n\n ...reduxStorages.DETAILS(),\n \n pagination: reduxStorages.BASE({ \n storeKey: \"pagination\",\n protocolKey: EActionType.PAGINATION,\n initialState: EReduxStoreInitialState.OBJECT\n })[\"pagination\"]\n \n });\n}\n\nexport default ClientCategoriesServiceStore;\n","import { combineReducers } from 'redux';\n\n// reducers\nimport ClientSilderItemServiceStore from \"cms/reducers/services/ClientSilderItemServiceStore\";\nimport ClientCategoriesServiceStore from \"cms/reducers/services/ClientCategoriesServiceStore\";\nimport ClientPagesServiceStore from \"cms/reducers/services/ClientPagesServiceStore\";\n\n\nconst screenCode = \"209\";\n\nconst CarouselStore = combineReducers({\n \n ClientSilderItemStore: ClientSilderItemServiceStore({ screenCode }),\n ClientCategoriesStore: ClientCategoriesServiceStore({ screenCode }),\n ClientPagesStore: ClientPagesServiceStore({ screenCode }),\n\n});\n\nexport default CarouselStore;\n","import { combineReducers } from 'redux';\n// \nimport ClientMainPageItemsServiceStore from \"cms/reducers/services/ClientMainPageItemsServiceStore\";\n\n\nconst screenCode = \"207\";\n\nconst MainPageItemStore = combineReducers({\n \n ClientMainPageItemsStore: ClientMainPageItemsServiceStore({ screenCode }),\n \n});\n\nexport default MainPageItemStore;\n","import { combineReducers } from 'redux';\n// \nimport ClientMainPageItemsServiceStore from \"cms/reducers/services/ClientMainPageItemsServiceStore\";\n\n\nconst screenCode = \"212\";\n\nconst MainPageItemStore = combineReducers({\n \n ClientMainPageItemsStore: ClientMainPageItemsServiceStore({ screenCode }),\n \n});\n\nexport default MainPageItemStore;\n","import { combineReducers } from 'redux';\n// \nimport ClientPagesServiceStore from \"cms/reducers/services/ClientPagesServiceStore\";\n\n\n\nconst screenCode = \"205\";\n\nconst LatestContentsStore = combineReducers({\n \n ClientPagesStore: ClientPagesServiceStore({ screenCode }),\n \n});\n\nexport default LatestContentsStore;\n","import { combineReducers } from 'redux';\n// \nimport ClientPagesServiceStore from \"cms/reducers/services/ClientPagesServiceStore\";\n\n\nconst screenCode = \"20E\";\n\nconst ShowroomLayoutStore = combineReducers({\n \n ClientPagesStore: ClientPagesServiceStore({ screenCode }),\n \n});\n\nexport default ShowroomLayoutStore;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ContactUsService from 'cms/services/ContactUsService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction ContactUsServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ContactUsService.code });\n\n return combineReducers({\n\n ...reduxStorages.POST()\n \n });\n}\n\nexport default ContactUsServiceStore;\n","import { combineReducers } from 'redux';\n\n// reducers\nimport ContactUsServiceStore from \"cms/reducers/services/ContactUsServiceStore\";\n\n\nconst screenCode = \"20C\";\nconst ContactFormStore = combineReducers({\n \n ContactUsStore: ContactUsServiceStore({ screenCode }),\n\n});\n\nexport default ContactFormStore;\n","import { combineReducers } from 'redux';\n\n// reducers\nimport ContactUsServiceStore from \"cms/reducers/services/ContactUsServiceStore\";\n\n\nconst screenCode = \"215\";\nconst ContactFormStore = combineReducers({\n \n ContactUsStore: ContactUsServiceStore({ screenCode }),\n\n});\n\nexport default ContactFormStore;\n","import { combineReducers } from 'redux';\n\n// reducers\nimport ContactUsServiceStore from \"cms/reducers/services/ContactUsServiceStore\";\n\n\nconst screenCode = \"202\";\nconst INNR003Store = combineReducers({\n \n ContactUsStore: ContactUsServiceStore({ screenCode }),\n\n});\n\nexport default INNR003Store;\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientContentsService extends ReadOnlyOdataServiceBase {\n\n static code = \"201\";\n code = \"201\";\n\n constructor () {\n\n super({\n sourcePath: \"client-contents\"\n });\n\n }\n\n}\n\nexport default ClientContentsService;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientContentsService from 'cms/services/ClientContentsService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\nimport EActionType from 'core/enums/EActionType';\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\n\n\nfunction ClientContentsServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientContentsService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST(),\n ...reduxStorages.DETAILS(),\n \n pagination: reduxStorages.BASE({ \n storeKey: \"pagination\",\n protocolKey: EActionType.PAGINATION,\n initialState: EReduxStoreInitialState.OBJECT\n })[\"pagination\"]\n \n });\n}\n\nexport default ClientContentsServiceStore;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ContentMetricsService from 'core/services/metrics/ContentMetricsService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction ContentMetricsServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ContentMetricsService.code });\n\n return combineReducers({\n\n ...reduxStorages.POST()\n \n });\n}\n\nexport default ContentMetricsServiceStore;\n","/* Common */\nimport SiteSettingStore from \"cms/reducers/common/SiteSettingStore\";\nimport CMSStore from \"cms/reducers/common/CMSStore\";\n\n/* Components */\nimport HeaderStore from \"cms/reducers/components/HeaderStore\";\nimport FooterStore from \"cms/reducers/components/FooterStore\";\nimport SliderStore from \"cms/reducers/components/SliderStore\";\nimport MainPageItemStore from \"cms/reducers/components/MainPageItemStore\";\nimport MainPagePopupStore from \"cms/reducers/components/MainPagePopupStore\";\nimport LatestContents from \"cms/reducers/components/LatestContents\";\nimport ShowroomLayoutStore from \"cms/reducers/components/ShowroomLayoutStore\";\nimport ContactFormStore from \"cms/reducers/components/ContactFormStore\";\n// import RMDRAIAssistantStore from \"cms/reducers/components/RMDRAIAssistantStore\";\nimport GetQuoteStore from \"cms/reducers/components/GetQuoteStore\";\n// InnerLayouts\nimport INNR003Store from \"cms/reducers/components/InnerLayouts/INNR003Store\";\n\n/* Screens */\nimport ContentStore from \"cms/reducers/screens/ContentStore\";\n\n\nconst CMSReducers = {\n\n /* Common */\n CMSStore,\n SiteSettingStore,\n\n /* Components */\n HeaderStore,\n FooterStore,\n SliderStore,\n MainPageItemStore,\n MainPagePopupStore,\n LatestContents,\n ShowroomLayoutStore,\n ContactFormStore,\n // RMDRAIAssistantStore,\n GetQuoteStore,\n // InnerLayouts\n INNR003Store,\n \n /* Screens */\n ContentStore\n\n}\n\nexport default CMSReducers;\n","import { combineReducers } from 'redux';\n// reducers\nimport ClientContentsServiceStore from \"cms/reducers/services/ClientContentsServiceStore\";\nimport ContentMetricsServiceStore from \"core/reducers/service/metrics/ContentMetricsServiceStore\";\n\n\nconst screenCode = \"20B\";\n\nconst ContentStore = combineReducers({\n \n ClientContentsStore: ClientContentsServiceStore({ screenCode }),\n ContentMetricsStore: ContentMetricsServiceStore({ screenCode })\n \n});\n\nexport default ContentStore;\n","import { combineReducers } from 'redux';\n// reducers\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// interfaces\nimport ICoreReduxStore from 'core/interfaces/ICoreReduxStore';\n// enums\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\n\nconst reduxStorages = new CoreReduxStore( { screenCode: \"ECOM\", serviceCode: \"Core\" } as ICoreReduxStore )\n\n/**\n * - Uygulama ana verileri burada depolanır\n * - Herhangi bir sayfaya bağlı kalmaksızın verilerin depolanması için \n * screenCode CMS ve serviceCode Core(Core) olarak set edilmiştir.\n */\n\nconst CoreStore = combineReducers({\n\n productDetailPopup: reduxStorages.BASE({ \n storeKey: \"floorsandextras\",\n protocolKey: \"PDP\",\n initialState: EReduxStoreInitialState.DEFAULT\n })[\"floorsandextras\"],\n\n});\n\nexport default CoreStore;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\nimport ICoreReduxStore from 'core/interfaces/ICoreReduxStore';\n\nconst reduxStorages = new CoreReduxStore( { screenCode: \"COM\", serviceCode: \"CCC\" } as ICoreReduxStore )\n\n/**\n * - Language api sinden alınan veriler burada depolanır.\n * - Herhangi bir sayfaya bağlı kalmaksızın verilerin depolanması için \n * screenCode COM(Common) ve serviceCode CCC(ClientCatalogCategories) olarak set edilmiştir.\n */\n\nconst ClientCatalogCategoryStore = combineReducers({\n\n ...reduxStorages.LIST()\n\n});\n\nexport default ClientCatalogCategoryStore;\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientCatalogCategoriesService extends ReadOnlyOdataServiceBase {\n\n static code = \"401\";\n code = \"401\";\n\n constructor () {\n super({\n sourcePath: \"client-catalog-categories\"\n });\n }\n\n}\n\nexport default ClientCatalogCategoriesService;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientCatalogCategoriesService from 'ecommerce/services/ClientCatalogCategoriesService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction ClientCatalogCategoriesServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientCatalogCategoriesService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST(),\n ...reduxStorages.DETAILS(),\n \n });\n}\n\nexport default ClientCatalogCategoriesServiceStore;\n","import { combineReducers } from 'redux';\n// reducers\nimport ClientCatalogCategoriesServiceStore from \"ecommerce/reducers/services/ClientCatalogCategoriesServiceStore\";\n\n\nconst screenCode = \"401\";\n\nconst CategoryFilterStore = combineReducers({\n\n ClientCatalogCategoriesStore: ClientCatalogCategoriesServiceStore({ screenCode }),\n \n});\n\nexport default CategoryFilterStore;\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientBrandsService extends ReadOnlyOdataServiceBase {\n\n static code = \"404\";\n code = \"404\";\n\n constructor () {\n super({\n sourcePath: \"client-brands\"\n });\n }\n\n}\n\nexport default ClientBrandsService;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientBrandsService from 'ecommerce/services/ClientBrandsService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction ClientBrandsServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientBrandsService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST(),\n ...reduxStorages.DETAILS(),\n \n });\n}\n\nexport default ClientBrandsServiceStore;\n","import { combineReducers } from 'redux';\n// reducers\nimport ClientBrandsServiceStore from \"ecommerce/reducers/services/ClientBrandsServiceStore\";\n\n\nconst screenCode = \"402\";\n\nconst BrandFilterStore = combineReducers({\n\n ClientBrandsStore: ClientBrandsServiceStore({ screenCode }),\n \n});\n\nexport default BrandFilterStore;\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientTagssService extends ReadOnlyOdataServiceBase {\n\n static code = \"406\";\n code = \"406\";\n\n constructor () {\n super({\n sourcePath: \"client-tags\"\n });\n }\n\n}\n\nexport default ClientTagssService;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientTagsService from 'ecommerce/services/ClientTagsService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction ClientTagsServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientTagsService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST(),\n ...reduxStorages.DETAILS(),\n \n });\n}\n\nexport default ClientTagsServiceStore;\n","import { combineReducers } from 'redux';\n// reducers\nimport ClientTagsServiceStore from \"ecommerce/reducers/services/ClientTagsServiceStore\";\n\n\nconst screenCode = \"403\";\n\nconst TagFilterStore = combineReducers({\n\n ClientTagsStore: ClientTagsServiceStore({ screenCode }),\n \n});\n\nexport default TagFilterStore;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientProductsService from 'ecommerce/services/ClientProductsService';\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction ClientProductsServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientProductsService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST(),\n ...reduxStorages.GET(),\n ...reduxStorages.DETAILS(),\n\n });\n}\n\nexport default ClientProductsServiceStore;\n","import { combineReducers } from 'redux';\n\n// reducers\nimport ClientProductsServiceStore from \"ecommerce/reducers/services/ClientProductsServiceStore\";\n\n\nconst screenCode = \"20F\";\nconst INNR006Store = combineReducers({\n \n ClientProductsStore: ClientProductsServiceStore({ screenCode }),\n\n});\n\nexport default INNR006Store;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport StockStatusService from 'ecommerce/services/enum/StockStatusService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\n\n\nfunction StockStatusServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: StockStatusService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST()\n \n });\n}\n\nexport default StockStatusServiceStore;\n","import { combineReducers } from 'redux';\n\n// reducers\nimport ClientProductsServiceStore from \"ecommerce/reducers/services/ClientProductsServiceStore\";\nimport StockStatusServiceStore from \"ecommerce/reducers/services/enum/StockStatusServiceStore\";\n\n\nconst screenCode = \"404\";\nconst MNPG003Store = combineReducers({\n \n ClientProductsStore: ClientProductsServiceStore({ screenCode }),\n StockStatusStore: StockStatusServiceStore({ screenCode }),\n\n});\n\nexport default MNPG003Store;\n","import { combineReducers } from 'redux';\n\n// reducers\nimport ClientProductsServiceStore from \"ecommerce/reducers/services/ClientProductsServiceStore\";\nimport StockStatusServiceStore from \"ecommerce/reducers/services/enum/StockStatusServiceStore\";\n\n\nconst screenCode = \"405\";\nconst MNPG007Store = combineReducers({\n \n ClientProductsStore: ClientProductsServiceStore({ screenCode }),\n StockStatusStore: StockStatusServiceStore({ screenCode }),\n\n});\n\nexport default MNPG007Store;\n","import { combineReducers } from 'redux';\n\n// reducers\nimport ClientProductsServiceStore from \"ecommerce/reducers/services/ClientProductsServiceStore\";\nimport StockStatusServiceStore from \"ecommerce/reducers/services/enum/StockStatusServiceStore\";\n\n\nconst screenCode = \"406\";\nconst MNPG003Store = combineReducers({\n \n ClientProductsStore: ClientProductsServiceStore({ screenCode }),\n StockStatusStore: StockStatusServiceStore({ screenCode }),\n\n});\n\nexport default MNPG003Store;\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientStoresService extends ReadOnlyOdataServiceBase {\n\n static code = \"403\";\n code = \"403\";\n\n constructor () {\n super({\n sourcePath: \"client-stores\"\n });\n }\n\n}\n\nexport default ClientStoresService;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// service\nimport ClientStoresService from 'ecommerce/services/ClientStoresService'\n// interface\nimport IServiceStore from 'core/interfaces/IServiceStore';\nimport EActionType from 'core/enums/EActionType';\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\n\n\nfunction ClientStoresServiceStore({ screenCode }:IServiceStore ) {\n const reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: ClientStoresService.code });\n\n return combineReducers({\n\n ...reduxStorages.LIST(),\n ...reduxStorages.DETAILS(),\n \n pagination: reduxStorages.BASE({ \n storeKey: \"pagination\",\n protocolKey: EActionType.PAGINATION,\n initialState: EReduxStoreInitialState.OBJECT\n })[\"pagination\"]\n \n });\n}\n\nexport default ClientStoresServiceStore;\n","import { combineReducers } from 'redux';\nimport CoreReduxStore from 'core/reducers/CoreReduxStore';\n// reducers\nimport ClientProductsServiceStore from \"ecommerce/reducers/services/ClientProductsServiceStore\";\nimport ClientStoresServiceStore from \"ecommerce/reducers/services/ClientStoresServiceStore\";\nimport ClientCatalogCategoriesServiceStore from \"ecommerce/reducers/services/ClientCatalogCategoriesServiceStore\";\nimport StockStatusServiceStore from \"ecommerce/reducers/services/enum/StockStatusServiceStore\";\n// enums\nimport EReduxStoreInitialState from 'core/enums/EReduxStoreInitialState';\n\n\nconst screenCode = \"400\";\nconst reduxStorages = new CoreReduxStore({ screenCode: screenCode, serviceCode: \"\" });\n\nconst MarketPlaceStore = combineReducers({\n \n ClientProductsStore: ClientProductsServiceStore({ screenCode }),\n ClientStoresStore: ClientStoresServiceStore({ screenCode }),\n ClientCatalogCategoriesStore: ClientCatalogCategoriesServiceStore({ screenCode }),\n StockStatusStore: StockStatusServiceStore({ screenCode }),\n \n MarketPlacePageStore: reduxStorages.BASE({ \n storeKey: \"marketplace\",\n protocolKey: \"MP\",\n initialState: EReduxStoreInitialState.OBJECT\n })[\"marketplace\"]\n \n});\n\nexport default MarketPlaceStore;\n","/* Common */\nimport ECommerceStore from \"ecommerce/reducers/common/ECommerceStore\";\nimport ClientCatalogCategoryStore from \"ecommerce/reducers/common/ClientCatalogCategoryStore\";\n\n\n/* Components */\nimport CategoryFilterStore from \"ecommerce/reducers/components/filters/CategoryFilterStore\";\nimport BrandFilterStore from \"ecommerce/reducers/components/filters/BrandFilterStore\";\nimport TagFilterStore from \"ecommerce/reducers/components/filters/TagFilterStore\";\n// InnerLayouts\nimport INNR006Store from \"ecommerce/reducers/components/InnerLayouts/INNR006Store\";\n// MainPageLayouts\nimport MNPG003Store from \"ecommerce/reducers/components/MainPageLayouts/MNPG003Store\";\nimport MNPG007Store from \"ecommerce/reducers/components/MainPageLayouts/MNPG007Store\";\nimport MNPG015Store from \"ecommerce/reducers/components/MainPageLayouts/MNPG015Store\";\n/* Screens */\nimport MarketPlaceStore from \"ecommerce/reducers/screens/MarketPlaceStore\";\n\n\nconst ECommerceReducers = {\n\n /* Common */\n ECommerceStore,\n ClientCatalogCategoryStore,\n\n /* Components */\n CategoryFilterStore,\n BrandFilterStore,\n TagFilterStore,\n // InnerLayouts\n INNR006Store,\n // MainPageLayouts\n MNPG003Store,\n MNPG007Store,\n MNPG015Store,\n \n /* Screens */\n MarketPlaceStore,\n\n}\n\nexport default ECommerceReducers;\n","// redux\nimport { combineReducers } from \"redux\";\nimport { configureStore } from '@reduxjs/toolkit';\n// thunk\nimport { thunk } from \"redux-thunk\";\n// reducers\nimport CoreReducer from \"core/reducers\";\nimport CmsReducers from \"cms/reducers\";\nimport ECommerceReducers from \"ecommerce/reducers\";\n\n\nfunction Reducer () { \n return combineReducers({\n ...CoreReducer,\n ...CmsReducers,\n ...ECommerceReducers,\n });\n}\n\nfunction AppReducer () { \n return configureStore({\n reducer: Reducer(),\n middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(thunk),\n devTools: false\n });\n}\n\nexport default AppReducer;\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\"\nimport Lodash from 'lodash';\nimport { Navigate } from \"react-router-dom\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"WebApplicationRedirector.mapStateToProps: \", state);\n\n const webApplicationLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageISOCode = state.CoreStore.languageCode?.payload;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageISOCode\n \n }\n}\n\nconst connector = connect( mapStateToProps );\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TWebApplicationRedirector = {\n \n} & T;\n\n\n/* component */\nfunction MainPageItemsLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction WebApplicationRedirector ( props:TWebApplicationRedirector ) {\n console.log(\"WebApplicationRedirector.rendered: \", props);\n\n if ( !Lodash.isEmpty(props.webApplicationLanguageISOCode) ) {\n\n return ;\n \n }\n\n return null;\n\n};\n\nconst Component = React.memo(WebApplicationRedirector, ( prevProps:TWebApplicationRedirector, nextProps:TWebApplicationRedirector ) => {\n console.log(\"WebApplicationRedirector.memo\", { prevProps, nextProps });\n\n return !( \n prevProps.webApplicationLanguageISOCode !== nextProps.webApplicationLanguageISOCode \n || !Lodash.isEmpty(nextProps.webApplicationLanguageISOCode)\n )\n});\n\nexport default connector(Component);\n","import OdataCoreServiceBase from 'core/services/OdataCoreServiceBase';\n\n\nclass LanguageService extends OdataCoreServiceBase {\n\t\n static code = \"004\";\n code = \"004\";\n\n\tconstructor () {\n\t\tsuper({\n\t\t\tsourcePath: \"client-languages\"\n\t\t});\n\t}\n\t\n}\n\nexport default LanguageService;\n","// action\nimport OdataCoreActionBase from \"core/actions/OdataCoreActionBase\";\n// service\nimport LanguageService from \"core/services/language/LanguageService\";\n\n\nclass LanguageServiceAction extends OdataCoreActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n\n super(dispatch, LanguageService, screenCode);\n \n }\n\n}\n\nexport default LanguageServiceAction;\n","import _LanguageServiceAction from \"core/actions/services/language/LanguageServiceAction\";\n\n\nconst screenCode = \"COM\";\nclass LanguageServiceAction extends _LanguageServiceAction {\n\n constructor( dispatch:any ) {\n super( dispatch, screenCode);\n\n this.serviceCode = \"Lang\";\n }\n\n}\n\nexport default LanguageServiceAction;","import _LanguageServiceAction from \"core/actions/common/LanguageServiceAction\";\n\n\nconst screenCode = \"20A\";\nclass LanguageServiceAction extends _LanguageServiceAction {\n\n}\n\nexport default LanguageServiceAction;\n","import Lodash from 'lodash';\nimport Defaults from 'core/Defaults';\nimport IClientLanguage from 'core/interfaces/IClientLanguage';\n\n\nclass DetectLanguage {\n\n languages:IClientLanguage[]|null = null;\n webApplicationLanguage?:IClientLanguage|null = null;\n webApplicationLanguageISOCode?:string|null = null;\n webApplicationLanguageCode?:string|null = null;\n\n constructor( languages: IClientLanguage[]|null ) {\n\n this.languages = languages;\n\n }\n\n _findLanguage ( languages:any, ISOCode:string ) {\n\n if ( Lodash.isEmpty(ISOCode) ) return null;\n \n let language = languages.find((item:any) => item.twoLetterISOName === ISOCode);\n if (!Lodash.isEmpty(language)) delete language[\"id\"];\n \n return language;\n \n }\n\n _fromLocation() {\n\n if ( !Lodash.isEmpty(this.webApplicationLanguageISOCode) ) return;\n\n try {\n \n const locationPathnameArray:any = window.location.pathname;\n if ( !Lodash.isEmpty(locationPathnameArray) ) {\n const WebApplicationLanguageISOCodeFromLocation = locationPathnameArray.split(\"/\").filter((n:any) => n)?.[0];\n this.webApplicationLanguage = this._findLanguage(this.languages, WebApplicationLanguageISOCodeFromLocation);\n this.webApplicationLanguageISOCode = this.webApplicationLanguage?.twoLetterISOName;\n this.webApplicationLanguageCode = this.webApplicationLanguage?.code;\n }\n\n } catch( ex ) {\n \n this.webApplicationLanguage = null;\n this.webApplicationLanguageISOCode = null;\n this.webApplicationLanguageCode = null;\n \n }\n\n }\n\n _fromLocalStorage() {\n\n if ( !Lodash.isEmpty(this.webApplicationLanguageISOCode) ) return;\n\n try {\n\n const webApplicationLanguageFromLocalStorage = localStorage.getItem(\"WebApplicationLanguage\");\n if ( !Lodash.isEmpty(webApplicationLanguageFromLocalStorage) ) {\n this.webApplicationLanguage = JSON.parse(webApplicationLanguageFromLocalStorage as string);\n this.webApplicationLanguageISOCode = this.webApplicationLanguage?.twoLetterISOName;\n this.webApplicationLanguageCode = this.webApplicationLanguage?.code;\n }\n\n } catch( ex ) {\n\n this.webApplicationLanguage = null;\n this.webApplicationLanguageISOCode = null;\n this.webApplicationLanguageCode = null;\n \n }\n\n }\n\n _fromNavigator() {\n\n if ( !Lodash.isEmpty(this.webApplicationLanguageISOCode) ) return;\n\n try {\n\n const WebApplicationLanguageISOCodeFromNavigator:any = navigator.languages?.filter((item:string) => item.length === 2);\n for ( let item of WebApplicationLanguageISOCodeFromNavigator ) {\n let webApplicationLangaugeFromNavigator = this._findLanguage(this.languages, item);\n if ( webApplicationLangaugeFromNavigator ) {\n this.webApplicationLanguage = webApplicationLangaugeFromNavigator;\n this.webApplicationLanguageISOCode = webApplicationLangaugeFromNavigator.twoLetterISOName;\n this.webApplicationLanguageCode = webApplicationLangaugeFromNavigator.code;\n break;\n }\n }\n\n } catch( ex ) {\n \n this.webApplicationLanguage = null;\n this.webApplicationLanguageISOCode = null;\n this.webApplicationLanguageCode = null;\n \n }\n\n }\n\n _fromDefault() {\n\n if ( !Lodash.isEmpty(this.webApplicationLanguageISOCode) ) return;\n\n try {\n\n const webApplicationLanguageFromDefaults = this._findLanguage(this.languages, Defaults.clientLanguage.twoLetterISOName);\n this.webApplicationLanguage = webApplicationLanguageFromDefaults;\n this.webApplicationLanguageISOCode = webApplicationLanguageFromDefaults.twoLetterISOName;\n this.webApplicationLanguageCode = webApplicationLanguageFromDefaults.code;\n \n } catch( ex ) {\n\n this.webApplicationLanguage = null;\n this.webApplicationLanguageISOCode = null;\n this.webApplicationLanguageCode = null;\n\n }\n }\n\n _fromFirst () {\n\n if ( !Lodash.isEmpty(this.webApplicationLanguageISOCode) ) return;\n\n try {\n\n const webApplicationLanguageFirst = this.languages?.[0];\n this.webApplicationLanguage = webApplicationLanguageFirst;\n this.webApplicationLanguageISOCode = webApplicationLanguageFirst?.twoLetterISOName;\n this.webApplicationLanguageCode = webApplicationLanguageFirst?.code;\n \n } catch( ex ) {\n\n this.webApplicationLanguage = null;\n this.webApplicationLanguageISOCode = null;\n this.webApplicationLanguageCode = null;\n\n }\n\n }\n\n getLangauge() {\n\n if ( Lodash.isEmpty(this.languages) ) {\n return { \n webApplicationLanguage: null,\n WebApplicationLanguageISOCode: null,\n webApplicationLanguageCode: null,\n }\n }\n\n this._fromLocation();\n this._fromLocalStorage(); // TODO: Burada client-languages dan gelene veriler ile eşleşiyor mu bakılacak. eğer local de en varsa ve sunucu da en yok ise seçmeyecek.\n this._fromNavigator();\n this._fromDefault();\n this._fromFirst();\n\n localStorage.setItem(\"WebApplicationLanguage\", JSON.stringify(this.webApplicationLanguage));\n localStorage.setItem(\"WebApplicationLanguageISOCode\", this.webApplicationLanguageISOCode||\"\");\n localStorage.setItem(\"webApplicationLanguageCode\", this.webApplicationLanguageCode||\"\");\n\n return { \n webApplicationLanguage: this.webApplicationLanguage, \n webApplicationLanguageISOCode: this.webApplicationLanguageISOCode, \n webApplicationLanguageCode: this.webApplicationLanguageCode \n }\n\n }\n\n}\n\nconst detectLanguage = ( languages:IClientLanguage[]|null ) => new DetectLanguage(languages).getLangauge();\n\nexport default detectLanguage;\n","import React, { useEffect } from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\"\nimport Lodash from 'lodash';\nimport { Outlet } from \"react-router-dom\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\n// actions\nimport LanguageServiceAction from \"cms/actions/components/WebApplicationStarter/LanguageServiceAction\";\nimport CoreAction from \"core/actions/common/CoreAction\";\n// interfaces\nimport IOdataQueryOptions from \"core/interfaces/IOdataQueryOptions\";\n// utilities\nimport DetectLanguage from \"cms/utilities/DetectLanguage\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\n// types\nimport TValidations from \"cms/types/TValidations\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"WebApplicationStarter.mapStateToProps: \", state);\n\n const languageStorePayload:IClientLanguage[] = state.LanguageStore.list?.payload;\n const languageStoreError:TValidations[]|null = state.LanguageStore.list?.error;\n const languageStoreIsLoading:boolean = state.LanguageStore.list?.isLoading;\n\n const detectLanguage = DetectLanguage(languageStorePayload);\n const webApplicationLanguage = detectLanguage.webApplicationLanguage;\n const webApplicationLanguageISOCode = detectLanguage.webApplicationLanguageISOCode\n const webApplicationLanguageCode = detectLanguage.webApplicationLanguageCode\n\n const error:TValidations[]|null|undefined = Lodash.reject([ languageStoreError ], Lodash.isEmpty )[0];\n const isLoading:boolean = [ languageStoreIsLoading ].includes(true);\n\n return {\n\n languageStorePayload,\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n error,\n isLoading\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"WebApplicationStarter.mapDispatchToProps\");\n\n const coreAction = new CoreAction(dispatch);\n const languageServiceAction = new LanguageServiceAction(dispatch);\n\n return {\n\n _listLanguages: () => {\n let queryOptions:IOdataQueryOptions = {\n filter: [\"isActive eq true\"],\n top: 1000\n };\n\n languageServiceAction.list({ servicePayload: { queryOptions }, args:{ \"keysToBeRemoved\": [\"id\"] } });\n },\n\n _setWebApplicationLanguage: ( language:any ) => {\n coreAction.setWebApplicationLanguage(language);\n }\n \n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TWebApplicationStarter = {\n\n} & T;\n\n\n/* component */\nfunction WebApplicationStarterLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction WebApplicationStarter ( props:TWebApplicationStarter ) {\n console.log(\"WebApplicationStarter.rendered: \", props);\n\n useEffect(\n () => {\n\n props._listLanguages();\n \n }, []\n )\n\n if ( !Lodash.isEmpty(props.webApplicationLanguageISOCode) && props.webApplicationLanguageISOCode && !props.isLoading ) {\n\n props._setWebApplicationLanguage(props.webApplicationLanguage);\n document.documentElement.lang = props.webApplicationLanguageISOCode;\n return ;\n \n }\n\n return null;\n\n};\n\nconst Component = React.memo(WebApplicationStarter, (prevProps:TWebApplicationStarter, nextProps:TWebApplicationStarter) => {\n console.log(\"WebApplicationStarter.memo\", { prevProps, nextProps });\n\n return !( \n prevProps.isLoading !== nextProps.isLoading \n || prevProps.webApplicationLanguageISOCode !== nextProps.webApplicationLanguageISOCode \n )\n});\n\nexport default connector(Component);\n","enum ESizeType {\n \n X01 = 0, // 0 - 100\n X02, // 100 - 200\n X03, // 200 - 300\n X04, // 300 - 400\n X05, // 400 - 500\n X06, // 500 - 600\n X07, // 600 - 700\n X08, // 700 - 800\n X09, // 800 - 900\n X10, // 900 - 1000\n X11 // 1000 - y\n \n}\n\nexport default ESizeType;\n","import { isEmpty, reject } from \"lodash\";\nimport Helmet from \"react-helmet\";\nimport CoreDefault from \"core/Defaults\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport ESizeType from \"cms/enums/ESizeType\";\n// extensions\nimport AnalyticsExtension from \"core/extensions/AnalyticsExtension\";\n// utilities\nimport ApplicationDocumentSelector from \"cms/utilities/ApplicationDocumentSelector\";\n// interfaces\nimport IClientContentDetail from \"cms/interfaces/IClientContentDetail\";\nimport IClientPageList from \"cms/interfaces/IClientPageList\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport IClientPageDetail from \"cms/interfaces/IClientPageDetail\";\nimport IClientContentList from \"cms/interfaces/IClientContentList\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport IApplicationDocument from \"cms/interfaces/IApplicationDocument\";\nimport IClientProductList from \"ecommerce/interfaces/IClientProductList\";\nimport IClientProductDetails from \"ecommerce/interfaces/IClientProductDetails\";\n\n\ntype TSEO = {\n\n contentPayload?: IClientPageList|IClientPageDetail|IClientContentDetail|IClientContentList|null;\n productPayload?: IClientProductList|IClientProductDetails;\n siteSettingPayload?: IClientSiteSettingDetail|null;\n\n // predefined\n type?:\"header\" | \"home-page\" | \"content-page\" | \"showroom-page\" | \"product-page\";\n\n // other\n customMetaPayload?:{ title:string, url:string };\n\n // \n enableTitle?:boolean;\n enableIcon?:boolean;\n enableAuthor?:boolean;\n\n enableDescription?:boolean; // priority: contentPayload, customMetaPayload, siteSettingPayload\n enableKeywords?:boolean; // priority: contentPayload, customMetaPayload, siteSettingPayload\n\n enableAnalytics?:boolean;\n\n enableBase?:boolean;\n enableTwitter?:boolean;\n enableCanonical?:boolean;\n enableOpenGraph?:boolean;\n\n enableLDJSONSearch?:boolean;\n enableLDJSONOrganization?:boolean;\n\n}\n\ntype TLanguagePayload = {\n\n webAppNameDescription:ILanguageVersionDetail|null;\n contentNameDescription:ILanguageVersionDetail|ILanguageVersionList|null;\n author:ILanguageVersionDetail|null;\n \n webAppmetaDescription:ILanguageVersionDetail|null;\n contentMetaDescription:ILanguageVersionDetail|null;\n \n webAppMetaKeywords:ILanguageVersionDetail|null;\n contentMetaKeywords:ILanguageVersionDetail|null;\n \n twitterUserName:ILanguageVersionDetail|null;\n sameAs:ILanguageVersionDetail|null;\n\n addressLocality:ILanguageVersionDetail|null;\n addressRegion:ILanguageVersionDetail|null;\n postalCode:ILanguageVersionDetail|null;\n address:ILanguageVersionDetail|null;\n}\n\ntype TResourcePayload = {\n\n applicationIcon:IApplicationDocument|null;\n defaultApplicationDocument:IApplicationDocument|null;\n\n contentOuterApplicationDocument:IApplicationDocument|null;\n contentInnerApplicationDocument:IApplicationDocument|null;\n contentImage:IApplicationDocument|null;\n \n productOunterApplicationDocument:IApplicationDocument|null;\n productInnerApplicationDocument:IApplicationDocument|null;\n productImageApplicationDocument:IApplicationDocument|null;\n productImage:IApplicationDocument|null;\n\n}\n\nfunction enableTitle ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableTitle !== true ) return;\n\n if ( !isEmpty(_languagePayload.contentNameDescription) && _languagePayload.contentNameDescription ) {\n payload.push({_languagePayload.webAppNameDescription?.name} - {_languagePayload.contentNameDescription.name});\n if ( props.enableAnalytics ) AnalyticsExtension.sendPageView(`${CoreDefault.url}/${_languagePayload.contentNameDescription.contentRouteNavigationURL}`, `${_languagePayload.webAppNameDescription?.name} - ${_languagePayload.contentNameDescription.name}`);\n }\n else if ( !isEmpty(props.customMetaPayload) && props.customMetaPayload ) {\n payload.push({_languagePayload.webAppNameDescription?.name} - {props.customMetaPayload.title});\n if ( props.enableAnalytics ) AnalyticsExtension.sendPageView(`${CoreDefault.url}/${props.customMetaPayload.url}`, `${_languagePayload.webAppNameDescription?.name} - ${props.customMetaPayload.title}`);\n }\n else {\n payload.push({_languagePayload.webAppNameDescription?.name});\n if ( props.enableAnalytics ) AnalyticsExtension.sendPageView(`${CoreDefault.url}/${_languagePayload.webAppNameDescription?.languageTwoLetterISOName}`, `${_languagePayload.webAppNameDescription?.name}`);\n }\n}\n\nfunction enableIcon ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableIcon !== true ) return;\n\n if ( !isEmpty(_resourcePayload.applicationIcon) && _resourcePayload.applicationIcon ) {\n payload.push();\n payload.push();\n }\n}\n\nfunction enableAuthor ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableAuthor !== true ) return;\n\n if ( !isEmpty(_languagePayload.author) && _languagePayload.author ) payload.push();\n else payload.push();\n\n}\n\nfunction enableDescription ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableDescription !== true ) return;\n\n if ( props.type === \"home-page\" && _languagePayload.webAppmetaDescription && !isEmpty(_languagePayload.webAppmetaDescription) ) {\n payload.push();\n }\n else if ( _languagePayload.contentMetaDescription && !isEmpty(_languagePayload.contentMetaDescription) ) {\n payload.push()\n }\n}\n\nfunction enableKeywords ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableKeywords !== true ) return;\n\n if ( props.type === \"home-page\" && _languagePayload.webAppMetaKeywords && !isEmpty(_languagePayload.webAppMetaKeywords) ) {\n payload.push();\n }\n else if ( _languagePayload.contentMetaKeywords && !isEmpty(_languagePayload.contentMetaKeywords) ) {\n payload.push();\n }\n}\n\nfunction enableBase ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableBase !== true ) return;\n\n payload.push();\n}\n\nfunction enableTwitter ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableTwitter !== true ) return;\n\n if ( !isEmpty(_languagePayload.contentNameDescription) && _languagePayload.contentNameDescription ) {\n payload.push();\n if ( !isEmpty(_languagePayload.twitterUserName) ) payload.push();\n if ( !isEmpty(_languagePayload.contentNameDescription.value ) ) payload.push();\n payload.push();\n if ( !isEmpty(_resourcePayload.contentImage) ) payload.push();\n payload.push();\n }\n else if ( !isEmpty(props.customMetaPayload) && props.customMetaPayload ) {\n payload.push();\n if ( !isEmpty(_languagePayload.twitterUserName) ) payload.push();\n if ( !isEmpty((_languagePayload.contentNameDescription as any)?.value) ) payload.push();\n payload.push();\n if ( !isEmpty(_resourcePayload.contentImage) ) payload.push();\n payload.push();\n }\n else {\n payload.push();\n if ( !isEmpty(_languagePayload.twitterUserName) ) payload.push();\n if ( !isEmpty(_languagePayload.webAppNameDescription?.value ) ) payload.push();\n payload.push();\n if ( !isEmpty(_resourcePayload.contentImage) ) payload.push();\n payload.push();\n }\n}\n\nfunction enableCanonical ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableCanonical !== true ) return;\n\n payload.push();\n}\n\nfunction enableOpenGraph ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableOpenGraph !== true ) return;\n\n if ( props.type === \"home-page\" ) {\n payload.push();\n \n payload.push();\n payload.push();\n payload.push();\n if ( !isEmpty(_languagePayload.webAppNameDescription?.value) ) {\n payload.push();\n }\n\n if ( !isEmpty(_resourcePayload.defaultApplicationDocument) ) {\n payload.push();\n payload.push();\n payload.push();\n // payload.push();\n // payload.push();\n payload.push();\n }\n } \n else if ( props.type === \"content-page\" || props.type === \"showroom-page\" || props.type === \"product-page\" ) { \n payload.push();\n payload.push();\n payload.push();\n if ( !isEmpty(_languagePayload.contentNameDescription?.value) ) {\n payload.push();\n }\n payload.push();\n\n // payload.push(); // datetime\n // payload.push(); // datetime\n // payload.push(); // datetime\n payload.push(); // profile array\n // payload.push(); // string\n if ( !isEmpty(_languagePayload.contentMetaKeywords) ) {\n payload.push(); // string array\n }\n\n if ( !isEmpty(_resourcePayload.contentImage) ) {\n payload.push();\n payload.push();\n payload.push();\n // payload.push();\n // payload.push();\n payload.push();\n }\n else if ( !isEmpty(_resourcePayload.productImage) ) {\n payload.push();\n payload.push();\n payload.push();\n // payload.push();\n // payload.push();\n payload.push();\n }\n }\n}\n\nfunction enableGoogleSiteVerification ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( isEmpty(process.env.GOOGLE_SITE_VERIFICATION) ) return;\n\n payload.push();\n}\n\nfunction enableLDJSONSearch ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableLDJSONSearch !== true ) return;\n\n payload.push(\n \n );\n\n}\n\nfunction enableLDJSONOrganization ( props:TSEO, _languagePayload:TLanguagePayload, _resourcePayload:TResourcePayload, payload:any[] ) {\n if ( props.enableLDJSONOrganization !== true ) return;\n\n const sameAs = _languagePayload.sameAs ? `[${_languagePayload.sameAs.value}]` : \"[]\"\n const address = _languagePayload.addressLocality && _languagePayload.addressRegion && _languagePayload.postalCode && _languagePayload.address ? \n `{\"@type\":\"PostalAddress\",\"addressLocality\":\"${_languagePayload.addressLocality?.value}\",\"addressRegion\":\"${_languagePayload.addressRegion?.value}\", \"postalCode\":\"${_languagePayload.postalCode?.value}\", \"streetAddress\":\"${_languagePayload.address?.value}\"}` :\n \"{}\"\n\n payload.push(\n \n );\n\n}\n\nfunction SEO ( props:TSEO ) {\n\n let payload:any[] = [];\n \n\n const webAppNameDescription = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type:\"find\"\n });\n\n const contentNameDescription = LanguageVersionSelector({\n languageVersions: props.contentPayload?.languageVersions||props.productPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type:\"find\"\n });\n \n const author = LanguageVersionSelector({\n languageVersions: props.contentPayload?.languageVersions||props.productPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"author\" }\n ],\n type:\"find\"\n });\n\n const webAppmetaDescription = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"metaDescription\" }\n ],\n type:\"find\"\n });\n\n const contentMetaDescription = LanguageVersionSelector({\n languageVersions: props.contentPayload?.languageVersions||props.productPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"metaDescription\" }\n ],\n type:\"find\"\n });\n\n const webAppMetaKeywords = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"metaKeywords\" }\n ],\n type:\"find\"\n });\n\n const contentMetaKeywords = LanguageVersionSelector({\n languageVersions: props.contentPayload?.languageVersions||props.productPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"metaKeywords\" }\n ],\n type:\"find\"\n });\n\n const twitterUserName = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, contentType: EContentType.DEFAULT, name:\"twitterUsername\" }\n ],\n type:\"find\"\n });\n\n const sameAs = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, contentType: EContentType.DEFAULT, name:\"sameAs\" }\n ],\n type:\"find\"\n });\n\n const addressLocality = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, contentType: EContentType.DEFAULT, name:\"addressLocality\" }\n ],\n type:\"find\"\n });\n\n const addressRegion = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, contentType: EContentType.DEFAULT, name:\"addressRegion\" }\n ],\n type:\"find\"\n });\n\n const postalCode = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, contentType: EContentType.DEFAULT, name:\"postalCode\" }\n ],\n type:\"find\"\n });\n\n const address = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, contentType: EContentType.DEFAULT, name:\"address\" }\n ],\n type:\"find\"\n });\n\n const _languagePayload = {\n webAppNameDescription,\n contentNameDescription,\n author,\n\n webAppmetaDescription,\n contentMetaDescription,\n \n webAppMetaKeywords,\n contentMetaKeywords,\n \n twitterUserName,\n sameAs,\n\n addressLocality,\n addressRegion,\n postalCode,\n address\n }\n\n const applicationIcon = ApplicationDocumentSelector({ resources: props.siteSettingPayload?.resources, resourceType: EResourceType.LOGO_ONLY, sizeType: ESizeType.X02, type: \"find\" });\n const defaultApplicationDocument = ApplicationDocumentSelector({ resources: props.siteSettingPayload?.resources, resourceType: EResourceType.LOGO_DEFAULT, sizeType: ESizeType.X06, type: \"find\" });\n\n const contentOuterApplicationDocument = ApplicationDocumentSelector({ resources: props.contentPayload?.resources, resourceType: EResourceType.OUTER_IMAGE, type: \"find\" });\n const contentInnerApplicationDocument = ApplicationDocumentSelector({ resources: props.contentPayload?.resources, resourceType: EResourceType.INNER_IMAGE, type: \"find\" });\n const contentImage = reject([contentInnerApplicationDocument, contentOuterApplicationDocument], isEmpty)?.[0];\n\n const productOunterApplicationDocument = ApplicationDocumentSelector({ resources: props.productPayload?.variants?.[0]?.resources, resourceType: EResourceType.OUTER_IMAGE, type: \"find\" });\n const productInnerApplicationDocument = ApplicationDocumentSelector({ resources: props.productPayload?.variants?.[0]?.resources, resourceType: EResourceType.INNER_IMAGE, type: \"find\" });\n const productImageApplicationDocument = ApplicationDocumentSelector({ resources: props.productPayload?.variants?.[0]?.resources, resourceType: EResourceType.IMAGE, type: \"find\" });\n const productImage = reject([productInnerApplicationDocument, productOunterApplicationDocument, productImageApplicationDocument], isEmpty)?.[0];\n\n const _resourcePayload = {\n \n applicationIcon,\n defaultApplicationDocument,\n\n contentOuterApplicationDocument,\n contentInnerApplicationDocument,\n contentImage,\n \n productOunterApplicationDocument,\n productInnerApplicationDocument,\n productImageApplicationDocument,\n productImage\n\n }\n\n let _props = { ...props };\n\n if ( props.type === \"header\" ) {\n\n _props.enableIcon = true;\n _props.enableAuthor = true;\n _props.enableLDJSONSearch = true;\n _props.enableLDJSONOrganization = true;\n\n }\n else if ( props.type === \"home-page\" || props.type === \"content-page\" || props.type === \"showroom-page\" || props.type === \"product-page\" ) {\n\n _props.enableTitle = true;\n _props.enableDescription = true;\n _props.enableKeywords = true;\n _props.enableBase = true;\n _props.enableTwitter = true;\n _props.enableCanonical = false;\n _props.enableOpenGraph = true;\n \n if ( props.type === \"home-page\" || props.type === \"content-page\" || props.type === \"product-page\" ) {\n _props.enableCanonical = true;\n }\n\n }\n \n enableTitle( _props, _languagePayload, _resourcePayload, payload );\n enableIcon( _props, _languagePayload, _resourcePayload, payload );\n enableAuthor( _props, _languagePayload, _resourcePayload, payload );\n enableDescription( _props, _languagePayload, _resourcePayload, payload );\n enableKeywords( _props, _languagePayload, _resourcePayload, payload );\n enableBase( _props, _languagePayload, _resourcePayload, payload );\n enableTwitter( _props, _languagePayload, _resourcePayload, payload );\n enableCanonical( _props, _languagePayload, _resourcePayload, payload );\n enableOpenGraph( _props, _languagePayload, _resourcePayload, payload );\n enableGoogleSiteVerification( _props, _languagePayload, _resourcePayload, payload );\n\n enableLDJSONSearch( _props, _languagePayload, _resourcePayload, payload );\n enableLDJSONOrganization( _props, _languagePayload, _resourcePayload, payload );\n\n if ( !isEmpty(payload) && payload ) {\n\n return ({payload})\n\n }\n\n return null;\n\n}\n\nSEO.defaultProps = {\n\n enableTitle : false,\n enableIcon : false,\n enableAuthor : false,\n\n enableDescription : false,\n enableKeywords : false,\n\n enableAnalytics : false,\n\n enableBase : false,\n enableTwitter : false,\n enableCanonical : false,\n enableOpenGraph : false,\n\n enableLDJSONSearch : false,\n enableLDJSONOrganization : false,\n\n}\n\nexport default SEO;\nexport type {\n TSEO\n};\n","import React, { useEffect } from \"react\";\r\nimport { connect, ConnectedProps } from \"react-redux\"\r\n// components\r\n// actions\r\nimport CoreAction from \"core/actions/common/CoreAction\";\r\n// enums\r\nimport Text from \"components/Text\";\r\nimport { IoHomeSharp } from 'react-icons/io5';\r\nimport { Link } from \"react-router-dom\";\r\nimport { Dispatch } from \"@reduxjs/toolkit\";\r\n\r\n\r\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\r\n console.log(\"Error404.mapDispatchToProps\");\r\n\r\n const coreAction = new CoreAction(dispatch);\r\n\r\n return {\r\n\r\n _hideLoader: () => {\r\n coreAction.hideLoader()\r\n }\r\n\r\n }\r\n}\r\n\r\nconst connector = connect( null, mapDispatchToProps );\r\n\r\n/* types */\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype TError404 = {\r\n\r\n} & T;\r\n\r\n\r\n/* component */\r\nfunction Error404Loader () {\r\n\r\n return (\r\n <>\r\n )\r\n\r\n}\r\n\r\nfunction Error404 ( props: TError404 ) {\r\n console.log(\"Error404.rendered:\", props)\r\n\r\n useEffect(\r\n () => {\r\n props._hideLoader();\r\n }, []\r\n )\r\n\r\n return (\r\n

\r\n );\r\n\r\n};\r\n\r\nconst Component = React.memo(Error404, ( prevProps: TError404, nextProps: TError404 ) => {\r\n console.log(\"Error404.memo\", { prevProps, nextProps });\r\n\r\n console.log(\"Error404.doNotRender\");\r\n return true;\r\n});\r\n\r\nexport default connector(Component);\r\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\"\nimport Lodash, { isEmpty } from 'lodash';\nimport { Outlet, useParams, useLocation } from \"react-router-dom\";\n// components\nimport SEO from \"components/SEO\";\n//\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport TValidations from \"cms/types/TValidations\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport Error404 from \"components/Error404\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"WebApplicationLayout.mapStateToProps: \", state);\n\n const languageStorePayload:IClientLanguage[] = state.LanguageStore.list?.payload;\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n const siteSettingDetailError:TValidations[]|null = state.SiteSettingStore.details?.error;\n const siteSettingDetailIsLoading:boolean = state.SiteSettingStore.details?.isLoading;\n\n const error:TValidations[]|null|undefined = Lodash.reject( [siteSettingDetailError], Lodash.isEmpty )[0] || [];\n const isLoading:boolean = [siteSettingDetailIsLoading].includes(true);\n\n return {\n\n languageStorePayload,\n \n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n\n error,\n isLoading\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch:Dispatch ) {\n console.log(\"WebApplicationLayout.mapDispatchToProps\");\n\n return {\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TWebApplicationLayout = {\n \n} & T;\n\n\n/* component */\nfunction WebApplicationLayoutLoader () {\n\n return (\n <>\n )\n\n}\n\nconst WebApplicationLayout = ( props:TWebApplicationLayout ) => {\n console.log(\"WebApplicationLayout.rendered: \", props);\n\n const location = useLocation();\n const { language, category, categoryId, content, contentName, contentId } = useParams();\n \n const languageIsExists = !isEmpty(props.languageStorePayload.find((item) => item.twoLetterISOName === language));\n if ( languageIsExists ) {\n return (\n <>\n \n \n \n )\n }\n\n return \n \n\n\n};\n\n\n\nconst Component = React.memo(WebApplicationLayout, ( prevProps:TWebApplicationLayout, nextProps:TWebApplicationLayout ) => {\n console.log(\"WebApplicationLayout.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.isLoading !== nextProps.isLoading\n || prevProps.webApplicationLanguageCode !== nextProps.webApplicationLanguageCode\n )\n});\n\nexport default connector(Component);\n","import { Dispatch } from \"@reduxjs/toolkit\";\nimport _ClientMainPageItemsServiceAction from \"cms/actions/services/ClientMainPageItemsServiceAction\";\n\n\nconst screenCode = \"200\";\nclass ClientMainPageItemsServiceAction extends _ClientMainPageItemsServiceAction {\n\n constructor( dispatch: Dispatch ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ClientMainPageItemsServiceAction;\n","import { isEmpty } from 'lodash';\nimport ContainerV2 from 'components/ContainerV2';\nimport { AiOutlineArrowUp } from 'react-icons/ai';\nimport { TFooterComponent } from '../type';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\nimport { EView } from 'cms/enums/EView';\nimport SanitizeHTMLString from 'cms/utilities/SanitizeHTMLString';\n\n\nfunction BottomBarLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction BottomBar ( props:TFooterComponent ) {\n console.log(\"BottomBar.rendered\", props)\n\n const parentItem = props.payload?.find((item) => item.layouts?.filter((litem) => litem.layoutName === props.layoutName).length > 0);\n\n if ( parentItem && !isEmpty(parentItem) ) {\n\n const childItems = props.payload?.filter((item) => item.parentId === parentItem.id);\n\n const copyrightString = LanguageVersionSelector({\n languageVersions: childItems?.[0]?.languageVersions,\n filters: [\n { view: EView.META_DATA, name: \"copyrightString\" }\n ],\n type: \"find\"\n });\n const scrollToTopString = LanguageVersionSelector({\n languageVersions: childItems?.[0]?.languageVersions,\n filters: [\n { view: EView.META_DATA, name: \"scrollToTopString\" }\n ],\n type: \"find\"\n });\n\n return (\n
\n \n

\n \n

\n

\n \n \"Armador\n Powered By Armador Yazılım ve Teknoloji A.Ş\n \n

\n {/* */}\n

\n { window.scrollTo({ top: 0, left: 0, behavior: \"smooth\" }); }} >{scrollToTopString?.value}\n \n

\n\n \n
\n );\n\n }\n\n return ;\n \n \n}\n\nexport default BottomBar;\n","// types\nimport { TSocialMedia } from \"../type\";\nimport {\n IoLogoInstagram,\n IoLogoFacebook,\n IoLogoYoutube,\n IoLogoLinkedin,\n} from 'react-icons/io5';\nimport {\n FaXTwitter\n} from 'react-icons/fa6'\n\n\nfunction SocialMedia01 ( props:TSocialMedia ) {\n console.log(\"SocialMedia01: \", props);\n\n const facebook = props?.payload?.find((item) => item.name === \"facebook\");\n const x = props?.payload?.find((item) => item.name === \"x\");\n const instagram = props?.payload?.find((item) => item.name === \"instagram\");\n const linkedin = props?.payload?.find((item) => item.name === \"linkedin\");\n const youtube = props?.payload?.find((item) => item.name === \"youtube\");\n \n if ( props?.payload ) {\n return (\n
    \n { facebook &&
  • }\n { x &&
  • }\n { linkedin &&
  • }\n { instagram &&
  • }\n { youtube &&
  • }\n
\n );\n }\n \n return (\n
    \n
  • \n
  • \n
  • \n
  • \n
\n );\n\n}\n\nexport default SocialMedia01;\n","import React from \"react\";\n// types\nimport { TFooterComponent } from '../type';\nimport RMDRLink from \"components/RMDRLink\";\nimport RMDRImage from \"components/RMDRImage\";\nimport ERedirectType from \"cms/enums/ERedirectType\";\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport ESizeType from \"cms/enums/ESizeType\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport SanitizeHTMLString from \"cms/utilities/SanitizeHTMLString\";\nimport SocialMedia01 from \"components/SocialMedia/components/SocialMedia01\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n\n\nfunction CompanyIntroductionLoader () {\n\n return (\n <>\n )\n\n}\n\nconst CompanyIntroduction = ( props:TFooterComponent ) => {\n console.log(\"CompanyIntroduction.rendered\", props);\n\n if ( props.parentPayload?.id ) {\n\n const childItems = props.payload?.filter((item) => item.parentId === props.parentPayload?.id);\n\n const siteSettingsLanguageVersion = LanguageVersionSelector({\n languageVersions: childItems?.[0]?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n const aboutUsLanguageVersion = LanguageVersionSelector({\n languageVersions: childItems?.[1]?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n return (\n \n
\n \n \n \n \n\n

\n\n \n\n

\n \n ); \n\n }\n\n return \n \n}\n\nexport default CompanyIntroduction;\n","// types\nimport { TSocialMedia } from \"../type\";import {\n IoLogoInstagram,\n IoLogoFacebook,\n IoLogoYoutube,\n IoLogoLinkedin,\n} from 'react-icons/io5';\nimport {\n FaXTwitter\n} from 'react-icons/fa6'\n\n\nfunction SocialMedia02 ( props:TSocialMedia ) {\n console.log(\"SocialMedia02: \", props);\n\n const facebook = props?.payload?.find((item) => item.name === \"facebook\");\n const x = props?.payload?.find((item) => item.name === \"x\");\n const instagram = props?.payload?.find((item) => item.name === \"instagram\");\n const linkedin = props?.payload?.find((item) => item.name === \"linkedin\");\n const youtube = props?.payload?.find((item) => item.name === \"youtube\");\n\n if ( props?.payload ) {\n return (\n \n );\n }\n\n return (\n
    \n
  • \n \n
    \n
  • \n
  • \n \n
    \n
  • \n
  • \n \n
    \n
  • \n
  • \n \n
    \n
  • \n
\n );\n \n}\n\nexport default SocialMedia02;\n","import React from \"react\";\n// types\nimport { TFooterComponent } from '../type';\nimport RMDRLink from \"components/RMDRLink\";\nimport RMDRImage from \"components/RMDRImage\";\nimport ERedirectType from \"cms/enums/ERedirectType\";\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport ESizeType from \"cms/enums/ESizeType\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport SanitizeHTMLString from \"cms/utilities/SanitizeHTMLString\";\nimport SocialMedia01 from \"components/SocialMedia/components/SocialMedia01\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n\n\nfunction ContactLoader ( props:TFooterComponent ) {\n\n return (\n
    \n
  • \n \n
    \n
  • \n
  • \n \n
    \n
  • \n
  • \n \n
    \n
  • \n
  • \n \n
    \n
  • \n
\n )\n\n}\n\nconst Contact = ( props:TFooterComponent ) => {\n console.log(\"Contact.rendered\", props);\n\n if ( props.parentPayload?.id ) {\n\n const childItem = props.payload?.find((cItem) => cItem.parentId === props.parentPayload?.id);\n \n const languageVersion = LanguageVersionSelector({\n languageVersions: childItem?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n const redirectUrl = LanguageVersionSelector({\n languageVersions: childItem?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectURL\" }\n ],\n type: \"find\"\n });\n //\n const phone = LanguageVersionSelector({\n languageVersions: childItem?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"phone\" }\n ],\n type: \"find\"\n });\n const email = LanguageVersionSelector({\n languageVersions: childItem?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"email\" }\n ],\n type: \"find\"\n });\n const callUsString = LanguageVersionSelector({\n languageVersions: childItem?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"callUsString\" }\n ],\n type: \"find\"\n });\n\n\n if ( props?.payload ) {\n return (\n
    \n
  • \n \n
  • \n
  • \n {email?.value}\n
  • \n
  • \n {callUsString?.value}{\": \"}{phone?.value}\n
  • \n
\n );\n }\n\n }\n\n return \n \n}\n\nexport default Contact;\n","import React from 'react';\n// components\nimport RMDRLink from \"components/RMDRLink\";\n// enums\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\n//\nimport { TFooterComponent } from '../type';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\n\n\nfunction ListContents01 ( props:TFooterComponent ) {\n console.log(\"ListContents01.rendered: \", props);\n\n if ( props.parentPayload?.id ) {\n\n const childItems = props.payload?.filter((cItem) => cItem.parentId === props.parentPayload?.id);\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: props.parentPayload.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n return (\n <>\n

\n {parentLanguageVersion?.name}\n

\n
    \n {\n childItems?.map((cItem) => {\n const languageVersion = LanguageVersionSelector({\n languageVersions: cItem?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n const redirectUrl = LanguageVersionSelector({\n languageVersions: cItem?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectURL\" }\n ],\n type: \"find\"\n });\n\n return (\n
  • \n \n
  • \n )\n })\n }\n
\n \n );\n\n }\n\n}\n\nexport default ListContents01;\n","import React from \"react\";\nimport { isEmpty } from \"lodash\";\n// components\nimport CompanyIntroduction from \"./CompanyIntroduction\";\n// import QuickLinks from \"./QuickLinks\";\n// types\nimport { TFooterComponent } from '../type';\nimport { ELayoutType } from \"cms/enums/ELayoutType\";\nimport ContainerV2 from 'components/ContainerV2'\nimport SocialMedia02 from \"components/SocialMedia/components/SocialMedia02\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport Contact from \"./Contact\";\nimport ListContents01 from \"./ListContents01\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n\n\nfunction MiddleBarLoader () {\n\n return (\n <>\n )\n\n}\n\nconst MiddleBar = ( props:TFooterComponent ) => {\n console.log(\"MiddleBar.rendered\", props);\n\n const parentItem = props.payload?.find((item) => item.layouts?.filter((litem) => litem.layoutName === props.layoutName).length > 0);\n console.log(\"MiddleBar.parentItem\", parentItem);\n\n if ( parentItem && !isEmpty(parentItem) ) {\n\n const childItems = props.payload?.filter((item) => item.parentId === parentItem.id);\n console.log(\"MiddleBar.childItems\", childItems);\n\n return (\n \n
\n\n {\n childItems?.map((item) => {\n \n const layout = item.layouts.find((item) => item.layoutType === ELayoutType.MAIN_PAGE);\n const parentLanguageVersion = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n if ( layout?.layoutName === \"MNPG_010\" ) {\n return (\n \n )\n }\n else if ( layout?.layoutName === \"MNPG_011\" ) {\n const childItem = props.payload?.find((cItem) => cItem.parentId === item.id);\n\n return (\n
\n

\n {parentLanguageVersion?.name}\n

\n \n
\n )\n }\n else if ( layout?.layoutName === \"MNPG_012\" ) {\n return (\n
\n \n
\n )\n }\n else if ( layout?.layoutName === \"MNPG_013\" ) {\n return (\n
\n

\n {parentLanguageVersion?.name}\n

\n \n
\n )\n }\n\n return null;\n\n })\n }\n
\n
\n )\n }\n\n return ;\n\n}\n\nexport default MiddleBar;\n","import React, { useEffect } from 'react';\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport Lodash from \"lodash\";\r\nimport { Dispatch } from '@reduxjs/toolkit';\r\n// actions\r\nimport ClientMainPageItemsServiceAction from \"cms/actions/components/Footer/ClientMainPageItemsServiceAction\";\r\n// interfaces\r\nimport IOdataQueryOptions from 'core/interfaces/IOdataQueryOptions';\r\n// enums\r\nimport { EContentStatus } from 'cms/enums/EContentStatus';\r\nimport IClientLanguage from 'core/interfaces/IClientLanguage';\r\nimport IClientMainPageItemList from 'cms/interfaces/IClientMainPageItemList';\r\nimport TValidations from 'cms/types/TValidations';\r\nimport BottomBar from './components/BottomBar';\r\nimport MiddleBar from './components/MiddleBar';\r\nimport MainPageLayout from 'components/MainPageLayout';\r\nimport { ELayoutType } from 'cms/enums/ELayoutType';\r\nimport IClientSiteSettingDetail from 'cms/interfaces/IClientSiteSettingDetail';\r\n\r\n\r\nfunction mapStateToProps ( state: any ) {\r\n console.log(\"Footer.mapStateToProps: \", state);\r\n\r\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\r\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\r\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode.payload;\r\n\r\n const mainPageItemsListPayload:IClientMainPageItemList[]|null = state.FooterStore.ClientMainPageItemsStore.list?.payload;\r\n const mainPageItemsListError:TValidations[]|null = state.FooterStore.ClientMainPageItemsStore.list?.error;\r\n const mainPageItemsListIsLoading:boolean = state.FooterStore.ClientMainPageItemsStore.list?.isLoading;\r\n\r\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\r\n\r\n return {\r\n\r\n webApplicationLanguage,\r\n webApplicationLanguageCode,\r\n webApplicationLanguageISOCode,\r\n\r\n mainPageItemsListPayload,\r\n mainPageItemsListError,\r\n mainPageItemsListIsLoading,\r\n\r\n siteSettingDetailPayload\r\n\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\r\n console.log(\"Footer.mapDispatchToProps\");\r\n\r\n const clientMainPageItemsServiceAction = new ClientMainPageItemsServiceAction(dispatch);\r\n\r\n return {\r\n\r\n // list\r\n _listClientMainPageItems: ( mapLayoutName:string, webApplicationLanguageCode:string ) => {\r\n let queryOptions:IOdataQueryOptions = {\r\n filter: [`mapLayoutName eq '${mapLayoutName}'`, \"and\", `status eq ${EContentStatus.ACTIVE}`],\r\n orderBy: [\"order asc\"],\r\n top: 1000\r\n };\r\n\r\n clientMainPageItemsServiceAction.list({ servicePayload: { queryOptions, language: webApplicationLanguageCode } });\r\n }\r\n }\r\n\r\n}\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\n\r\n\r\n/* types */\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype TFooter = {\r\n\r\n mapLayoutName:string|null;\r\n\r\n} & T;\r\n\r\n\r\nfunction Footer ( props:TFooter ) {\r\n console.log(\"Footer.rendered: \", props);\r\n\r\n useEffect(\r\n () => {\r\n if ( !Lodash.isEmpty(props.mapLayoutName) && props.mapLayoutName ) {\r\n props._listClientMainPageItems( props.mapLayoutName, props.webApplicationLanguageCode );\r\n }\r\n }, []\r\n )\r\n\r\n const parentItems = props.mainPageItemsListPayload?.filter((item) => item.parentId === null);\r\n\r\n return (\r\n
\r\n {\r\n parentItems?.map((item, index:number) => {\r\n const layout = item.layouts.find((item) => item.layoutType === ELayoutType.MAIN_PAGE);\r\n\r\n if ( layout ) {\r\n if ( layout?.layoutName === \"MNPG_009\" ) {\r\n return ;\r\n }\r\n else if ( layout?.layoutName === \"MNPG_014\" ) {\r\n return ;\r\n }\r\n else {\r\n const Layout = MainPageLayout[layout.layoutName];\r\n const childs = props.mainPageItemsListPayload?.filter((cItem:IClientMainPageItemList) => cItem.parentId === item.id);\r\n return \r\n }\r\n }\r\n return null;\r\n })\r\n }\r\n
\r\n )\r\n}\r\n\r\nconst Component = React.memo(Footer, ( prevProps:TFooter, nextProps:TFooter ) => {\r\n console.log(\"MainPageItem.memo\", { prevProps, nextProps });\r\n return !(prevProps.mainPageItemsListIsLoading !== nextProps.mainPageItemsListIsLoading );\r\n});\r\n\r\nexport default connector(Component);\r\n","import React, { useState } from \"react\";\nimport cn from \"classnames\";\n// components\nimport RMDRLink from \"./RMDRLink\";\nimport RMDRImage from \"./RMDRImage\";\n// interfaces\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\n// enums\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport ESizeType from \"cms/enums/ESizeType\";\nimport ERedirectType from \"cms/enums/ERedirectType\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\";\n\n\n/* types */\ntype TLogo = {\n \n siteSettingPayload:IClientSiteSettingDetail;\n webApplicationLanguageISOCode:string;\n className?:string;\n\n};\n\n\n/* component */\nfunction LogoLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction Logo ( props: TLogo ) {\n\n const languageVersion = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n return (\n \n \n \n\n );\n\n};\n\nexport default Logo;\n","const SearchIcon = ({\n\tcolor = \"currentColor\",\n\twidth = \"17px\",\n\theight = \"18px\",\n\tclassName = \"md:w-4 xl:w-5 md:h-4 xl:h-5\",\n}) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default SearchIcon;\n","import { Listbox, ListboxButton, ListboxOption, ListboxOptions } from '@headlessui/react';\nimport { HiOutlineSelector, HiCheck } from 'react-icons/hi';\nimport cn from \"classnames\";\n\n\ntype TListBox = {\n\n title: string;\n value: any;\n options: any[];\n\n disabled:boolean;\n selectorKey?: any;\n\n onChange: ( value:any ) => void;\n className?:string;\n listOptionClassName?:string;\n\n}\n\n\nfunction ListBox ( props:TListBox ) {\n console.log(\"ListBox: \", props);\n\n return (\n \n \n
\n \n {props.value?.name}\n \n \n \n \n \n \n {\n props.options?.map((option, personIdx) => (\n \n {\n ({ focus, selected }) => (\n <>\n \n {option?.name}\n \n {\n selected ? (\n \n \n \n ) : null\n }\n \n )\n }\n \n ))\n }\n \n
\n
\n );\n}\n\nListBox.defaultProps = {\n\n disabled: false,\n\n}\n\nexport default ListBox;\n","import { useState, Fragment, useEffect } from 'react';\nimport { Listbox, Transition } from '@headlessui/react';\nimport { HiOutlineSelector } from 'react-icons/hi';\nimport IClientLanguage from 'core/interfaces/IClientLanguage';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport ListBox from './ListBox';\n\n\n/* types */\ntype TLanguageSwitcher = {\n \n languagePayload:IClientLanguage[];\n webApplicationLanguageISOCode:string;\n showLoader: () => void;\n\n};\n\n\n/* component */\nfunction LanguageSwitcherLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction LanguageSwitcher ( props:TLanguageSwitcher ) {\n \n const navigate = useNavigate();\n const location = useLocation();\n\n const [selectedItem, setSelectedItem] = useState(undefined);\n\n useEffect(\n () => {\n const isoCode = props.languagePayload.find((item) => item.twoLetterISOName === props.webApplicationLanguageISOCode);\n setSelectedItem(isoCode);\n }, [ props.webApplicationLanguageISOCode ]\n )\n\n function reloadPage( webApplicationLanguageISOCode:string ) {\n\n try {\n let pathnameArray = location.pathname?.split(\"/\")?.filter((item:any) => item);\n let newPathname:string = \"\"; \n \n if ( pathnameArray.length > 0 ) {\n pathnameArray[0] = webApplicationLanguageISOCode;\n newPathname = `/${pathnameArray.join(\"/\")}`;\n }\n\n navigate(newPathname, { replace: true });\n window.location.reload(); \n } catch( ex ) {\n console.error(ex);\n }\n\n }\n\n function handleItemClick ( values:IClientLanguage|undefined ) {\n\n if ( values ) {\n if (props.showLoader) props.showLoader();\n setSelectedItem(values);\n reloadPage( values.twoLetterISOName );\n }\n\n }\n\n return (\n\n \n\n )\n\n}\n\nexport default LanguageSwitcher;\n","import React from 'react';\nimport RMDRLink from 'components/RMDRLink';\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EContentType } from 'cms/enums/EContentType';\nimport TMenu from 'cms/types/TMenu';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\n\n\ntype TMegaMenu = {\n\n payload?:TMenu[];\n webApplicationLanguageISOCode:string;\n\n onClick?: (event:any, contentId?:string) => void;\n\n};\n\nfunction MegaMenu ( props:TMegaMenu ) {\n console.log(\"MegaMenu.rendered: \", props);\n\n return (\n
\n\n {\n props.payload?.map((item) => {\n const languageVersion = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n const redirectUrl = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectUrl\" }\n ],\n type: \"find\"\n });\n\n const navigationURL = `/${props.webApplicationLanguageISOCode}/shop?c=${item.hierarchyId}`;\n\n return (\n \n
  • \n { if( props.onClick ) props.onClick(event, item.id) }}\n />\n {/* \n {t[item.label as keyof typeof t]}\n */}\n
  • \n {\n item?.items?.map((cItem) => {\n const cLanguageVersion = LanguageVersionSelector({\n languageVersions: cItem.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n const cRedirectUrl = LanguageVersionSelector({\n languageVersions: cItem.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectUrl\" }\n ],\n type: \"find\"\n });\n\n const cNavigationURL = `/${props.webApplicationLanguageISOCode}/shop?c=${cItem.hierarchyId}`;\n\n return (\n \n { if( props.onClick ) props.onClick(event, item.id) }}\n />\n {\", \"}\n \n )}\n )\n }\n \n )}\n )\n }\n\n
    \n );\n};\n\nexport default MegaMenu;\n","import MegaMenu from './MegaMenu';\nimport cn from 'classnames';\nimport IClientCatalogCategoryList from 'ecommerce/interfaces/IClientCatalogCategoryList';\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EContentType } from 'cms/enums/EContentType';\nimport RMDRLink from 'components/RMDRLink';\nimport ERedirectType from 'cms/enums/ERedirectType';\nimport { isEmpty } from 'lodash';\nimport TMenu from 'cms/types/TMenu';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\n\n\ntype TListMenu = {\n\n dept:number;\n payload:TMenu;\n hasSubMenu?:TMenu[];\n hasMegaMenu?:TMenu[];\n hasBrands?:TMenu[];\n hasBanners?:TMenu[];\n menuName:string;\n key:string;\n menuIndex:number;\n webApplicationLanguageISOCode:string;\n\n onClick?: (event:any, contentId?:string) => void;\n}\n\ntype TSubMenu = {\n\n dept:number;\n payload:IClientCatalogCategoryList;\n menuIndex:number;\n\n}\n\n\nfunction ListMenu ( props:TListMenu ) {\n console.log(\"ListMenu.rendered: \", props);\n\n const languageVersion = LanguageVersionSelector({\n languageVersions: props.payload.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n const redirectUrl = LanguageVersionSelector({\n languageVersions: props.payload.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectURL\" }\n ],\n type: \"find\"\n });\n\n const navigationURL = `/${props.webApplicationLanguageISOCode}/shop?c=${props.payload.hierarchyId}`;\n\n return (\n
  • \n { if( props.onClick ) props.onClick(event, props.payload.id) }}\n >\n {/* {\n props.data.icon && \n (\n {props.data.icon}\n )\n } */}\n {languageVersion?.name}\n {/* {\n props.data.subMenu && \n (\n \n \n \n )\n } */}\n \n\n {/* {\n props.hasSubMenu && (\n \n )\n } */}\n\n {\n (!isEmpty(props.hasMegaMenu) || !isEmpty(props.hasBrands) || !isEmpty(props.hasBanners)) && (\n
    \n
    \n \n
    \n {/*
    \n
    \n {\n props.hasBrands.map((brand: any) => (\n \n \n \n ))\n }\n
    \n
    \n {\n props.hasBanners.map((banner: any) => (\n \n {banner.label}\n \n ))\n }\n
    \n
    */}\n
    \n )\n }\n
  • \n );\n};\n\n// function SubMenu ( props:TSubMenu ) {\n// const dept = props.dept + 1;\n\n// return (\n//
      \n// {\n// props.payload?.map((menu, index) => {\n// const menuName: string = `sidebar-submenu-${dept}-${props.menuIndex}-${index}`;\n\n// return (\n// \n// );\n// })\n// }\n//
    \n// );\n// };\n\n\nexport default ListMenu;\n","// action \nimport OdataReadOnlyActionBase from \"core/actions/OdataReadOnlyActionBase\";\n// service\nimport ClientMenuItemService from \"cms/services/ClientMenuItemService\";\n\n\nclass ClientMenuItemServiceAction extends OdataReadOnlyActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, ClientMenuItemService, screenCode);\n }\n\n}\n\nexport default ClientMenuItemServiceAction;\n","import _ClientMenuItemServiceAction from \"cms/actions/services/ClientMenuItemServiceAction\";\n\n\nconst screenCode = \"201\";\nclass ClientMenuItemServiceAction extends _ClientMenuItemServiceAction {\n\n constructor( dispatch:any ) {\n super( dispatch, screenCode);\n }\n\n}\n\nexport default ClientMenuItemServiceAction;\n","import _ContentMetricsServiceAction from \"core/actions/services/metrics/ContentMetricsServiceAction\";\n\n\nconst screenCode = \"201\";\nclass ContentMetricsServiceAction extends _ContentMetricsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ContentMetricsServiceAction;\n","import { isEmpty } from 'lodash';\nimport IClientMenuItemList from \"cms/interfaces/IClientMenuItemList\";\nimport TMenu from 'cms/types/TMenu';\nimport IClientCatalogCategoryList from 'ecommerce/interfaces/IClientCatalogCategoryList';\n\n\nfunction MenuComposer ( value:IClientMenuItemList[]|null, parentMenuItems:IClientMenuItemList[]|undefined|null, catalogCategoryPayload?:IClientCatalogCategoryList[]) {\n\n let _value:TMenu[] = [];\n\n if ( value && parentMenuItems && !isEmpty(value) && !isEmpty(parentMenuItems) ) {\n\n for ( let parentMenuItem of parentMenuItems ) {\n \n let hierarchyId = undefined;\n if ( !isEmpty(catalogCategoryPayload) ) {\n hierarchyId = catalogCategoryPayload?.find((x) => x.id === parentMenuItem.contentId)?.hierarchyId;\n }\n\n let _parentMenuItem:TMenu = {...parentMenuItem, hierarchyId};\n \n let childMenuItems = value.filter((item:any) => item.parentId === parentMenuItem.id);\n if ( childMenuItems.length > 0 ) {\n let response = MenuComposer(value, childMenuItems, catalogCategoryPayload);\n if ( response.length > 0 ) {\n _value.push({ ..._parentMenuItem, items: response });\n }\n }\n else {\n _value.push(_parentMenuItem);\n }\n }\n\n }\n\n return _value;\n\n}\n\nexport default MenuComposer;\n","import React, { useEffect, useState } from 'react';\nimport { Dispatch } from '@reduxjs/toolkit';\nimport { connect, ConnectedProps } from 'react-redux';\n// components\nimport ListMenu from './ListMenu';\n// interfaces\nimport IClientLanguage from 'core/interfaces/IClientLanguage';\nimport IClientSiteSettingDetail from 'cms/interfaces/IClientSiteSettingDetail';\n// actions\nimport ClientMenuItemServiceAction from \"cms/actions/components/Header/ClientMenuItemServiceAction\";\nimport ContentMetricsServiceAction from \"cms/actions/components/Header/ContentMetricsServiceAction\";\n// utilities\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\n// enums\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\n// style\nimport { HiMenu } from 'react-icons/hi';\n// types\nimport TValidations from 'cms/types/TValidations';\nimport { EContentStatus } from 'cms/enums/EContentStatus';\nimport IClientMenuItemList from 'cms/interfaces/IClientMenuItemList';\nimport IOdataQueryOptions from 'core/interfaces/IOdataQueryOptions';\nimport { isEmpty } from 'lodash';\nimport MenuComposer from 'cms/utilities/MenuComposer';\nimport TMenu from 'cms/types/TMenu';\nimport ILanguageVersionDetail from 'cms/interfaces/ILanguageVersionDetail';\nimport IClientCatalogCategoryList from 'ecommerce/interfaces/IClientCatalogCategoryList';\nimport { EContentMetricsType } from 'core/enums/EContentMetricsType';\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"CategoryMenu.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const clientMenuItemGet:IClientMenuItemList[]|null = state.HeaderStore.ClientMenuItemStore.get?.[\"MNGRP002\"];\n const clientMenuItemGetError:TValidations[]|null = state.HeaderStore.ClientMenuItemStore.get?.error;\n const clientMenuItemGetIsLoading:boolean = state.HeaderStore.ClientMenuItemStore.get?.isLoading;\n\n const catalogCategoryListPayload:IClientCatalogCategoryList[] = state.ClientCatalogCategoryStore.list.payload;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n\n clientMenuItemGet,\n clientMenuItemGetError,\n clientMenuItemGetIsLoading,\n\n catalogCategoryListPayload\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch:Dispatch ) {\n console.log(\"CategoryMenu.mapDispatchToProps\");\n\n const clientMenuItemServiceAction = new ClientMenuItemServiceAction(dispatch);\n const contentMetricsServiceAction = new ContentMetricsServiceAction(dispatch);\n\n return {\n\n _getClientMenuItems: ( webApplicationLanguageCode:string, mapLayoutName:string, destinationName:string ) => {\n let queryOptions:IOdataQueryOptions = {\n filter: [`mapLayoutName eq '${mapLayoutName}'`, \"and\", `status eq ${EContentStatus.ACTIVE}`],\n orderBy: [\"order asc\"],\n top: 1000\n };\n\n clientMenuItemServiceAction.get({ \n servicePayload: { queryOptions, language: webApplicationLanguageCode },\n args: { storeMapOptions: [{ destinationName, sourceName: \"value\" }] } \n });\n },\n\n _viewEvent: ( contentId:string, webApplicationLanguageCode:string ) => {\n contentMetricsServiceAction.post({ \n servicePayload: { \n body: {\n contentId: contentId,\n metricType: EContentMetricsType.VIEV\n }, \n language: webApplicationLanguageCode \n } \n });\n },\n\n _clean: () => {\n\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\ntype TCategoryMenu = {\n\n} & T;\n\n\n/* component */\nfunction CategoryMenuLoader () {\n\n return (\n <>\n )\n\n}\n\n\nfunction CategoryMenu ( props:TCategoryMenu ) {\n console.log(\"CategoryMenu.rendered:\", props);\n\n const allCategories = LanguageVersionSelector({\n languageVersions: props.siteSettingDetailPayload.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"allCategories\" }\n ],\n type: \"find\"\n });\n\n const [ navigation, setNavigation ] = useState(null);\n\n useEffect(\n () => {\n if ( !isEmpty(props.webApplicationLanguageCode)) {\n props._getClientMenuItems(props.webApplicationLanguageCode, \"MNGRP_002\", \"MNGRP002\");\n }\n }, [ props.webApplicationLanguageCode ]\n )\n\n useEffect(\n () => {\n\n if ( !isEmpty(props.clientMenuItemGet) ) {\n let parentMenuItems = props.clientMenuItemGet?.filter((item:any) => item.parentId === null);\n let navigation = MenuComposer(props.clientMenuItemGet, parentMenuItems, props.catalogCategoryListPayload);\n console.log(\"navigation: \", navigation);\n setNavigation(navigation);\n }\n\n }, [ props.clientMenuItemGet ]\n )\n\n return (\n
    \n
    \n \n {allCategories?.value}\n
    \n {\n navigation && Array.isArray(navigation) && (\n
    \n
      \n {\n navigation.map((item, index) => {\n const dept: number = 1;\n const menuName: string = `sidebar-menu-${dept}-${index}`;\n\n return (\n { if (contentId) props._viewEvent(contentId, props.webApplicationLanguageCode) } }\n />\n );\n })\n }\n
    \n
    \n )\n }\n
    \n );\n};\n\nconst Component = React.memo(CategoryMenu, ( prevProps: TCategoryMenu, nextProps: TCategoryMenu ) => {\n console.log(\"CategoryMenu.memo\", { prevProps, nextProps });\n return !(\n prevProps.clientMenuItemGet !== nextProps.clientMenuItemGet\n );\n});\n\nexport default connector(Component);\n","import { CSSProperties, JSXElementConstructor, ReactNode } from \"react\";\nimport { isEmpty, isNaN, isNumber, reject } from \"lodash\";\nimport { NavLink } from \"react-router-dom\";\n// enums\nimport ERedirectType from 'cms/enums/ERedirectType';\n\n\ntype Variant = 'a' | 'div';\n\ntype TRMDRNavLink = {\n\n text?: string|null;\n title?: string|null;\n\n hasNavigationDestination?: boolean|null;\n hasActive?: boolean|null;\n isShowAlways?: boolean|null;\n\n navigationURL?: string|null;\n\n redirectType?: ERedirectType;\n redirectUrl?: string|null;\n\n className?: string;\n activeClassName?: string;\n style?: CSSProperties;\n\n children?: ReactNode;\n\n onClick?: (event:any) => void;\n\n variant?: Variant;\n}\n\nfunction RMDRNavLink ( props:Readonly ) {\n \n const _target = ((props.redirectType === ERedirectType.STAY_CURRENT_PAGE || !isNumber(props.redirectType)) && \"_self\") || (props.redirectType === ERedirectType.REDIRECT_NEW_TAB && \"_blank\") || \"\";\n\n if ( props.hasNavigationDestination && !isEmpty(props.redirectUrl) && props.redirectUrl ) {\n\n return \n { reject( [props.text, props.children, props.redirectUrl], isEmpty )?.[0] }\n \n\n }\n\n if ( props.hasNavigationDestination && !isEmpty(props.navigationURL) && props.navigationURL ) {\n\n return `${props.className} ${isActive||props.hasActive?props.activeClassName:\"\"}`} \n style={props.style}\n to={props.navigationURL}\n target={_target}\n onClick={props.onClick}\n title={props.title||\"\"}\n >\n { reject( [props.text, props.children, props.navigationURL], isEmpty )?.[0] }\n \n\n }\n\n if ( !isEmpty(props.onClick) ) {\n \n return `${props.className} ${isActive||props.hasActive?props.activeClassName:\"\"}`} \n style={props.style}\n to={\"#\"}\n onClick={props.onClick}\n title={props.title||\"\"}\n >\n { reject( [props.text, props.children], isEmpty )?.[0] }\n \n\n }\n\n if ( props.isShowAlways ) {\n\n const componentsMap: {\n [P in Variant]: React.ComponentType | string;\n } = {\n a: 'a',\n div: 'div'\n };\n \n const Component: JSXElementConstructor | React.ReactElement | React.ComponentType | string = componentsMap![props.variant!];\n\n return \n { reject( [props.text, props.redirectUrl, props.children], isEmpty )?.[0] }\n ;\n \n }\n \n return null;\n\n}\n\nRMDRNavLink.defaultProps = {\n\n hasNavigationDestination: false,\n hasActive: false,\n isShowAlways: false,\n className : \"\",\n activeClassName : \"\",\n variant: \"a\"\n\n};\n\nexport default RMDRNavLink;\nexport type {\n TRMDRNavLink\n};\n","import React, { useEffect, useState } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport { connect, ConnectedProps } from \"react-redux\";\n// components\nimport MegaMenu from './MegaMenu';\nimport ListMenu from './ListMenu';\nimport RMDRNavLink from \"../../RMDRNavLink\";\n// types\nimport TValidations from \"cms/types/TValidations\";\nimport TMenu from \"cms/types/TMenu\";\n// actions\nimport ClientMenuItemServiceAction from \"cms/actions/components/Header/ClientMenuItemServiceAction\";\nimport ContentMetricsServiceAction from \"cms/actions/components/Header/ContentMetricsServiceAction\";\n// interfaces\nimport IOdataQueryOptions from \"core/interfaces/IOdataQueryOptions\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientMenuItemList from 'cms/interfaces/IClientMenuItemList';\n// enums\nimport { EContentStatus } from \"cms/enums/EContentStatus\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\n// utilities\nimport MenuComposer from \"cms/utilities/MenuComposer\";\n// style\nimport { FaChevronDown } from 'react-icons/fa';\nimport ApplicationDocumentSelector from \"cms/utilities/ApplicationDocumentSelector\";\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport CoreDefault from \"core/Defaults\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport IApplicationDocument from \"cms/interfaces/IApplicationDocument\";\nimport { EContentMetricsType } from \"core/enums/EContentMetricsType\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"HeaderMenu.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const clientMenuItemGet:IClientMenuItemList[]|null = state.HeaderStore.ClientMenuItemStore.get?.[\"MNGRP001\"];\n const clientMenuItemGetError:TValidations[]|null = state.HeaderStore.ClientMenuItemStore.get?.error;\n const clientMenuItemGetIsLoading:boolean = state.HeaderStore.ClientMenuItemStore.get?.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n clientMenuItemGet,\n clientMenuItemGetError,\n clientMenuItemGetIsLoading\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"HeaderMenu.mapDispatchToProps\");\n\n const clientMenuItemServiceAction = new ClientMenuItemServiceAction(dispatch);\n const contentMetricsServiceAction = new ContentMetricsServiceAction(dispatch);\n\n return {\n \n _viewEvent: ( contentId:string, webApplicationLanguageCode:string ) => {\n contentMetricsServiceAction.post({ \n servicePayload: { \n body: {\n contentId: contentId,\n metricType: EContentMetricsType.VIEV\n }, \n language: webApplicationLanguageCode \n } \n });\n },\n\n _getClientMenuItems: ( webApplicationLanguageCode:string, mapLayoutName:string, destinationName:string ) => {\n let queryOptions:IOdataQueryOptions = {\n filter: [`mapLayoutName eq '${mapLayoutName}'`, \"and\", `status eq ${EContentStatus.ACTIVE}`],\n orderBy: [\"order asc\"],\n top: 1000\n };\n\n clientMenuItemServiceAction.get({ \n servicePayload: { queryOptions, language: webApplicationLanguageCode },\n args: { storeMapOptions: [{ destinationName, sourceName: \"value\" }] } \n });\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\ntype TMenuProps = {\n\n} & T;\n\n\n/* component */\nfunction HeaderMenuLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction HeaderMenu ( props:TMenuProps ) {\n\n const [ navigation, setNavigation ] = useState(null);\n\n useEffect(\n () => {\n if ( !isEmpty(props.webApplicationLanguageCode)) {\n props._getClientMenuItems(props.webApplicationLanguageCode, \"MNGRP_001\", \"MNGRP001\");\n }\n }, [ props.webApplicationLanguageCode ]\n )\n\n useEffect(\n () => {\n\n if ( !isEmpty(props.clientMenuItemGet) ) {\n let parentMenuItems = props.clientMenuItemGet?.filter((item:any) => item.parentId === null);\n let navigation = MenuComposer(props.clientMenuItemGet, parentMenuItems);\n setNavigation(navigation);\n }\n\n }, [ props.clientMenuItemGet ]\n )\n\n\n return (\n \n );\n\n};\n\nconst Component = React.memo(HeaderMenu, ( prevProps:TMenuProps, nextProps:TMenuProps ) => {\n console.log(\"HeaderMenu.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.clientMenuItemGet !== nextProps.clientMenuItemGet\n );\n});\n\nexport default connector(Component);\n","import ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n// \nimport { IoCall } from 'react-icons/io5'\n\n\n/* types */\ntype TPhoneNumberBox = {\n\n payload?: ILanguageVersionList[];\n\n}\n\nfunction PhoneNumberBox ( props:TPhoneNumberBox ) {\n console.log(\"PhoneNumberBox: \", props);\n\n const phoneNUmber = props?.payload?.find((item) => item.name === \"phone\");\n \n if ( phoneNUmber ) {\n return (\n
    \n {phoneNUmber.value}\n
    \n );\n }\n \n return (\n
    \n
    \n
    \n
    \n );\n\n}\n\nexport default PhoneNumberBox;\n","import ActionCore from 'core/actions/ActionCore';\n\n\nconst screenCode = \"CMS\";\nclass CMSAction extends ActionCore {\n\n constructor( dispatch:any ) {\n super( dispatch, \"\", screenCode);\n\n this.serviceCode = \"Core\";\n }\n\n // sidebar\n openMobileMenu () {\n this.fetching(\"MM\")\n }\n\n closeMobileMenu () {\n this.clean(\"MM\");\n }\n\n // mobile search\n openMobileSearch () {\n this.fetching(\"MS\")\n }\n\n closeMobileSearch () {\n this.clean(\"MS\");\n }\n\n}\n\nexport default CMSAction;\n","import React, { useEffect } from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport { connect, ConnectedProps } from \"react-redux\";\n// components\nimport RMDRNavLink from \"../../RMDRNavLink\";\n// types\nimport TValidations from \"cms/types/TValidations\";\n// actions\nimport ClientMenuItemServiceAction from \"cms/actions/components/Header/ClientMenuItemServiceAction\";\n// interfaces\nimport IOdataQueryOptions from \"core/interfaces/IOdataQueryOptions\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientMenuItemList from 'cms/interfaces/IClientMenuItemList';\n// enums\nimport { EContentStatus } from \"cms/enums/EContentStatus\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"RightMenu.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const clientMenuItemGet:IClientMenuItemList[]|null = state.HeaderStore.ClientMenuItemStore.get?.[\"MNGRP003\"];\n const clientMenuItemGetError:TValidations[]|null = state.HeaderStore.ClientMenuItemStore.get?.error;\n const clientMenuItemGetIsLoading:boolean = state.HeaderStore.ClientMenuItemStore.get?.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n clientMenuItemGet,\n clientMenuItemGetError,\n clientMenuItemGetIsLoading\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"RightMenu.mapDispatchToProps\");\n\n const clientMenuItemServiceAction = new ClientMenuItemServiceAction(dispatch);\n\n return {\n \n _getClientMenuItems: ( webApplicationLanguageCode:string, mapLayoutName:string, destinationName:string ) => {\n let queryOptions:IOdataQueryOptions = {\n filter: [`mapLayoutName eq '${mapLayoutName}'`, \"and\", `status eq ${EContentStatus.ACTIVE}`],\n orderBy: [\"order asc\"],\n top: 1000\n };\n\n clientMenuItemServiceAction.get({ \n servicePayload: { queryOptions, language: webApplicationLanguageCode },\n args: { storeMapOptions: [{ destinationName, sourceName: \"value\" }] } \n });\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\ntype TMenuProps = {\n\n} & T;\n\n\n/* component */\nfunction RightMenuLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction RightMenu ( props:TMenuProps ) {\n console.log(\"RightMenu.rendered: \", props);\n\n useEffect(\n () => {\n if ( !isEmpty(props.webApplicationLanguageCode)) {\n props._getClientMenuItems(props.webApplicationLanguageCode, \"MNGRP_003\", \"MNGRP003\");\n }\n }, [ props.webApplicationLanguageCode ]\n )\n\n if ( !isEmpty(props.clientMenuItemGet) && props.clientMenuItemGet ) {\n \n const languageVersion = LanguageVersionSelector({\n languageVersions: props.clientMenuItemGet[0].languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n const redirectUrl = LanguageVersionSelector({\n languageVersions: props.clientMenuItemGet[0].languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectUrl\" }\n ],\n type: \"find\"\n });\n\n return (\n \n );\n }\n\n};\n\nconst Component = React.memo(RightMenu, ( prevProps:TMenuProps, nextProps:TMenuProps ) => {\n console.log(\"RightMenu.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.clientMenuItemGet !== nextProps.clientMenuItemGet\n );\n});\n\nexport default connector(Component);\n","import React, { useEffect } from 'react'\r\nimport { connect, ConnectedProps } from \"react-redux\"\r\nimport { isEmpty } from \"lodash\";\r\nimport { Dispatch } from '@reduxjs/toolkit';\r\nimport { useNavigate, useSearchParams } from 'react-router-dom';\r\n// components\r\nimport Logo from 'components/Logo';\r\nimport SearchIcon from 'components/Icons/search-icon';\r\nimport LanguageSwitcher from 'components/LanguageSwitcher';\r\nimport CategoryMenu from './components/CategoryMenu';\r\nimport HeaderMenu from './components/HeaderMenu';\r\nimport SocialMedia01 from 'components/SocialMedia/components/SocialMedia01';\r\nimport PhoneNumberBox from './components/PhoneNumberBox';\r\n// actions\r\nimport CoreAction from \"core/actions/common/CoreAction\";\r\nimport CMSAction from 'cms/actions/common/CMSAction';\r\n// interfaces\r\nimport IClientLanguage from 'core/interfaces/IClientLanguage';\r\nimport IClientSiteSettingDetail from 'cms/interfaces/IClientSiteSettingDetail';\r\nimport RightMenu from './components/RightMenu';\r\n\r\n\r\nfunction mapStateToProps ( state: any ) {\r\n console.log(\"Header.mapStateToProps: \", state);\r\n\r\n const languageStorePayload:IClientLanguage[] = state.LanguageStore.list?.payload;\r\n\r\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\r\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\r\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\r\n\r\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\r\n\r\n return {\r\n\r\n languageStorePayload,\r\n\r\n webApplicationLanguage,\r\n webApplicationLanguageCode,\r\n webApplicationLanguageISOCode,\r\n\r\n siteSettingDetailPayload,\r\n \r\n }\r\n}\r\n\r\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\r\n console.log(\"Header.mapDispatchToProps\");\r\n\r\n const coreAction = new CoreAction(dispatch);\r\n const cmsAction = new CMSAction(dispatch);\r\n \r\n\r\n return {\r\n\r\n // \r\n _openMobileMenu: () => {\r\n cmsAction.openMobileMenu();\r\n },\r\n\r\n _closeMobileMenu: () => {\r\n cmsAction.closeMobileMenu();\r\n },\r\n\r\n // other\r\n _hideLoader: () => { \r\n coreAction.hideLoader(); \r\n },\r\n\r\n _showLoader: () => { \r\n coreAction.showLoader(); \r\n }\r\n\r\n }\r\n}\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\n\r\n\r\n/* types */\r\ntype PropsFromRedux = ConnectedProps\r\ntype DivElementRef = React.MutableRefObject;\r\ntype THeader = {\r\n \r\n site_header?: {\r\n categoryMenu: {},\r\n menu: {}\r\n };\r\n\r\n} & T;\r\n\r\n\r\n/* component */\r\nfunction HeaderLoader () {\r\n\r\n return (\r\n <>\r\n )\r\n\r\n}\r\n\r\nfunction Header ( props:THeader ) {\r\n console.log(\"Header.rendered:\", props);\r\n\r\n const [ searchParams ] = useSearchParams();\r\n \r\n const navigate = useNavigate();\r\n const stringSearchRef = React.createRef();\r\n\r\n useEffect(\r\n () => {\r\n\r\n if ( stringSearchRef?.current && isEmpty(stringSearchRef.current.value) ) {\r\n const searchString = searchParams.get(\"q\");\r\n if ( searchString && !isEmpty(searchString) )\r\n stringSearchRef.current.value = searchString;\r\n }\r\n\r\n }, [ searchParams ]\r\n )\r\n\r\n function search(event:React.SyntheticEvent) { \r\n event.preventDefault();\r\n\r\n const target = event.target as typeof event.target & {\r\n queryString: { value: string };\r\n };\r\n const queryString = target.queryString.value;\r\n\r\n navigate({\r\n pathname: `/${props.webApplicationLanguageISOCode}/shop`,\r\n search: `q=${queryString}`\r\n });\r\n }\r\n\r\n function handleMobileMenu() {\r\n\r\n props._openMobileMenu();\r\n\r\n }\r\n\r\n \r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n \r\n}\r\n\r\nconst Component = React.memo(Header, ( prevProps:THeader, nextProps:THeader ) => {\r\n console.log(\"Header.memo\", { prevProps, nextProps });\r\n\r\n return !( \r\n prevProps.webApplicationLanguage !== nextProps.webApplicationLanguage\r\n || prevProps.siteSettingDetailPayload !== nextProps.siteSettingDetailPayload\r\n );\r\n});\r\n\r\nexport default connector(Component);\r\n","import ReadOnlyOdataServiceBase from \"core/services/OdataReadOnlyServiceBase\";\n\n\nclass ClientSiteSettingService extends ReadOnlyOdataServiceBase {\n\n static code = \"205\";\n code = \"205\";\n\n constructor () {\n super({\n sourcePath: \"client-site-settings\"\n });\n }\n\n}\n\nexport default ClientSiteSettingService;\n","// action \nimport OdataReadOnlyActionBase from \"core/actions/OdataReadOnlyActionBase\";\n// service\nimport ClientSiteSettingService from \"cms/services/ClientSiteSettingService\";\n\n\nclass ClientSiteSettingServiceAction extends OdataReadOnlyActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, ClientSiteSettingService, screenCode);\n }\n\n}\n\nexport default ClientSiteSettingServiceAction;\n","import _SiteSettingServiceAction from \"cms/actions/services/ClientSiteSettingServiceAction\";\n\n\nconst screenCode = \"COM\";\nclass SiteSettingServiceAction extends _SiteSettingServiceAction {\n\n constructor( dispatch:any ) {\n super( dispatch, screenCode);\n\n this.serviceCode = \"SS\";\n }\n\n}\n\nexport default SiteSettingServiceAction;\n","// action \nimport OdataReadOnlyActionBase from \"core/actions/OdataReadOnlyActionBase\";\n// service\nimport ClientCatalogCategoriesService from \"ecommerce/services/ClientCatalogCategoriesService\";\n\n\nclass ClientCatalogCategoriesServiceAction extends OdataReadOnlyActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, ClientCatalogCategoriesService, screenCode);\n }\n\n}\n\nexport default ClientCatalogCategoriesServiceAction;\n","import _ClientCatalogCategoriesServiceAction from \"ecommerce/actions/services/ClientCatalogCategoriesServiceAction\";\n\n\nconst screenCode = \"COM\";\nclass ClientCatalogCategoriesServiceAction extends _ClientCatalogCategoriesServiceAction {\n\n constructor( dispatch:any ) {\n super( dispatch, screenCode);\n\n this.serviceCode = \"CCC\";\n }\n\n}\n\nexport default ClientCatalogCategoriesServiceAction;\n","import { isEmpty } from 'lodash';\nimport CoreDefault from \"core/Defaults\";\n// enums\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport ESizeType from \"cms/enums/ESizeType\";\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\n// interfaces\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport ApplicationDocumentSelector from './ApplicationDocumentSelector';\nimport LanguageVersionSelector from './LanguageVersionSelector';\nimport ILanguageVersionDetail from 'cms/interfaces/ILanguageVersionDetail';\nimport IApplicationDocument from 'cms/interfaces/IApplicationDocument';\n\n\nfunction PutManifestFileDynamic( document: any, siteSettingPayload:IClientSiteSettingDetail ) {\n\n let dynamicManifest = {\n name: \"\",\n short_name: \"\",\n start_url: document.location.origin,\n display: \"standalone\",\n background_color: \"#ffffff\",\n theme_color: \"#ffffff\",\n description: \"\",\n icons: []\n }\n\n // icon\n if ( siteSettingPayload.resources && !isEmpty(siteSettingPayload.resources) ) {\n\n let logo_x01 = ApplicationDocumentSelector({\n resources: siteSettingPayload.resources,\n resourceType: EResourceType.LOGO_ONLY,\n sizeType: ESizeType.X01,\n type: \"find\"\n });\n if ( logo_x01 ) {\n dynamicManifest[\"icons\"].push({\n \"src\": `${CoreDefault.cdn}/${logo_x01.filePath}`,\n \"type\": `image/webp`,\n \"sizes\": \"64x64\"\n } as never);\n }\n\n let logo_x02 = ApplicationDocumentSelector({\n resources: siteSettingPayload.resources,\n resourceType: EResourceType.LOGO_ONLY,\n sizeType: ESizeType.X02,\n type: \"find\"\n });\n if ( logo_x02 ) {\n dynamicManifest[\"icons\"].push({\n \"src\": `${CoreDefault.cdn}/${logo_x02.filePath}`,\n \"type\": `image/webp`,\n \"sizes\": \"128x128\"\n } as never);\n }\n\n let logo_x03 = ApplicationDocumentSelector({\n resources: siteSettingPayload.resources,\n resourceType: EResourceType.LOGO_ONLY,\n sizeType: ESizeType.X03,\n type: \"find\"\n });\n if ( logo_x03 ) {\n dynamicManifest[\"icons\"].push({\n \"src\": `${CoreDefault.cdn}/${logo_x03.filePath}`,\n \"type\": `image/webp`,\n \"sizes\": \"256x256\"\n } as never);\n }\n\n let logo_x06 = ApplicationDocumentSelector({\n resources: siteSettingPayload.resources,\n resourceType: EResourceType.LOGO_ONLY,\n sizeType: ESizeType.X06,\n type: \"find\"\n });\n if ( logo_x06 ) {\n dynamicManifest[\"icons\"].push({\n \"src\": `${CoreDefault.cdn}/${logo_x06.filePath}`,\n \"type\": `image/webp`,\n \"sizes\": \"512x512\"\n } as never);\n }\n\n }\n\n // language version\n const languageVersion = LanguageVersionSelector({\n languageVersions: siteSettingPayload.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION }\n ],\n type: \"find\"\n });\n\n const description = LanguageVersionSelector({\n languageVersions: siteSettingPayload.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"metaDescription\" }\n ],\n type: \"find\"\n });\n\n dynamicManifest[\"name\"] = languageVersion?.name||\"\";\n dynamicManifest[\"short_name\"] = languageVersion?.name||\"\";\n dynamicManifest[\"description\"] = description?.value||\"\";\n \n // \n const stringManifest = JSON.stringify(dynamicManifest);\n const blobManifest = new Blob([stringManifest], { type: 'application/json' });\n const manifestURL = URL.createObjectURL(blobManifest);\n document?.querySelector('#my-manifest-placeholder').setAttribute('href', manifestURL);\n\n}\n\nexport default PutManifestFileDynamic;\n","const MenuIcon: React.FC> = (props) => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default MenuIcon;\n","const HomeIcon = ({\n\tcolor = \"currentColor\",\n\twidth = \"18px\",\n\theight = \"20px\",\n}) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default HomeIcon;\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\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 };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isValidElement, version } from 'react';\nimport { ForwardRef, isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport var fillRef = function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n};\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport var composeRef = function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(Boolean);\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n};\nexport var useComposeRef = function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n};\nexport var supportRef = function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== ForwardRef) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== ForwardRef) {\n return false;\n }\n return true;\n};\nfunction isReactElement(node) {\n return /*#__PURE__*/isValidElement(node) && !isFragment(node);\n}\nexport var supportNodeRef = function supportNodeRef(node) {\n return isReactElement(node) && supportRef(node);\n};\n\n/**\n * In React 19. `ref` is not a property from node.\n * But a property from `props.ref`.\n * To check if `props.ref` exist or fallback to `ref`.\n */\nexport var getNodeRef = Number(version.split('.')[0]) >= 19 ?\n// >= React 19\nfunction (node) {\n if (isReactElement(node)) {\n return node.props.ref;\n }\n return null;\n} :\n// < React 19\nfunction (node) {\n if (isReactElement(node)) {\n return node.ref;\n }\n return null;\n};","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return (option.styles || findStyles(container)).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(originOption);\n var styles = findStyles(container);\n var option = _objectSpread(_objectSpread({}, originOption), {}, {\n styles: styles\n });\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","/* eslint-disable no-param-reassign */\nimport { removeCSS, updateCSS } from \"./Dom/dynamicCSS\";\nvar cached;\nfunction measureScrollbarSize(ele) {\n var randomId = \"rc-scrollbar-measure-\".concat(Math.random().toString(36).substring(7));\n var measureEle = document.createElement('div');\n measureEle.id = randomId;\n\n // Create Style\n var measureStyle = measureEle.style;\n measureStyle.position = 'absolute';\n measureStyle.left = '0';\n measureStyle.top = '0';\n measureStyle.width = '100px';\n measureStyle.height = '100px';\n measureStyle.overflow = 'scroll';\n\n // Clone Style if needed\n var fallbackWidth;\n var fallbackHeight;\n if (ele) {\n var targetStyle = getComputedStyle(ele);\n measureStyle.scrollbarColor = targetStyle.scrollbarColor;\n measureStyle.scrollbarWidth = targetStyle.scrollbarWidth;\n\n // Set Webkit style\n var webkitScrollbarStyle = getComputedStyle(ele, '::-webkit-scrollbar');\n var width = parseInt(webkitScrollbarStyle.width, 10);\n var height = parseInt(webkitScrollbarStyle.height, 10);\n\n // Try wrap to handle CSP case\n try {\n var widthStyle = width ? \"width: \".concat(webkitScrollbarStyle.width, \";\") : '';\n var heightStyle = height ? \"height: \".concat(webkitScrollbarStyle.height, \";\") : '';\n updateCSS(\"\\n#\".concat(randomId, \"::-webkit-scrollbar {\\n\").concat(widthStyle, \"\\n\").concat(heightStyle, \"\\n}\"), randomId);\n } catch (e) {\n // Can't wrap, just log error\n console.error(e);\n\n // Get from style directly\n fallbackWidth = width;\n fallbackHeight = height;\n }\n }\n document.body.appendChild(measureEle);\n\n // Measure. Get fallback style if provided\n var scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;\n var scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;\n\n // Clean up\n document.body.removeChild(measureEle);\n removeCSS(randomId);\n return {\n width: scrollWidth,\n height: scrollHeight\n };\n}\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n cached = measureScrollbarSize();\n }\n return cached.width;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n return measureScrollbarSize(target);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getTargetScrollBarSize(document.body).width;\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","import * as React from 'react';\nvar DrawerContext = /*#__PURE__*/React.createContext(null);\nexport var RefContext = /*#__PURE__*/React.createContext({});\nexport default DrawerContext;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Retrieves a DOM node via a ref, and does not invoke `findDOMNode`.\n */\nexport function getDOM(node) {\n if (node && _typeof(node) === 'object' && isDOM(node.nativeElement)) {\n return node.nativeElement;\n }\n if (isDOM(node)) {\n return node;\n }\n return null;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n var domNode = getDOM(node);\n if (domNode) {\n return domNode;\n }\n if (node instanceof React.Component) {\n var _ReactDOM$findDOMNode;\n return (_ReactDOM$findDOMNode = ReactDOM.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(ReactDOM, node);\n }\n return null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: props\n }, children);\n}","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n var prefixMap = vendorPrefixes[eventName];\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { useEffect, useLayoutEffect } from 'react';\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(id);\n return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n wrapperRaf.ids = function () {\n return rafIds;\n };\n}\nexport default wrapperRaf;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else if (nextStep) {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport useState from \"rc-util/es/hooks/useState\";\nimport useSyncState from \"rc-util/es/hooks/useSyncState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n var _useSyncState = useSyncState(STATUS_NONE),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n getStatus = _useSyncState2[0],\n setStatus = _useSyncState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n style = _useState4[0],\n setStyle = _useState4[1];\n var currentStatus = getStatus();\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n\n // =========================== Dom Node ===========================\n function getDomElement() {\n return getElement();\n }\n\n // ========================== Motion End ==========================\n var activeRef = useRef(false);\n\n /**\n * Clean up status & style\n */\n function updateMotionEndStatus() {\n setStatus(STATUS_NONE);\n setStyle(null, true);\n }\n var onInternalMotionEnd = useEvent(function (event) {\n var status = getStatus();\n // Do nothing since not in any transition status.\n // This may happen when `motionDeadline` trigger.\n if (status === STATUS_NONE) {\n return;\n }\n var element = getDomElement();\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n var currentActive = activeRef.current;\n var canEnd;\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n }\n\n // Only update status when `canEnd` and not destroyed\n if (currentActive && canEnd !== false) {\n updateMotionEndStatus();\n }\n });\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0];\n\n // ============================= Step =============================\n var getEventHandlers = function getEventHandlers(targetStatus) {\n switch (targetStatus) {\n case STATUS_APPEAR:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onAppearPrepare), STEP_START, onAppearStart), STEP_ACTIVE, onAppearActive);\n case STATUS_ENTER:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onEnterPrepare), STEP_START, onEnterStart), STEP_ACTIVE, onEnterActive);\n case STATUS_LEAVE:\n return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onLeavePrepare), STEP_START, onLeaveStart), STEP_ACTIVE, onLeaveActive);\n default:\n return {};\n }\n };\n var eventHandlers = React.useMemo(function () {\n return getEventHandlers(currentStatus);\n }, [currentStatus]);\n var _useStepQueue = useStepQueue(currentStatus, !supportMotion, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n if (!onPrepare) {\n return SkipStep;\n }\n return onPrepare(getDomElement());\n }\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n if (step === STEP_ACTIVE && currentStatus !== STATUS_NONE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n if (step === STEP_PREPARED) {\n updateMotionEndStatus();\n }\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n var active = isActive(step);\n activeRef.current = active;\n\n // ============================ Status ============================\n // Update with new status\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n // if (!supportMotion) {\n // return;\n // }\n\n var nextStatus;\n\n // Appear\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n }\n\n // Enter\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n }\n\n // Leave\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n }\n var nextEventHandlers = getEventHandlers(nextStatus);\n\n // Update to next status\n if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n setStatus(nextStatus);\n startStep();\n } else {\n // Set back in case no motion but prev status has prepare step\n setStatus(STATUS_NONE);\n }\n }, [visible]);\n\n // ============================ Effect ============================\n // Reset when motion changed\n useEffect(function () {\n if (\n // Cancel appear\n currentStatus === STATUS_APPEAR && !motionAppear ||\n // Cancel enter\n currentStatus === STATUS_ENTER && !motionEnter ||\n // Cancel leave\n currentStatus === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []);\n\n // Trigger `onVisibleChanged`\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n if (asyncVisible !== undefined && currentStatus === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 || onVisibleChanged(asyncVisible);\n }\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, currentStatus]);\n\n // ============================ Styles ============================\n var mergedStyle = style;\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n return [currentStatus, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useEvent from \"./useEvent\";\n/**\n * Same as React.useState but will always get latest state.\n * This is useful when React merge multiple state updates into one.\n * e.g. onTransitionEnd trigger multiple event at once will be merged state update in React.\n */\nexport default function useSyncState(defaultValue) {\n var _React$useReducer = React.useReducer(function (x) {\n return x + 1;\n }, 0),\n _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n forceUpdate = _React$useReducer2[1];\n var currentValueRef = React.useRef(defaultValue);\n var getValue = useEvent(function () {\n return currentValueRef.current;\n });\n var setValue = useEvent(function (updater) {\n currentValueRef.current = typeof updater === 'function' ? updater(currentValueRef.current) : updater;\n forceUpdate();\n });\n return [getValue, setValue];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (onInternalMotionEnd) {\n var cacheElementRef = useRef();\n\n // Remove events\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n }\n\n // Patch events\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd);\n\n // Save as cache in case dom removed trigger by `motionDeadline`\n cacheElementRef.current = element;\n }\n }\n\n // Clean up when removed\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n function isSupportTransition(props, contextMotion) {\n return !!(props.motionName && transitionSupport && contextMotion !== false);\n }\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var _React$useContext = React.useContext(Context),\n contextMotion = _React$useContext.motion;\n var supportMotion = isSupportTransition(props, contextMotion);\n\n // Ref to the react node, it may be a HTMLElement\n var nodeRef = useRef();\n // Ref to the dom wrapper in case ref can not pass to HTMLElement\n var wrapperNodeRef = useRef();\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3];\n\n // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n var renderedRef = React.useRef(mergedVisible);\n if (mergedVisible) {\n renderedRef.current = true;\n }\n\n // ====================== Refs ======================\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]);\n\n // ===================== Render =====================\n var motionChildren;\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n // In motion\n var statusSuffix;\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), _defineProperty(_defineProperty({}, motionCls, motionCls && statusSuffix), motionName, typeof motionName === 'string')),\n style: statusStyle\n }), setNodeRef);\n }\n\n // Auto inject ref if child node not have `ref` props\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _ref = motionChildren,\n originNodeRef = _ref.ref;\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import 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 };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys);\n\n // Check prev keys to insert or keep\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n }\n\n // If not hit, it means key is removed\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n });\n\n // Add rest to the list\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n });\n\n // Update `STATUS_ADD` to `STATUS_KEEP`\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { diffKeys, parseKeys, STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED } from \"./util/diff\";\nimport { supportTransition } from \"./util/motion\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n var _super = _createSuper(CSSMotionList);\n function CSSMotionList() {\n var _this;\n _classCallCheck(this, CSSMotionList);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: []\n });\n // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n _this.setState(function (prevState) {\n var nextKeyEntities = prevState.keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n return {\n keyEntities: nextKeyEntities\n };\n }, function () {\n var keyEntities = _this.state.keyEntities;\n var restKeysCount = keyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n if (restKeysCount === 0 && _this.props.onAllRemoved) {\n _this.props.onAllRemoved();\n }\n });\n });\n return _this;\n }\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var keyEntities = this.state.keyEntities;\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 || _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n if (!changedVisible) {\n _this2.removeKey(eventProps.key);\n }\n }\n }), function (props, ref) {\n return children(_objectSpread(_objectSpread({}, props), {}, {\n index: index\n }), ref);\n });\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n });\n\n // Remove if already mark as removed\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n return true;\n })\n };\n }\n }]);\n return CSSMotionList;\n }(React.Component);\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { default as Provider } from \"./context\";\nexport { CSSMotionList };\nexport default CSSMotion;","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n charSet checked classID className colSpan cols content contentEditable contextMenu\\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n mediaGroup method min minLength multiple muted name noValidate nonce open\\n optimum pattern placeholder poster preload radioGroup readOnly rel required\\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n\n/* eslint-enable max-len */\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\nfunction match(key, prefix) {\n return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\nexport default function pickAttrs(props) {\n var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var mergedConfig;\n if (ariaOnly === false) {\n mergedConfig = {\n aria: true,\n data: true,\n attr: true\n };\n } else if (ariaOnly === true) {\n mergedConfig = {\n aria: true\n };\n } else {\n mergedConfig = _objectSpread({}, ariaOnly);\n }\n var attrs = {};\n Object.keys(props).forEach(function (key) {\n if (\n // Aria\n mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) ||\n // Data\n mergedConfig.data && match(key, dataPrefix) ||\n // Attr\n mergedConfig.attr && propList.includes(key)) {\n attrs[key] = props[key];\n }\n });\n return attrs;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"containerRef\"];\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { RefContext } from \"./context\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nvar DrawerPanel = function DrawerPanel(props) {\n var prefixCls = props.prefixCls,\n className = props.className,\n containerRef = props.containerRef,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(RefContext),\n panelRef = _React$useContext.panel;\n var mergedRef = useComposeRef(panelRef, containerRef);\n\n // =============================== Render ===============================\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n role: \"dialog\",\n ref: mergedRef\n }, pickAttrs(props, {\n aria: true\n }), {\n \"aria-modal\": \"true\"\n }, restProps));\n};\nif (process.env.NODE_ENV !== 'production') {\n DrawerPanel.displayName = 'DrawerPanel';\n}\nexport default DrawerPanel;","import warning from \"rc-util/es/warning\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nexport function parseWidthHeight(value) {\n if (typeof value === 'string' && String(Number(value)) === value) {\n warning(false, 'Invalid value type of `width` or `height` which should be number type instead.');\n return Number(value);\n }\n return value;\n}\nexport function warnCheck(props) {\n warning(!('wrapperClassName' in props), \"'wrapperClassName' is removed. Please use 'rootClassName' instead.\");\n warning(canUseDom() || !props.open, \"Drawer with 'open' in SSR is not work since no place to createPortal. Please move to 'useEffect' instead.\");\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport DrawerContext from \"./context\";\nimport DrawerPanel from \"./DrawerPanel\";\nimport { parseWidthHeight } from \"./util\";\nvar sentinelStyle = {\n width: 0,\n height: 0,\n overflow: 'hidden',\n outline: 'none',\n position: 'absolute'\n};\nfunction DrawerPopup(props, ref) {\n var _ref, _pushConfig$distance, _pushConfig;\n var prefixCls = props.prefixCls,\n open = props.open,\n placement = props.placement,\n inline = props.inline,\n push = props.push,\n forceRender = props.forceRender,\n autoFocus = props.autoFocus,\n keyboard = props.keyboard,\n drawerClassNames = props.classNames,\n rootClassName = props.rootClassName,\n rootStyle = props.rootStyle,\n zIndex = props.zIndex,\n className = props.className,\n id = props.id,\n style = props.style,\n motion = props.motion,\n width = props.width,\n height = props.height,\n children = props.children,\n mask = props.mask,\n maskClosable = props.maskClosable,\n maskMotion = props.maskMotion,\n maskClassName = props.maskClassName,\n maskStyle = props.maskStyle,\n afterOpenChange = props.afterOpenChange,\n onClose = props.onClose,\n onMouseEnter = props.onMouseEnter,\n onMouseOver = props.onMouseOver,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n styles = props.styles,\n drawerRender = props.drawerRender;\n\n // ================================ Refs ================================\n var panelRef = React.useRef();\n var sentinelStartRef = React.useRef();\n var sentinelEndRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return panelRef.current;\n });\n var onPanelKeyDown = function onPanelKeyDown(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n switch (keyCode) {\n // Tab active\n case KeyCode.TAB:\n {\n if (keyCode === KeyCode.TAB) {\n if (!shiftKey && document.activeElement === sentinelEndRef.current) {\n var _sentinelStartRef$cur;\n (_sentinelStartRef$cur = sentinelStartRef.current) === null || _sentinelStartRef$cur === void 0 || _sentinelStartRef$cur.focus({\n preventScroll: true\n });\n } else if (shiftKey && document.activeElement === sentinelStartRef.current) {\n var _sentinelEndRef$curre;\n (_sentinelEndRef$curre = sentinelEndRef.current) === null || _sentinelEndRef$curre === void 0 || _sentinelEndRef$curre.focus({\n preventScroll: true\n });\n }\n }\n break;\n }\n\n // Close\n case KeyCode.ESC:\n {\n if (onClose && keyboard) {\n event.stopPropagation();\n onClose(event);\n }\n break;\n }\n }\n };\n\n // ========================== Control ===========================\n // Auto Focus\n React.useEffect(function () {\n if (open && autoFocus) {\n var _panelRef$current;\n (_panelRef$current = panelRef.current) === null || _panelRef$current === void 0 || _panelRef$current.focus({\n preventScroll: true\n });\n }\n }, [open]);\n\n // ============================ Push ============================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n pushed = _React$useState2[0],\n setPushed = _React$useState2[1];\n var parentContext = React.useContext(DrawerContext);\n\n // Merge push distance\n var pushConfig;\n if (typeof push === 'boolean') {\n pushConfig = push ? {} : {\n distance: 0\n };\n } else {\n pushConfig = push || {};\n }\n var pushDistance = (_ref = (_pushConfig$distance = (_pushConfig = pushConfig) === null || _pushConfig === void 0 ? void 0 : _pushConfig.distance) !== null && _pushConfig$distance !== void 0 ? _pushConfig$distance : parentContext === null || parentContext === void 0 ? void 0 : parentContext.pushDistance) !== null && _ref !== void 0 ? _ref : 180;\n var mergedContext = React.useMemo(function () {\n return {\n pushDistance: pushDistance,\n push: function push() {\n setPushed(true);\n },\n pull: function pull() {\n setPushed(false);\n }\n };\n }, [pushDistance]);\n\n // ========================= ScrollLock =========================\n // Tell parent to push\n React.useEffect(function () {\n if (open) {\n var _parentContext$push;\n parentContext === null || parentContext === void 0 || (_parentContext$push = parentContext.push) === null || _parentContext$push === void 0 || _parentContext$push.call(parentContext);\n } else {\n var _parentContext$pull;\n parentContext === null || parentContext === void 0 || (_parentContext$pull = parentContext.pull) === null || _parentContext$pull === void 0 || _parentContext$pull.call(parentContext);\n }\n }, [open]);\n\n // Clean up\n React.useEffect(function () {\n return function () {\n var _parentContext$pull2;\n parentContext === null || parentContext === void 0 || (_parentContext$pull2 = parentContext.pull) === null || _parentContext$pull2 === void 0 || _parentContext$pull2.call(parentContext);\n };\n }, []);\n\n // ============================ Mask ============================\n var maskNode = mask && /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: \"mask\"\n }, maskMotion, {\n visible: open\n }), function (_ref2, maskRef) {\n var motionMaskClassName = _ref2.className,\n motionMaskStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-mask\"), motionMaskClassName, drawerClassNames === null || drawerClassNames === void 0 ? void 0 : drawerClassNames.mask, maskClassName),\n style: _objectSpread(_objectSpread(_objectSpread({}, motionMaskStyle), maskStyle), styles === null || styles === void 0 ? void 0 : styles.mask),\n onClick: maskClosable && open ? onClose : undefined,\n ref: maskRef\n });\n });\n\n // =========================== Panel ============================\n var motionProps = typeof motion === 'function' ? motion(placement) : motion;\n var wrapperStyle = {};\n if (pushed && pushDistance) {\n switch (placement) {\n case 'top':\n wrapperStyle.transform = \"translateY(\".concat(pushDistance, \"px)\");\n break;\n case 'bottom':\n wrapperStyle.transform = \"translateY(\".concat(-pushDistance, \"px)\");\n break;\n case 'left':\n wrapperStyle.transform = \"translateX(\".concat(pushDistance, \"px)\");\n break;\n default:\n wrapperStyle.transform = \"translateX(\".concat(-pushDistance, \"px)\");\n break;\n }\n }\n if (placement === 'left' || placement === 'right') {\n wrapperStyle.width = parseWidthHeight(width);\n } else {\n wrapperStyle.height = parseWidthHeight(height);\n }\n var eventHandlers = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp\n };\n var panelNode = /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: \"panel\"\n }, motionProps, {\n visible: open,\n forceRender: forceRender,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n afterOpenChange === null || afterOpenChange === void 0 || afterOpenChange(nextVisible);\n },\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-content-wrapper-hidden\")\n }), function (_ref3, motionRef) {\n var motionClassName = _ref3.className,\n motionStyle = _ref3.style;\n var content = /*#__PURE__*/React.createElement(DrawerPanel, _extends({\n id: id,\n containerRef: motionRef,\n prefixCls: prefixCls,\n className: classNames(className, drawerClassNames === null || drawerClassNames === void 0 ? void 0 : drawerClassNames.content),\n style: _objectSpread(_objectSpread({}, style), styles === null || styles === void 0 ? void 0 : styles.content)\n }, pickAttrs(props, {\n aria: true\n }), eventHandlers), children);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-content-wrapper\"), drawerClassNames === null || drawerClassNames === void 0 ? void 0 : drawerClassNames.wrapper, motionClassName),\n style: _objectSpread(_objectSpread(_objectSpread({}, wrapperStyle), motionStyle), styles === null || styles === void 0 ? void 0 : styles.wrapper)\n }, pickAttrs(props, {\n data: true\n })), drawerRender ? drawerRender(content) : content);\n });\n\n // =========================== Render ===========================\n var containerStyle = _objectSpread({}, rootStyle);\n if (zIndex) {\n containerStyle.zIndex = zIndex;\n }\n return /*#__PURE__*/React.createElement(DrawerContext.Provider, {\n value: mergedContext\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(placement), rootClassName, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-open\"), open), \"\".concat(prefixCls, \"-inline\"), inline)),\n style: containerStyle,\n tabIndex: -1,\n ref: panelRef,\n onKeyDown: onPanelKeyDown\n }, maskNode, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelStartRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\",\n \"data-sentinel\": \"start\"\n }), panelNode, /*#__PURE__*/React.createElement(\"div\", {\n tabIndex: 0,\n ref: sentinelEndRef,\n style: sentinelStyle,\n \"aria-hidden\": \"true\",\n \"data-sentinel\": \"end\"\n })));\n}\nvar RefDrawerPopup = /*#__PURE__*/React.forwardRef(DrawerPopup);\nif (process.env.NODE_ENV !== 'production') {\n RefDrawerPopup.displayName = 'DrawerPopup';\n}\nexport default RefDrawerPopup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport Portal from '@rc-component/portal';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { RefContext } from \"./context\";\nimport DrawerPopup from \"./DrawerPopup\";\nimport { warnCheck } from \"./util\";\nvar Drawer = function Drawer(props) {\n var _props$open = props.open,\n open = _props$open === void 0 ? false : _props$open,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-drawer' : _props$prefixCls,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$autoFocus = props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n _props$keyboard = props.keyboard,\n keyboard = _props$keyboard === void 0 ? true : _props$keyboard,\n _props$width = props.width,\n width = _props$width === void 0 ? 378 : _props$width,\n _props$mask = props.mask,\n mask = _props$mask === void 0 ? true : _props$mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getContainer = props.getContainer,\n forceRender = props.forceRender,\n afterOpenChange = props.afterOpenChange,\n destroyOnClose = props.destroyOnClose,\n onMouseEnter = props.onMouseEnter,\n onMouseOver = props.onMouseOver,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n panelRef = props.panelRef;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n animatedVisible = _React$useState2[0],\n setAnimatedVisible = _React$useState2[1];\n\n // ============================= Warn =============================\n if (process.env.NODE_ENV !== 'production') {\n warnCheck(props);\n }\n\n // ============================= Open =============================\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n mounted = _React$useState4[0],\n setMounted = _React$useState4[1];\n useLayoutEffect(function () {\n setMounted(true);\n }, []);\n var mergedOpen = mounted ? open : false;\n\n // ============================ Focus =============================\n var popupRef = React.useRef();\n var lastActiveRef = React.useRef();\n useLayoutEffect(function () {\n if (mergedOpen) {\n lastActiveRef.current = document.activeElement;\n }\n }, [mergedOpen]);\n\n // ============================= Open =============================\n var internalAfterOpenChange = function internalAfterOpenChange(nextVisible) {\n var _popupRef$current;\n setAnimatedVisible(nextVisible);\n afterOpenChange === null || afterOpenChange === void 0 || afterOpenChange(nextVisible);\n if (!nextVisible && lastActiveRef.current && !((_popupRef$current = popupRef.current) !== null && _popupRef$current !== void 0 && _popupRef$current.contains(lastActiveRef.current))) {\n var _lastActiveRef$curren;\n (_lastActiveRef$curren = lastActiveRef.current) === null || _lastActiveRef$curren === void 0 || _lastActiveRef$curren.focus({\n preventScroll: true\n });\n }\n };\n\n // =========================== Context ============================\n var refContext = React.useMemo(function () {\n return {\n panel: panelRef\n };\n }, [panelRef]);\n\n // ============================ Render ============================\n if (!forceRender && !animatedVisible && !mergedOpen && destroyOnClose) {\n return null;\n }\n var eventHandlers = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp\n };\n var drawerPopupProps = _objectSpread(_objectSpread({}, props), {}, {\n open: mergedOpen,\n prefixCls: prefixCls,\n placement: placement,\n autoFocus: autoFocus,\n keyboard: keyboard,\n width: width,\n mask: mask,\n maskClosable: maskClosable,\n inline: getContainer === false,\n afterOpenChange: internalAfterOpenChange,\n ref: popupRef\n }, eventHandlers);\n return /*#__PURE__*/React.createElement(RefContext.Provider, {\n value: refContext\n }, /*#__PURE__*/React.createElement(Portal, {\n open: mergedOpen || forceRender || animatedVisible,\n autoDestroy: false,\n getContainer: getContainer,\n autoLock: mask && (mergedOpen || animatedVisible)\n }, /*#__PURE__*/React.createElement(DrawerPopup, drawerPopupProps)));\n};\nif (process.env.NODE_ENV !== 'production') {\n Drawer.displayName = 'Drawer';\n}\nexport default Drawer;","// export this package's api\nimport Drawer from \"./Drawer\";\nexport default Drawer;","import type { DrawerProps } from 'rc-drawer';\n// import './motion.css';\n\nexport const maskMotion: DrawerProps['maskMotion'] = {\n motionAppear: true,\n motionName: 'mask-motion',\n};\n\nexport const motion: DrawerProps['motion'] = (placement) => ({\n motionAppear: true,\n motionName: `panel-motion-${placement}`,\n});\n\nconst motionProps: Partial = {\n maskMotion,\n motion,\n};\n\nexport default motionProps;\n","export interface CacheOptions {\n // initial value of _value.\n _initialValue: Value;\n // Custom comparison function if shallow compare isn't enough. Returns true if nothing changed.\n _equal?: EqualCachePropFunction;\n // If true always updates _value and _previous, otherwise they update only when they changed.\n _alwaysUpdateValues?: boolean;\n}\n\nexport type CacheValues = [value: T, changed: boolean, previous?: T];\n\nexport type EqualCachePropFunction = (currentVal: Value, newVal: Value) => boolean;\n\nexport type CacheUpdater = (current: Value, previous?: Value) => Value;\n\nexport type UpdateCacheContextual = (newValue: Value, force?: boolean) => CacheValues;\n\nexport type UpdateCache = (force?: boolean) => CacheValues;\n\nexport type GetCurrentCache = (force?: boolean) => CacheValues;\n\nexport type Cache = [UpdateCache, GetCurrentCache];\n\nexport type CacheContextual = [UpdateCacheContextual, GetCurrentCache];\n\ntype CreateCache = {\n (options: CacheOptions): CacheContextual;\n (options: CacheOptions, update: CacheUpdater): Cache;\n (options: CacheOptions, update?: CacheUpdater):\n | CacheContextual\n | Cache;\n};\n\nexport const createCache: CreateCache = (\n options: CacheOptions,\n update?: CacheUpdater\n): CacheContextual | Cache => {\n const { _initialValue, _equal, _alwaysUpdateValues } = options;\n let _value: Value = _initialValue;\n let _previous: Value | undefined;\n\n const cacheUpdateContextual: UpdateCacheContextual = (newValue, force?) => {\n const curr = _value;\n\n const newVal = newValue;\n const changed = force || (_equal ? !_equal(curr, newVal) : curr !== newVal);\n\n if (changed || _alwaysUpdateValues) {\n _value = newVal;\n _previous = curr;\n }\n\n return [_value, changed, _previous];\n };\n const cacheUpdateIsolated: UpdateCache = (force?) =>\n cacheUpdateContextual(update!(_value, _previous), force);\n\n const getCurrentCache: GetCurrentCache = (force?: boolean) => [\n _value,\n !!force, // changed\n _previous,\n ];\n\n return [update ? cacheUpdateIsolated : cacheUpdateContextual, getCurrentCache] as\n | CacheContextual\n | Cache;\n};\n","import { isBrowser } from '../compatibility/isBrowser';\r\n\r\nexport const wnd = (isBrowser ? window : {}) as typeof window;\r\nexport const mathMax = Math.max;\r\nexport const mathMin = Math.min;\r\nexport const mathRound = Math.round;\r\nexport const mathFloor = Math.floor;\r\nexport const mathCeil = Math.ceil;\r\nexport const mathAbs = Math.abs;\r\nexport const mathSign = Math.sign;\r\nexport const cAF = wnd.cancelAnimationFrame;\r\nexport const rAF = wnd.requestAnimationFrame;\r\nexport const setT = wnd.setTimeout;\r\nexport const clearT = wnd.clearTimeout;\r\n","export const isBrowser =\r\n // deno has the global `window` defined\r\n typeof window !== 'undefined' &&\r\n // make sure HTML element is available\r\n typeof HTMLElement !== 'undefined' &&\r\n // make sure document is defined\r\n !!window.document;\r\n","import { wnd } from '../utils/alias';\r\n\r\nconst getApi = (name: string) =>\r\n (typeof wnd[name as keyof typeof wnd] !== 'undefined'\r\n ? wnd[name as keyof typeof wnd]\r\n : undefined) as T;\r\n\r\nexport const MutationObserverConstructor = getApi('MutationObserver');\r\nexport const IntersectionObserverConstructor =\r\n getApi('IntersectionObserver');\r\nexport const ResizeObserverConstructor = getApi('ResizeObserver');\r\nexport const scrollT = getApi AnimationTimeline>('ScrollTimeline');\r\n","import type { PlainObject } from '~/typings';\r\n\r\nexport const isUndefined = (obj: any): obj is undefined => obj === undefined;\r\n\r\nexport const isNull = (obj: any): obj is null => obj === null;\r\n\r\nexport const type = (obj: any): string =>\r\n isUndefined(obj) || isNull(obj)\r\n ? `${obj}`\r\n : Object.prototype.toString\r\n .call(obj)\r\n .replace(/^\\[object (.+)\\]$/, '$1')\r\n .toLowerCase();\r\n\r\nexport const isNumber = (obj: any): obj is number => typeof obj === 'number';\r\n\r\nexport const isString = (obj: any): obj is string => typeof obj === 'string';\r\n\r\nexport const isBoolean = (obj: any): obj is boolean => typeof obj === 'boolean';\r\n\r\nexport const isFunction = (obj: any): obj is (...args: any[]) => any => typeof obj === 'function';\r\n\r\nexport const isArray = (obj: any): obj is Array => Array.isArray(obj);\r\n\r\nexport const isObject = (obj: any): obj is object =>\r\n typeof obj === 'object' && !isArray(obj) && !isNull(obj);\r\n\r\n/**\r\n * Returns true if the given object is array like, false otherwise.\r\n * @param obj The Object\r\n */\r\nexport const isArrayLike = (obj: any): obj is ArrayLike => {\r\n const length = !!obj && obj.length;\r\n const lengthCorrectFormat = isNumber(length) && length > -1 && length % 1 == 0; // eslint-disable-line eqeqeq\r\n\r\n return isArray(obj) || (!isFunction(obj) && lengthCorrectFormat)\r\n ? length > 0 && isObject(obj)\r\n ? length - 1 in obj\r\n : true\r\n : false;\r\n};\r\n\r\n/**\r\n * Returns true if the given object is a \"plain\" (e.g. { key: value }) object, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isPlainObject = (obj: any): obj is PlainObject =>\r\n !!obj && obj.constructor === Object;\r\n\r\n/**\r\n * Checks whether the given object is a HTMLElement.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isHTMLElement = (obj: any): obj is HTMLElement => obj instanceof HTMLElement;\r\n\r\n/**\r\n * Checks whether the given object is a Element.\r\n * @param obj The object which shall be checked.\r\n */\r\nexport const isElement = (obj: any): obj is Element => obj instanceof Element;\r\n","import type { PlainObject } from '~/typings';\r\nimport { isArray, isArrayLike, isString } from './types';\r\n\r\ntype RunEachItem = ((...args: any) => any | any[]) | false | null | undefined;\r\n\r\nexport function each | ReadonlyArray>(\r\n array: T,\r\n callback: (\r\n value: T extends Array | ReadonlyArray ? V : never,\r\n index: number,\r\n source: T\r\n ) => boolean | unknown\r\n): T;\r\nexport function each>(\r\n arrayLikeObject: T,\r\n callback: (\r\n value: T extends ArrayLike ? V : never,\r\n index: number,\r\n source: T\r\n ) => boolean | unknown\r\n): T;\r\nexport function each(\r\n obj: T,\r\n callback: (value: any, key: string, source: T) => boolean | unknown\r\n): T;\r\nexport function each(\r\n source: Array | ArrayLike | ReadonlyArray | PlainObject,\r\n callback: (value: any, indexOrKey: any, source: any) => boolean | unknown\r\n): Array | ArrayLike | ReadonlyArray | Set | PlainObject {\r\n if (isArrayLike(source)) {\r\n for (let i = 0; i < source.length; i++) {\r\n if (callback(source[i], i, source) === false) {\r\n break;\r\n }\r\n }\r\n } else if (source) {\r\n // cant use support func keys here due to circular dep\r\n each(Object.keys(source), (key) => callback(source[key], key, source));\r\n }\r\n return source;\r\n}\r\n\r\n/**\r\n * Returns true when the passed item is in the passed array and false otherwise.\r\n * @param arr The array.\r\n * @param item The item.\r\n * @returns Whether the item is in the array.\r\n */\r\nexport const inArray = (arr: T[] | readonly T[], item: T): boolean =>\r\n arr.indexOf(item) >= 0;\r\n\r\n/**\r\n * Concats two arrays and returns an new array without modifying any of the passed arrays.\r\n * @param a Array A.\r\n * @param b Array B.\r\n * @returns A new array which has the entries of both arrays.\r\n */\r\nexport const concat = (a: T[] | ReadonlyArray, b: T[] | ReadonlyArray): T[] => a.concat(b);\r\n\r\n/**\r\n * Pushesh all given items into the given array and returns it.\r\n * @param array The array the items shall be pushed into.\r\n * @param items The items which shall be pushed into the array.\r\n */\r\nexport const push = (array: T[], items: T | ArrayLike, arrayIsSingleItem?: boolean): T[] => {\r\n !arrayIsSingleItem && !isString(items) && isArrayLike(items)\r\n ? Array.prototype.push.apply(array, items as T[])\r\n : array.push(items as T);\r\n return array;\r\n};\r\n\r\n/**\r\n * Creates a shallow-copied Array instance from an array-like or iterable object.\r\n * @param arr The object from which the array instance shall be created.\r\n */\r\nexport const from = (arr?: ArrayLike | Set) => Array.from(arr || []);\r\n\r\n/**\r\n * Creates an array if the passed value is not an array, or returns the value if it is.\r\n * If the passed value is an array like structure and not a string it will be converted into an array.\r\n * @param value The value.\r\n * @returns An array which represents the passed value(s).\r\n */\r\nexport const createOrKeepArray = (value: T | T[] | ArrayLike): T[] => {\r\n if (isArray(value)) {\r\n return value;\r\n }\r\n return !isString(value) && isArrayLike(value) ? from(value) : [value];\r\n};\r\n\r\n/**\r\n * Check whether the passed array is empty.\r\n * @param array The array which shall be checked.\r\n */\r\nexport const isEmptyArray = (array: any[] | null | undefined): boolean => !!array && !array.length;\r\n\r\n/**\r\n * Deduplicates all items of the array.\r\n * @param array The array to be deduplicated.\r\n * @returns The deduplicated array.\r\n */\r\nexport const deduplicateArray = (array: T): T => from(new Set(array)) as T;\r\n\r\n/**\r\n * Calls all functions in the passed array/set of functions.\r\n * @param arr The array filled with function which shall be called.\r\n * @param args The args with which each function is called.\r\n * @param keep True when the Set / array should not be cleared afterwards, false otherwise.\r\n */\r\nexport const runEachAndClear = (arr: RunEachItem[], args?: any[], keep?: boolean): void => {\r\n // eslint-disable-next-line prefer-spread\r\n const runFn = (fn: RunEachItem) => fn && fn.apply(undefined, args || []);\r\n each(arr, runFn);\r\n !keep && ((arr as any[]).length = 0);\r\n};\r\n","export const strPaddingTop = 'paddingTop';\r\nexport const strPaddingRight = 'paddingRight';\r\nexport const strPaddingLeft = 'paddingLeft';\r\nexport const strPaddingBottom = 'paddingBottom';\r\nexport const strMarginLeft = 'marginLeft';\r\nexport const strMarginRight = 'marginRight';\r\nexport const strMarginBottom = 'marginBottom';\r\nexport const strOverflowX = 'overflowX';\r\nexport const strOverflowY = 'overflowY';\r\nexport const strWidth = 'width';\r\nexport const strHeight = 'height';\r\nexport const strVisible = 'visible';\r\nexport const strHidden = 'hidden';\r\nexport const strScroll = 'scroll';\r\n\r\nexport const capitalizeFirstLetter = (str: string | number | false | null | undefined): string => {\r\n const finalStr = String(str || '');\r\n return finalStr ? finalStr[0].toUpperCase() + finalStr.slice(1) : '';\r\n};\r\n","import type { WH } from '../dom/dimensions';\r\nimport type { XY } from '../dom/offset';\r\nimport type { TRBL } from '../dom/style';\r\nimport type { PlainObject } from '~/typings';\r\nimport { each } from './array';\r\nimport { mathRound } from './alias';\r\nimport { strHeight, strWidth } from './strings';\r\n\r\n/**\r\n * Compares two objects and returns true if all values of the passed prop names are identical, false otherwise or if one of the two object is falsy.\r\n * @param a Object a.\r\n * @param b Object b.\r\n * @param props The props which shall be compared.\r\n */\r\nexport const equal = (\r\n a: T | undefined,\r\n b: T | undefined,\r\n props: Array | ReadonlyArray,\r\n propMutation?: ((value: any) => any) | null | false\r\n): boolean => {\r\n if (a && b) {\r\n let result = true;\r\n each(props, (prop) => {\r\n const compareA = propMutation ? propMutation(a[prop]) : a[prop];\r\n const compareB = propMutation ? propMutation(b[prop]) : b[prop];\r\n if (compareA !== compareB) {\r\n result = false;\r\n }\r\n });\r\n return result;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalWH = (a?: Partial>, b?: Partial>) =>\r\n equal>>(a, b, ['w', 'h']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalXY = (a?: Partial>, b?: Partial>) =>\r\n equal>>(a, b, ['x', 'y']);\r\n\r\n/**\r\n * Compares object a with object b and returns true if both have the same property values, false otherwise.\r\n * Also returns false if one of the objects is undefined or null.\r\n * @param a Object a.\r\n * @param b Object b.\r\n */\r\nexport const equalTRBL = (a?: TRBL, b?: TRBL) => equal(a, b, ['t', 'r', 'b', 'l']);\r\n\r\n/**\r\n * Compares two DOM Rects for their equality of their width and height properties\r\n * Also returns false if one of the DOM Rects is undefined or null.\r\n * @param a DOM Rect a.\r\n * @param b DOM Rect b.\r\n * @param round Whether the values should be rounded.\r\n */\r\nexport const equalBCRWH = (a?: DOMRect, b?: DOMRect, round?: boolean) =>\r\n equal(a, b, [strWidth, strHeight], round && ((value) => mathRound(value)));\r\n","export const noop = () => {}; // eslint-disable-line\r\n","import { isNumber, isFunction } from './types';\r\nimport { from } from './array';\r\nimport { rAF, cAF, setT, clearT } from './alias';\r\nimport { noop } from './noop';\r\n\r\ntype DebounceTiming = number | false | null | undefined;\r\n\r\nexport interface DebounceOptions any> {\r\n /**\r\n * The timeout for debouncing. If null, no debounce is applied.\r\n */\r\n _timeout?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * A maximum amount of ms. before the function will be called even with debounce.\r\n */\r\n _maxDelay?: DebounceTiming | (() => DebounceTiming);\r\n /**\r\n * Defines the calling on the leading edge of the timeout.\r\n */\r\n _leading?: boolean;\r\n /**\r\n * Function which merges parameters for each canceled debounce.\r\n * If parameters can't be merged the function will return null, otherwise it returns the merged parameters.\r\n */\r\n _mergeParams?: (\r\n prev: Parameters,\r\n curr: Parameters\r\n ) => Parameters | false | null | undefined;\r\n}\r\n\r\nexport interface Debounced any> {\r\n (...args: Parameters): ReturnType;\r\n _flush(): void;\r\n}\r\n\r\nexport const bind = (\r\n fn: (...args: [...A, ...B]) => R,\r\n ...args: A\r\n): ((...args: B) => R) => fn.bind(0, ...args);\r\n\r\n/**\r\n * Creates a timeout and cleartimeout tuple. The timeout function always clears the previously created timeout before it runs.\r\n * @param timeout The timeout in ms. If no timeout (or 0) is passed requestAnimationFrame is used instead of setTimeout.\r\n * @returns A tuple with the timeout function as the first value and the clearTimeout function as the second value.\r\n */\r\nexport const selfClearTimeout = (timeout?: number | (() => number)) => {\r\n let id: number;\r\n const setTFn = timeout ? setT : rAF!;\r\n const clearTFn = timeout ? clearT : cAF!;\r\n return [\r\n (callback: () => any) => {\r\n clearTFn(id);\r\n // @ts-ignore\r\n id = setTFn(() => callback(), isFunction(timeout) ? timeout() : timeout);\r\n },\r\n () => clearTFn(id),\r\n ] as [timeout: (callback: () => any) => void, clear: () => void];\r\n};\r\n\r\n/**\r\n * Debounces the given function either with a timeout or a animation frame.\r\n * @param functionToDebounce The function which shall be debounced.\r\n * @param options Options for debouncing.\r\n */\r\nexport const debounce = any>(\r\n functionToDebounce: FunctionToDebounce,\r\n options?: DebounceOptions\r\n): Debounced => {\r\n const { _timeout, _maxDelay, _leading, _mergeParams } = options || {};\r\n let maxTimeoutId: number | undefined;\r\n let prevArguments: Parameters | null | undefined;\r\n let latestArguments: Parameters | null | undefined;\r\n let leadingInvoked: boolean | undefined;\r\n let clear = noop;\r\n\r\n const invokeFunctionToDebounce = function (args: Parameters) {\r\n clear();\r\n clearT(maxTimeoutId);\r\n leadingInvoked = maxTimeoutId = prevArguments = undefined;\r\n clear = noop;\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n functionToDebounce.apply(this, args);\r\n };\r\n\r\n const mergeParms = (\r\n curr: Parameters\r\n ): Parameters | false | null | undefined =>\r\n _mergeParams && prevArguments ? _mergeParams(prevArguments, curr) : curr;\r\n\r\n const flush = () => {\r\n /* istanbul ignore next */\r\n if (clear !== noop) {\r\n invokeFunctionToDebounce(mergeParms(latestArguments!) || latestArguments!);\r\n }\r\n };\r\n\r\n const debouncedFn = function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n const args: Parameters = from(arguments) as Parameters;\r\n const finalTimeout = isFunction(_timeout) ? _timeout() : _timeout;\r\n const hasTimeout = isNumber(finalTimeout) && finalTimeout >= 0;\r\n\r\n if (hasTimeout) {\r\n const finalMaxWait = isFunction(_maxDelay) ? _maxDelay() : _maxDelay;\r\n const hasMaxWait = isNumber(finalMaxWait) && finalMaxWait >= 0;\r\n const setTimeoutFn = finalTimeout > 0 ? setT : rAF!;\r\n const clearTimeoutFn = finalTimeout > 0 ? clearT : cAF!;\r\n const mergeParamsResult = mergeParms(args);\r\n const invokedArgs = mergeParamsResult || args;\r\n const boundInvoke = invokeFunctionToDebounce.bind(0, invokedArgs);\r\n let timeoutId: number | undefined;\r\n\r\n // if (!mergeParamsResult) {\r\n // invokeFunctionToDebounce(prevArguments || args);\r\n // }\r\n\r\n clear();\r\n if (_leading && !leadingInvoked) {\r\n boundInvoke();\r\n leadingInvoked = true;\r\n // @ts-ignore\r\n timeoutId = setTimeoutFn(() => (leadingInvoked = undefined), finalTimeout);\r\n } else {\r\n // @ts-ignore\r\n timeoutId = setTimeoutFn(boundInvoke, finalTimeout);\r\n\r\n if (hasMaxWait && !maxTimeoutId) {\r\n maxTimeoutId = setT(flush, finalMaxWait as number);\r\n }\r\n }\r\n\r\n clear = () => clearTimeoutFn(timeoutId as number);\r\n\r\n prevArguments = latestArguments = invokedArgs;\r\n } else {\r\n invokeFunctionToDebounce(args);\r\n }\r\n };\r\n debouncedFn._flush = flush;\r\n\r\n return debouncedFn as Debounced;\r\n};\r\n","import type { PlainObject } from '~/typings';\r\nimport { isArray, isFunction, isPlainObject, isNull } from './types';\r\nimport { each } from './array';\r\n\r\n/**\r\n * Determines whether the passed object has a property with the passed name.\r\n * @param obj The object.\r\n * @param prop The name of the property.\r\n */\r\nexport const hasOwnProperty = (obj: any, prop: string | number | symbol): boolean =>\r\n Object.prototype.hasOwnProperty.call(obj, prop);\r\n\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object.\r\n * @param obj The object of which the properties shall be returned.\r\n */\r\nexport const keys = (obj: any): Array => (obj ? Object.keys(obj) : []);\r\n\r\ntype AssignDeep = {\r\n (target: T, object1: U): T & U;\r\n (target: T, object1: U, object2: V): T & U & V;\r\n (target: T, object1: U, object2: V, object3: W): T & U & V & W;\r\n (target: T, object1: U, object2: V, object3: W, object4: X): T & U & V & W & X;\r\n (target: T, object1: U, object2: V, object3: W, object4: X, object5: Y): T &\r\n U &\r\n V &\r\n W &\r\n X &\r\n Y;\r\n (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n ): T & U & V & W & X & Y & Z;\r\n};\r\n\r\n// https://github.com/jquery/jquery/blob/master/src/core.js#L116\r\nexport const assignDeep: AssignDeep = (\r\n target: T,\r\n object1?: U,\r\n object2?: V,\r\n object3?: W,\r\n object4?: X,\r\n object5?: Y,\r\n object6?: Z\r\n): T & U & V & W & X & Y & Z => {\r\n const sources: Array = [object1, object2, object3, object4, object5, object6];\r\n\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if ((typeof target !== 'object' || isNull(target)) && !isFunction(target)) {\r\n target = {} as T;\r\n }\r\n\r\n each(sources, (source) => {\r\n // Extend the base object\r\n each(source, (_, key) => {\r\n const copy: any = source[key];\r\n\r\n // Prevent Object.prototype pollution\r\n // Prevent never-ending loop\r\n if (target === copy) {\r\n return true;\r\n }\r\n\r\n const copyIsArray = isArray(copy);\r\n\r\n // Recurse if we're merging plain objects or arrays\r\n if (copy && isPlainObject(copy)) {\r\n const src = target[key as keyof T];\r\n let clone: any = src;\r\n\r\n // Ensure proper type for the source value\r\n if (copyIsArray && !isArray(src)) {\r\n clone = [];\r\n } else if (!copyIsArray && !isPlainObject(src)) {\r\n clone = {};\r\n }\r\n\r\n // Never move original objects, clone them\r\n target[key as keyof T] = assignDeep(clone, copy) as any;\r\n } else {\r\n target[key as keyof T] = copyIsArray ? copy.slice() : copy;\r\n }\r\n });\r\n });\r\n\r\n // Return the modified object\r\n return target as any;\r\n};\r\n\r\nexport const removeUndefinedProperties = (target: T, deep?: boolean): T =>\r\n each(assignDeep({}, target), (value, key, copy) => {\r\n if (value === undefined) {\r\n delete copy[key];\r\n } else if (deep && value && isPlainObject(value)) {\r\n copy[key as keyof typeof copy] = removeUndefinedProperties(value, deep) as any;\r\n }\r\n });\r\n\r\n/**\r\n * Returns true if the given object is empty, false otherwise.\r\n * @param obj The Object.\r\n */\r\nexport const isEmptyObject = (obj: any): boolean => !keys(obj).length;\r\n","import { mathMax, mathMin } from './alias';\r\n\r\n/**\r\n * Caps the passed number between the `min` and `max` bounds.\r\n * @param min The min bound.\r\n * @param max The max bound.\r\n * @param number The number to be capped.\r\n * @returns The capped number between min and max.\r\n */\r\nexport const capNumber = (min: number, max: number, number: number) =>\r\n mathMax(min, mathMin(max, number));\r\n","import type { HTMLElementTarget } from './types';\r\nimport { bind, deduplicateArray, each, from, isArray } from '../utils';\r\n\r\nexport type AttributeElementTarget = HTMLElementTarget | Element;\r\n\r\nexport type DomTokens = string | string[] | false | null | undefined | void;\r\n\r\nexport const getDomTokensArray = (tokens: DomTokens) =>\r\n deduplicateArray((isArray(tokens) ? tokens : (tokens || '').split(' ')).filter((token) => token));\r\n\r\n/**\r\n * Gets a attribute with the given attribute of the given element.\r\n * @param elm The element of which the attribute shall be get.\r\n * @param attrName The attribute name which shall be get.\r\n * @returns The attribute value or `null` when the attribute is not set or `false` if the element is undefined.\r\n */\r\nexport const getAttr = (elm: AttributeElementTarget, attrName: string) =>\r\n elm && elm.getAttribute(attrName);\r\n\r\n/**\r\n * Returns whether the given attribute exists on the given element.\r\n * @param elm The element.\r\n * @param attrName The attribute.\r\n * @returns A Truthy value indicates a present attrubte.\r\n */\r\nexport const hasAttr = (elm: AttributeElementTarget, attrName: string) =>\r\n elm && elm.hasAttribute(attrName);\r\n\r\n/**\r\n * Sets the given attributes to the given element.\r\n * @param elm The element of which the attributes shall be removed.\r\n * @param attrName The attribute names separated by a space.\r\n */\r\nexport const setAttrs = (\r\n elm: AttributeElementTarget,\r\n attrNames: string | string[],\r\n value: string | number | false | null | undefined\r\n) => {\r\n each(getDomTokensArray(attrNames), (attrName) => {\r\n elm && elm.setAttribute(attrName, String(value || ''));\r\n });\r\n};\r\n\r\n/**\r\n * Removes the given attributes from the given element.\r\n * @param elm The element of which the attribute shall be removed.\r\n * @param attrName The attribute names separated by a space.\r\n */\r\nexport const removeAttrs = (elm: AttributeElementTarget, attrNames: string | string[]): void => {\r\n each(getDomTokensArray(attrNames), (attrName) => elm && elm.removeAttribute(attrName));\r\n};\r\n\r\nexport const domTokenListAttr = (elm: AttributeElementTarget, attrName: string) => {\r\n const initialArr = getDomTokensArray(getAttr(elm, attrName));\r\n const setElmAttr = bind(setAttrs, elm, attrName);\r\n const domTokenListOperation = (operationTokens: DomTokens, operation: 'add' | 'delete') => {\r\n const initialArrSet = new Set(initialArr);\r\n each(getDomTokensArray(operationTokens), (token) => {\r\n initialArrSet[operation](token);\r\n });\r\n return from(initialArrSet).join(' ');\r\n };\r\n\r\n return {\r\n _remove: (removeTokens: DomTokens) => setElmAttr(domTokenListOperation(removeTokens, 'delete')),\r\n _add: (addTokens: DomTokens) => setElmAttr(domTokenListOperation(addTokens, 'add')),\r\n _has: (hasTokens: DomTokens) => {\r\n const tokenSet = getDomTokensArray(hasTokens);\r\n return tokenSet.reduce(\r\n (boolean, token) => boolean && initialArr.includes(token),\r\n tokenSet.length > 0\r\n );\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and removes the given value from it.\r\n * @param elm The element.\r\n * @param attrName The attributeName to which the value shall be removed.\r\n * @param value The value which shall be removed.\r\n */\r\nexport const removeAttrClass = (\r\n elm: AttributeElementTarget,\r\n attrName: string,\r\n value: DomTokens\r\n): (() => void) => {\r\n domTokenListAttr(elm, attrName)._remove(value);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n return bind(addAttrClass, elm, attrName, value);\r\n};\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and adds value to it.\r\n * @param elm The element.\r\n * @param attrName The attributeName to which the value shall be added.\r\n * @param value The value which shall be added.\r\n */\r\nexport const addAttrClass = (\r\n elm: AttributeElementTarget,\r\n attrName: string,\r\n value: DomTokens\r\n): (() => void) => {\r\n domTokenListAttr(elm, attrName)._add(value);\r\n return bind(removeAttrClass, elm, attrName, value);\r\n};\r\n\r\nexport const addRemoveAttrClass = (\r\n elm: AttributeElementTarget,\r\n attrName: string,\r\n value: DomTokens,\r\n add?: boolean\r\n) => (add ? addAttrClass : removeAttrClass)(elm, attrName, value);\r\n\r\n/**\r\n * Treats the given attribute like the \"class\" attribute and checks if the given value is in it.\r\n * @param elm The element.\r\n * @param attrName The attributeName from which the content shall be checked.\r\n * @param value The value.\r\n * @returns True if the given attribute has the value in it, false otherwise.\r\n */\r\nexport const hasAttrClass = (\r\n elm: AttributeElementTarget,\r\n attrName: string,\r\n value: DomTokens\r\n): boolean => domTokenListAttr(elm, attrName)._has(value);\r\n","import type { AttributeElementTarget, DomTokens } from './attribute';\r\nimport { each, from } from '../utils/array';\r\nimport { bind } from '../utils/function';\r\nimport { domTokenListAttr } from './attribute';\r\n\r\nconst createDomTokenListClass = (elm: AttributeElementTarget) => domTokenListAttr(elm, 'class');\r\n\r\n/**\r\n * Check whether the given element has the given class name(s).\r\n * @param elm The element.\r\n * @param className The class name(s).\r\n */\r\nexport const hasClass = (elm: AttributeElementTarget, className: DomTokens): boolean =>\r\n createDomTokenListClass(elm)._has(className);\r\n\r\n/**\r\n * Removes the given class name(s) from the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be removed. (separated by spaces)\r\n */\r\nexport const removeClass = (elm: AttributeElementTarget, className: DomTokens): void => {\r\n createDomTokenListClass(elm)._remove(className);\r\n};\r\n\r\n/**\r\n * Adds the given class name(s) to the given element.\r\n * @param elm The element.\r\n * @param className The class name(s) which shall be added. (separated by spaces)\r\n * @returns A function which removes the added class name(s).\r\n */\r\nexport const addClass = (elm: AttributeElementTarget, className: DomTokens): (() => void) => {\r\n createDomTokenListClass(elm)._add(className);\r\n return bind(removeClass, elm, className);\r\n};\r\n\r\n/**\r\n * Takes two className strings, compares them and returns the difference as array.\r\n * @param classNameA ClassName A.\r\n * @param classNameB ClassName B.\r\n */\r\nexport const diffClass = (\r\n classNameA: string | false | null | undefined,\r\n classNameB: string | false | null | undefined\r\n) => {\r\n const set = new Set(classNameA ? classNameA.split(' ') : []);\r\n\r\n each(classNameB ? classNameB.split(' ') : [], (className) => {\r\n set.has(className) ? set.delete(className) : set.add(className);\r\n });\r\n\r\n return from(set);\r\n};\r\n","import type { NodeElementTarget } from './types';\r\nimport { isElement } from '../utils/types';\r\nimport { push, from } from '../utils/array';\r\n\r\n/**\r\n * Find all elements with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nexport const find = (selector: string, elm?: NodeElementTarget): Element[] => {\r\n const rootElm = elm ? isElement(elm) && elm : document;\r\n return rootElm ? from(rootElm.querySelectorAll(selector)) : [];\r\n};\r\n\r\n/**\r\n * Find the first element with the passed selector, outgoing (and including) the passed element or the document if no element was provided.\r\n * @param selector The selector which has to be searched by.\r\n * @param elm The element from which the search shall be outgoing.\r\n */\r\nexport const findFirst = (selector: string, elm?: NodeElementTarget): NodeElementTarget => {\r\n const rootElm = elm ? isElement(elm) && elm : document;\r\n return rootElm && rootElm.querySelector(selector);\r\n};\r\n\r\n/**\r\n * Determines whether the passed element is matching with the passed selector.\r\n * @param elm The element which has to be compared with the passed selector.\r\n * @param selector The selector which has to be compared with the passed element. Additional selectors: ':visible' and ':hidden'.\r\n */\r\nexport const is = (elm: NodeElementTarget, selector: string): boolean =>\r\n isElement(elm) && elm.matches(selector);\r\n\r\nexport const isBodyElement = (elm: NodeElementTarget) => is(elm, 'body'); // don't do targetElement === ownerDocument.body in case initialization happens in memory\r\n\r\n/**\r\n * Returns the children (no text-nodes or comments) of the passed element which are matching the passed selector. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the children shall be returned.\r\n * @param selector The selector which must match with the children elements.\r\n */\r\nexport const children = (elm: NodeElementTarget, selector?: string): ReadonlyArray => {\r\n const childs: Array = [];\r\n\r\n return isElement(elm)\r\n ? push(\r\n childs,\r\n from(elm.children).filter((child) => (selector ? is(child, selector) : child))\r\n )\r\n : childs;\r\n};\r\n\r\n/**\r\n * Returns the childNodes (incl. text-nodes or comments etc.) of the passed element. An empty array is returned if the passed element is null.\r\n * @param elm The element of which the childNodes shall be returned.\r\n */\r\nexport const contents = (elm: NodeElementTarget): ReadonlyArray =>\r\n elm ? from(elm.childNodes) : [];\r\n\r\n/**\r\n * Returns the parent element of the passed element, or null if the passed element is null.\r\n * @param elm The element of which the parent element shall be returned.\r\n */\r\nexport const parent = (elm: NodeElementTarget): NodeElementTarget => elm && elm.parentElement;\r\n\r\n/**\r\n * Returns the closest element to the passed element which matches the given selector.\r\n * @param elm The element.\r\n * @param selector The selector.\r\n * @returns The closest element to the passed element which matches the given selector.\r\n */\r\nexport const closest = (elm: NodeElementTarget, selector: string): NodeElementTarget =>\r\n isElement(elm) && elm.closest(selector);\r\n\r\n/**\r\n * Gets the focused element of the passed or default document.\r\n * @returns The focused element of the passed document.\r\n */\r\nexport const getFocusedElement = (doc?: Document) => (doc || document).activeElement;\r\n\r\n/**\r\n * Determines whether the given element lies between two selectors in the DOM.\r\n * @param elm The element.\r\n * @param highBoundarySelector The high boundary selector.\r\n * @param deepBoundarySelector The deep boundary selector.\r\n */\r\nexport const liesBetween = (\r\n elm: NodeElementTarget,\r\n highBoundarySelector: string,\r\n deepBoundarySelector: string\r\n): boolean => {\r\n const closestHighBoundaryElm = closest(elm, highBoundarySelector);\r\n const closestDeepBoundaryElm = elm && findFirst(deepBoundarySelector, closestHighBoundaryElm);\r\n const deepBoundaryIsValid =\r\n closest(closestDeepBoundaryElm, highBoundarySelector) === closestHighBoundaryElm;\r\n\r\n return closestHighBoundaryElm && closestDeepBoundaryElm\r\n ? closestHighBoundaryElm === elm ||\r\n closestDeepBoundaryElm === elm ||\r\n (deepBoundaryIsValid &&\r\n closest(closest(elm, deepBoundarySelector), highBoundarySelector) !==\r\n closestHighBoundaryElm)\r\n : false;\r\n};\r\n","import type { NodeElementTarget, NodeElementTargetCollection } from './types';\r\nimport { createOrKeepArray, each } from '../utils/array';\r\nimport { parent } from './traversal';\r\nimport { bind } from '../utils';\r\n\r\n/**\r\n * Removes the given Nodes from their parent.\r\n * @param nodes The Nodes which shall be removed.\r\n */\r\nexport const removeElements = (nodes: NodeElementTargetCollection): void => {\r\n each(createOrKeepArray(nodes), (node) => {\r\n const parentElm = parent(node);\r\n node && parentElm && parentElm.removeChild(node);\r\n });\r\n};\r\n\r\n/**\r\n * Appends the given children at the end of the given Node.\r\n * @param node The Node to which the children shall be appended.\r\n * @param children The Nodes which shall be appended.\r\n * @returns A function which removes the inserted nodes.\r\n */\r\nexport const appendChildren = (node: NodeElementTarget, children: NodeElementTargetCollection) =>\r\n bind(\r\n removeElements,\r\n node &&\r\n children &&\r\n each(createOrKeepArray(children), (child) => {\r\n child && node.appendChild(child);\r\n })\r\n );\r\n","import { each } from '../utils/array';\r\nimport { setAttrs } from './attribute';\r\nimport { contents } from './traversal';\r\nimport { removeElements } from './manipulation';\r\n\r\n/**\r\n * Creates a div DOM node.\r\n */\r\nexport const createDiv = (classNames?: string): HTMLDivElement => {\r\n const div = document.createElement('div');\r\n setAttrs(div, 'class', classNames);\r\n return div;\r\n};\r\n\r\n/**\r\n * Creates DOM nodes modeled after the passed html string and returns the root dom nodes as a array.\r\n * @param html The html string after which the DOM nodes shall be created.\r\n */\r\nexport const createDOM = (html: string): ReadonlyArray => {\r\n const createdDiv = createDiv();\r\n createdDiv.innerHTML = html.trim();\r\n\r\n return each(contents(createdDiv), (elm) => removeElements(elm));\r\n};\r\n","import type { PlainObject, StyleObject, StyleObjectKey, StyleObjectValue } from '~/typings';\r\nimport type { XY } from './offset';\r\nimport type { HTMLElementTarget } from './types';\r\nimport { wnd } from '../utils/alias';\r\nimport { each, from } from '../utils/array';\r\nimport { isString, isNumber, isObject, isNull, isBoolean } from '../utils/types';\r\n\r\nexport interface TRBL {\r\n t: number;\r\n r: number;\r\n b: number;\r\n l: number;\r\n}\r\n\r\nconst getCSSVal = (computedStyle: CSSStyleDeclaration, prop: StyleObjectKey): string =>\r\n computedStyle.getPropertyValue(prop) || computedStyle[prop as any] || '';\r\n\r\nconst validFiniteNumber = (number: number) => {\r\n const notNaN = number || 0;\r\n return isFinite(notNaN) ? notNaN : 0;\r\n};\r\n\r\nconst parseToZeroOrNumber = (value?: string): number => validFiniteNumber(parseFloat(value || ''));\r\n\r\nexport const roundCssNumber = (value: number) => Math.round(value * 10000) / 10000;\r\n\r\nexport const ratioToCssPercent = (ratio: number) =>\r\n `${roundCssNumber(validFiniteNumber(ratio) * 100)}%`;\r\n\r\nexport const numberToCssPx = (number: number) => `${roundCssNumber(validFiniteNumber(number))}px`;\r\n\r\nexport function setStyles(\r\n elm: HTMLElementTarget,\r\n styles: StyleObject | false | null | undefined\r\n): void {\r\n elm &&\r\n styles &&\r\n each(styles, (rawValue: StyleObjectValue, name) => {\r\n try {\r\n const elmStyle = elm.style;\r\n const value =\r\n isNull(rawValue) || isBoolean(rawValue)\r\n ? ''\r\n : isNumber(rawValue)\r\n ? numberToCssPx(rawValue)\r\n : rawValue;\r\n\r\n if (name.indexOf('--') === 0) {\r\n elmStyle.setProperty(name, value);\r\n } else {\r\n elmStyle[name as any] = value;\r\n }\r\n } catch {}\r\n });\r\n}\r\n\r\nexport function getStyles(\r\n elm: HTMLElementTarget,\r\n styles: Array | ReadonlyArray,\r\n pseudoElm?: string | null | undefined\r\n): Partial>;\r\nexport function getStyles(\r\n elm: HTMLElementTarget,\r\n styles: StyleObjectKey,\r\n pseudoElm?: string | null | undefined\r\n): string;\r\nexport function getStyles(\r\n elm: HTMLElementTarget,\r\n styles: Array | ReadonlyArray | StyleObjectKey,\r\n pseudoElm?: string | null | undefined\r\n): Partial> | string {\r\n const getSingleStyle = isString(styles);\r\n let getStylesResult: string | PlainObject = getSingleStyle ? '' : {};\r\n\r\n if (elm) {\r\n const computedStyle = wnd.getComputedStyle(elm, pseudoElm) || elm.style;\r\n getStylesResult = getSingleStyle\r\n ? getCSSVal(computedStyle, styles)\r\n : from(styles).reduce((result, key) => {\r\n result[key] = getCSSVal(computedStyle, key);\r\n return result;\r\n }, getStylesResult as PlainObject);\r\n }\r\n return getStylesResult;\r\n}\r\n\r\n/**\r\n * Returns the top right bottom left values of the passed css property.\r\n * @param elm The element of which the values shall be returned.\r\n * @param propertyPrefix The css property prefix. (e.g. \"border\")\r\n * @param propertySuffix The css property suffix. (e.g. \"width\")\r\n */\r\nexport const topRightBottomLeft = (\r\n elm?: HTMLElementTarget,\r\n propertyPrefix?: string,\r\n propertySuffix?: string\r\n): TRBL => {\r\n const finalPrefix = propertyPrefix ? `${propertyPrefix}-` : '';\r\n const finalSuffix = propertySuffix ? `-${propertySuffix}` : '';\r\n const top = `${finalPrefix}top${finalSuffix}` as StyleObjectKey;\r\n const right = `${finalPrefix}right${finalSuffix}` as StyleObjectKey;\r\n const bottom = `${finalPrefix}bottom${finalSuffix}` as StyleObjectKey;\r\n const left = `${finalPrefix}left${finalSuffix}` as StyleObjectKey;\r\n const result = getStyles(elm, [top, right, bottom, left]);\r\n return {\r\n t: parseToZeroOrNumber(result[top]),\r\n r: parseToZeroOrNumber(result[right]),\r\n b: parseToZeroOrNumber(result[bottom]),\r\n l: parseToZeroOrNumber(result[left]),\r\n };\r\n};\r\n\r\nexport const getTrasformTranslateValue = (\r\n value: string | number | XY,\r\n isHorizontal?: boolean\r\n) =>\r\n `translate${\r\n isObject(value) ? `(${value.x},${value.y})` : `${isHorizontal ? 'X' : 'Y'}(${value})`\r\n }`;\r\n","import type { HTMLElementTarget } from './types';\r\nimport { getStyles } from './style';\r\nimport { mathRound, wnd } from '../utils/alias';\r\nimport { bind } from '../utils/function';\r\nimport { strHeight, strWidth } from '../utils/strings';\r\n\r\nexport interface WH {\r\n w: T;\r\n h: T;\r\n}\r\n\r\nconst elementHasDimensions = (elm: HTMLElement): boolean =>\r\n !!(elm.offsetWidth || elm.offsetHeight || elm.getClientRects().length);\r\nconst zeroObj: WH = {\r\n w: 0,\r\n h: 0,\r\n};\r\n\r\nconst getElmWidthHeightProperty = (\r\n property: E extends HTMLElement ? 'client' | 'offset' | 'scroll' : 'inner',\r\n elm: E | false | null | undefined\r\n): Readonly =>\r\n elm\r\n ? {\r\n w: (elm as any)[`${property}Width`],\r\n h: (elm as any)[`${property}Height`],\r\n }\r\n : zeroObj;\r\n\r\n/**\r\n * Returns the window inner- width and height.\r\n */\r\nexport const getWindowSize = (customWnd?: Window): Readonly =>\r\n getElmWidthHeightProperty('inner', customWnd || wnd);\r\n\r\n/**\r\n * Returns the scroll- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the scroll- width and height shall be returned.\r\n */\r\nexport const getOffsetSize = bind(getElmWidthHeightProperty, 'offset') satisfies (\r\n elm: HTMLElementTarget\r\n) => Readonly;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const getClientSize = bind(getElmWidthHeightProperty, 'client') satisfies (\r\n elm: HTMLElementTarget\r\n) => Readonly;\r\n\r\n/**\r\n * Returns the client- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the client- width and height shall be returned.\r\n */\r\nexport const getScrollSize = bind(getElmWidthHeightProperty, 'scroll') satisfies (\r\n elm: HTMLElementTarget\r\n) => Readonly;\r\n\r\n/**\r\n * Returns the fractional- width and height of the passed element. If the element is null the width and height values are 0.\r\n * @param elm The element of which the fractional- width and height shall be returned.\r\n */\r\nexport const getFractionalSize = (elm: HTMLElementTarget): Readonly => {\r\n const cssWidth = parseFloat(getStyles(elm, strWidth)) || 0;\r\n const cssHeight = parseFloat(getStyles(elm, strHeight)) || 0;\r\n return {\r\n w: cssWidth - mathRound(cssWidth),\r\n h: cssHeight - mathRound(cssHeight),\r\n };\r\n};\r\n\r\n/**\r\n * Returns the BoundingClientRect of the passed element.\r\n * @param elm The element of which the BoundingClientRect shall be returned.\r\n */\r\nexport const getBoundingClientRect = (elm: HTMLElement): DOMRect => elm.getBoundingClientRect();\r\n\r\n/**\r\n * Determines whether the passed element has any dimensions.\r\n * @param elm The element.\r\n */\r\nexport const hasDimensions = (elm: HTMLElementTarget): boolean =>\r\n !!elm && elementHasDimensions(elm);\r\n\r\n/**\r\n * Determines whether the passed DOM Rect has any dimensions.\r\n */\r\nexport const domRectHasDimensions = (rect?: DOMRectReadOnly | false | null) =>\r\n !!(rect && (rect[strHeight] || rect[strWidth]));\r\n\r\n/**\r\n * Determines whether current DOM Rect has appeared according the the previous dom rect..\r\n * @param currContentRect The current DOM Rect.\r\n * @param prevContentRect The previous DOM Rect.\r\n * @returns Whether the dom rect appeared.\r\n */\r\nexport const domRectAppeared = (\r\n currContentRect: DOMRectReadOnly | false | null | undefined,\r\n prevContentRect: DOMRectReadOnly | false | null | undefined\r\n) => {\r\n const rectHasDimensions = domRectHasDimensions(currContentRect);\r\n const rectHadDimensions = domRectHasDimensions(prevContentRect);\r\n return !rectHadDimensions && rectHasDimensions;\r\n};\r\n","import type { DomTokens } from './attribute';\r\nimport { each, runEachAndClear } from '../utils/array';\r\nimport { bind } from '../utils/function';\r\nimport { keys } from '../utils';\r\nimport { getDomTokensArray } from './attribute';\r\n\r\nexport interface EventListenerOptions {\r\n _capture?: boolean;\r\n _passive?: boolean;\r\n _once?: boolean;\r\n}\r\n\r\nexport type EventListenerTarget = EventTarget | false | null | undefined;\r\n\r\nexport type EventListenerMap = {\r\n [eventNames: string]: ((event: any) => any) | false | null | undefined;\r\n};\r\n\r\n/**\r\n * Removes the passed event listener for the passed event names with the passed options.\r\n * @param target The element from which the listener shall be removed.\r\n * @param eventNames The eventsnames for which the listener shall be removed.\r\n * @param listener The listener which shall be removed.\r\n * @param capture The options of the removed listener.\r\n */\r\nexport const removeEventListener = (\r\n target: EventListenerTarget,\r\n eventNames: DomTokens,\r\n listener: (event: T) => any,\r\n capture?: boolean\r\n): void => {\r\n each(getDomTokensArray(eventNames), (eventName) => {\r\n target && target.removeEventListener(eventName, listener as EventListener, capture);\r\n });\r\n};\r\n\r\n/**\r\n * Adds the passed event listener for the passed event names with the passed options.\r\n * @param target The element to which the listener shall be added.\r\n * @param eventNames The eventsnames for which the listener shall be called.\r\n * @param listener The listener which is called on the eventnames.\r\n * @param options The options of the added listener.\r\n */\r\nexport const addEventListener = (\r\n target: EventListenerTarget,\r\n eventNames: DomTokens,\r\n listener: ((event: T) => any) | false | null | undefined,\r\n options?: EventListenerOptions\r\n): (() => void) => {\r\n const passive = (options && options._passive) ?? true;\r\n const capture = (options && options._capture) || false;\r\n const once = (options && options._once) || false;\r\n const nativeOptions: AddEventListenerOptions = {\r\n passive,\r\n capture,\r\n };\r\n\r\n return bind(\r\n runEachAndClear,\r\n getDomTokensArray(eventNames).map((eventName) => {\r\n const finalListener = (\r\n once\r\n ? (evt: T) => {\r\n removeEventListener(target, eventName, finalListener, capture);\r\n listener && listener(evt);\r\n }\r\n : listener\r\n ) as EventListener;\r\n\r\n target && target.addEventListener(eventName, finalListener, nativeOptions);\r\n return bind(removeEventListener, target, eventName, finalListener, capture);\r\n })\r\n );\r\n};\r\n\r\n/**\r\n * Adds the passed event listeners for the passed event names with the passed options.\r\n * @param target The element to which the listener shall be added.\r\n * @param eventListenerMap A map which descirbes the event names and event listeners to be added.\r\n * @param options The options of the added listeners.\r\n */\r\nexport const addEventListeners = (\r\n target: EventListenerTarget,\r\n eventListenerMap: EventListenerMap,\r\n options?: EventListenerOptions\r\n): (() => void) =>\r\n bind(\r\n runEachAndClear,\r\n keys(eventListenerMap).map((eventNames) =>\r\n addEventListener(target, eventNames, eventListenerMap[eventNames], options)\r\n )\r\n );\r\n\r\n/**\r\n * Shorthand for the stopPropagation event Method.\r\n * @param evt The event of which the stopPropagation method shall be called.\r\n */\r\nexport const stopPropagation = (evt: Event): void => evt.stopPropagation();\r\n\r\n/**\r\n * Shorthand for the preventDefault event Method.\r\n * @param evt The event of which the preventDefault method shall be called.\r\n */\r\nexport const preventDefault = (evt: Event): void => evt.preventDefault();\r\n\r\n/**\r\n * Shorthand for the stopPropagation and preventDefault event Method.\r\n * @param evt The event of which the stopPropagation and preventDefault methods shall be called.\r\n */\r\nexport const stopAndPrevent = (evt: Event): void =>\r\n (stopPropagation(evt) as undefined) || (preventDefault(evt) as undefined);\r\n","import type { XY } from './offset';\r\nimport type { WH } from './dimensions';\r\nimport { capNumber, isNumber, mathAbs, mathSign } from '../utils';\r\n\r\nexport interface ScrollCoordinates {\r\n /** The start (origin) scroll coordinates for each axis. */\r\n _start: XY;\r\n /** The end scroll coordinates for each axis. */\r\n _end: XY;\r\n}\r\n\r\n/**\r\n * Scroll the passed element to the passed position.\r\n * @param elm The element to be scrolled.\r\n * @param position The scroll position.\r\n */\r\nexport const scrollElementTo = (\r\n elm: HTMLElement,\r\n position: Partial> | number | false | null | undefined\r\n): void => {\r\n const { x, y } = isNumber(position) ? { x: position, y: position } : position || {};\r\n isNumber(x) && (elm.scrollLeft = x);\r\n isNumber(y) && (elm.scrollTop = y);\r\n};\r\n\r\n/**\r\n * Scroll the passed element to the passed position.\r\n * @param elm The element to be scrolled.\r\n * @param position The scroll position.\r\n */\r\nexport const getElementScroll = (elm: HTMLElement): Readonly => ({\r\n x: elm.scrollLeft,\r\n y: elm.scrollTop,\r\n});\r\n\r\n/**\r\n * Scroll Coordinates which are 0.\r\n */\r\nexport const getZeroScrollCoordinates = (): ScrollCoordinates => ({\r\n _start: { x: 0, y: 0 },\r\n _end: { x: 0, y: 0 },\r\n});\r\n\r\n/**\r\n * Sanatizes raw scroll coordinates.\r\n * The passed `overflowAmount` is used as the \"max\" value for each axis if the sign of the raw max value is not `0`.\r\n * Makes sure that each axis has `0` either in the start or end coordinates.\r\n * @param rawScrollCoordinates The raw scroll coordinates.\r\n * @param overflowAmount The overflow amount.\r\n * @returns\r\n */\r\nexport const sanitizeScrollCoordinates = (\r\n rawScrollCoordinates: ScrollCoordinates,\r\n overflowAmount: WH\r\n) => {\r\n const { _start, _end } = rawScrollCoordinates;\r\n const { w, h } = overflowAmount;\r\n const sanitizeAxis = (start: number, end: number, amount: number) => {\r\n let newStart = mathSign(start) * amount;\r\n let newEnd = mathSign(end) * amount;\r\n\r\n if (newStart === newEnd) {\r\n const startAbs = mathAbs(start);\r\n const endAbs = mathAbs(end);\r\n\r\n newEnd = startAbs > endAbs ? 0 : newEnd;\r\n newStart = startAbs < endAbs ? 0 : newStart;\r\n }\r\n\r\n // in doubt set start to 0\r\n newStart = newStart === newEnd ? 0 : newStart;\r\n\r\n return [newStart + 0, newEnd + 0] as const; // \"+ 0\" prevents \"-0\" to be in the result\r\n };\r\n\r\n const [startX, endX] = sanitizeAxis(_start.x, _end.x, w);\r\n const [startY, endY] = sanitizeAxis(_start.y, _end.y, h);\r\n\r\n return {\r\n _start: {\r\n x: startX,\r\n y: startY,\r\n },\r\n _end: {\r\n x: endX,\r\n y: endY,\r\n },\r\n };\r\n};\r\n\r\n/**\r\n * Returns whether the passed scroll coordinates represent the browsers default scroll direction.\r\n * For the default scroll direction the following must be true:\r\n * 1. Start value is `0`.\r\n * 2. End value <= Start value.\r\n * @param scrollCoordinates The scroll coordinates.\r\n */\r\nexport const isDefaultDirectionScrollCoordinates = ({\r\n _start,\r\n _end,\r\n}: ScrollCoordinates): XY => {\r\n const getAxis = (start: number, end: number) => start === 0 && start <= end;\r\n\r\n return {\r\n x: getAxis(_start.x, _end.x),\r\n y: getAxis(_start.y, _end.y),\r\n };\r\n};\r\n\r\n/**\r\n * Gets the current scroll percent between 0..1 for each axis.\r\n * @param scrollCoordinates The scroll coordinates.\r\n * @param currentScroll The current scroll position of the element.\r\n */\r\nexport const getScrollCoordinatesPercent = (\r\n { _start, _end }: ScrollCoordinates,\r\n currentScroll: XY\r\n) => {\r\n const getAxis = (start: number, end: number, current: number) =>\r\n capNumber(0, 1, (start - current) / (start - end) || 0);\r\n\r\n return {\r\n x: getAxis(_start.x, _end.x, currentScroll.x),\r\n y: getAxis(_start.y, _end.y, currentScroll.y),\r\n };\r\n};\r\n\r\n/**\r\n * Gets the scroll position of the given percent.\r\n * @param scrollCoordinates The scroll coordinates.\r\n * @param percent The percentage of the scroll.\r\n */\r\nexport const getScrollCoordinatesPosition = (\r\n { _start, _end }: ScrollCoordinates,\r\n percent: XY\r\n) => {\r\n const getAxis = (start: number, end: number, p: number) => start + (end - start) * p;\r\n\r\n return {\r\n x: getAxis(_start.x, _end.x, percent.x),\r\n y: getAxis(_start.y, _end.y, percent.y),\r\n };\r\n};\r\n","import type { NodeElementTarget } from './types';\r\n\r\nexport const focusElement = (element: NodeElementTarget) => {\r\n if (element && (element as HTMLElement).focus) {\r\n (element as HTMLElement).focus({ preventScroll: true });\r\n }\r\n};\r\n","import { isBoolean, isFunction, isString } from './utils/types';\r\nimport { keys } from './utils/object';\r\nimport { each, push, from, isEmptyArray, runEachAndClear, createOrKeepArray } from './utils/array';\r\nimport { bind } from './utils/function';\r\n\r\nexport type EventListener, N extends keyof EventArgs> = (\r\n ...args: EventArgs[N]\r\n) => void;\r\n\r\nexport type EventListeners> = {\r\n [K in keyof EventArgs]?: EventListener | EventListener[] | null;\r\n};\r\n\r\nexport type RemoveEvent> = {\r\n (name?: N, listener?: EventListener): void;\r\n (name?: N, listener?: EventListener[]): void;\r\n (\r\n name?: N,\r\n listener?: EventListener | EventListener[]\r\n ): void;\r\n};\r\n\r\nexport type AddEvent> = {\r\n (eventListeners: EventListeners, pure?: boolean): () => void;\r\n (name: N, listener: EventListener): () => void;\r\n (name: N, listener: EventListener[]): () => void;\r\n (\r\n nameOrEventListeners: N | EventListeners,\r\n listener?: EventListener | EventListener[] | boolean\r\n ): () => void;\r\n};\r\n\r\nexport type TriggerEvent> = {\r\n (name: N, args: EventArgs[N]): void;\r\n};\r\n\r\nexport type EventListenerHub> = [\r\n AddEvent,\r\n RemoveEvent,\r\n TriggerEvent\r\n];\r\n\r\nconst manageListener = , N extends keyof EventArgs>(\r\n callback: (listener?: EventListener) => void,\r\n listener?: EventListener | EventListener[]\r\n) => {\r\n each(createOrKeepArray(listener), callback);\r\n};\r\n\r\nexport const createEventListenerHub = >(\r\n initialEventListeners?: EventListeners\r\n): EventListenerHub => {\r\n const events = new Map>>();\r\n\r\n const removeEvent: RemoveEvent = (name, listener) => {\r\n if (name) {\r\n const eventSet = events.get(name);\r\n manageListener((currListener) => {\r\n if (eventSet) {\r\n eventSet[currListener ? 'delete' : 'clear'](currListener! as any);\r\n }\r\n }, listener);\r\n } else {\r\n events.forEach((eventSet) => {\r\n eventSet.clear();\r\n });\r\n events.clear();\r\n }\r\n };\r\n\r\n const addEvent: AddEvent = (\r\n nameOrEventListeners: keyof EventArgs | EventListeners,\r\n listenerOrPure?:\r\n | EventListener\r\n | EventListener[]\r\n | boolean\r\n ) => {\r\n if (isString(nameOrEventListeners)) {\r\n const eventSet = events.get(nameOrEventListeners) || new Set();\r\n events.set(nameOrEventListeners, eventSet);\r\n\r\n manageListener((currListener) => {\r\n isFunction(currListener) && eventSet.add(currListener);\r\n }, listenerOrPure as Exclude);\r\n\r\n return bind(\r\n removeEvent,\r\n nameOrEventListeners,\r\n listenerOrPure as Exclude\r\n );\r\n }\r\n if (isBoolean(listenerOrPure) && listenerOrPure) {\r\n removeEvent();\r\n }\r\n\r\n const eventListenerKeys = keys(nameOrEventListeners) as (keyof EventListeners)[];\r\n const offFns: (() => void)[] = [];\r\n each(eventListenerKeys, (key) => {\r\n const eventListener = (nameOrEventListeners as EventListeners)[key];\r\n eventListener && push(offFns, addEvent(key, eventListener));\r\n });\r\n\r\n return bind(runEachAndClear, offFns);\r\n };\r\n\r\n const triggerEvent: TriggerEvent = (name, args) => {\r\n each(from(events.get(name)), (event) => {\r\n if (args && !isEmptyArray(args)) {\r\n (event as (...eventArgs: EventArgs[keyof EventArgs]) => void).apply(0, args);\r\n } else {\r\n (event as () => void)();\r\n }\r\n });\r\n };\r\n\r\n addEvent(initialEventListeners || {});\r\n\r\n return [addEvent, removeEvent, triggerEvent];\r\n};\r\n","import {\r\n assignDeep,\r\n each,\r\n isObject,\r\n keys,\r\n isArray,\r\n hasOwnProperty,\r\n isFunction,\r\n isEmptyObject,\r\n concat,\r\n} from '~/support';\r\nimport type { DeepPartial, DeepReadonly } from '~/typings';\r\n\r\nexport type OptionsField = string;\r\n\r\nexport type OptionsPrimitiveValue =\r\n | boolean\r\n | number\r\n | string\r\n | Array\r\n | ReadonlyArray\r\n | [any]\r\n | [any, ...any[]]\r\n | ((this: any, ...args: any[]) => any)\r\n | null;\r\n\r\nexport type OptionsObject = {\r\n [field: OptionsField]: OptionsPrimitiveValue | OptionsObject;\r\n};\r\n\r\ntype OptionsObjectFieldNameTuples = T extends OptionsPrimitiveValue\r\n ? []\r\n : {\r\n [K in Extract]: [K, ...OptionsObjectFieldNameTuples];\r\n }[Extract];\r\n\r\ntype JoinOptionsObjectFieldTuples<\r\n T extends OptionsField[],\r\n IncompletePath extends boolean = false\r\n> = T extends [infer F]\r\n ? F\r\n : T extends [infer F, ...infer R]\r\n ? F extends OptionsField\r\n ?\r\n | (IncompletePath extends true ? F : never)\r\n | `${F}.${JoinOptionsObjectFieldTuples>}`\r\n : never\r\n : OptionsField;\r\n\r\ntype SplitJoinedOptionsObjectFieldTuples = string extends S\r\n ? OptionsField[]\r\n : S extends ''\r\n ? []\r\n : S extends `${infer T}.${infer U}`\r\n ? [T, ...SplitJoinedOptionsObjectFieldTuples]\r\n : [S];\r\n\r\ntype OptionsObjectFieldTuplesType = T extends [infer F]\r\n ? F extends keyof O\r\n ? O[F]\r\n : never\r\n : T extends [infer F, ...infer R]\r\n ? F extends keyof O\r\n ? O[F] extends OptionsPrimitiveValue\r\n ? O[F]\r\n : OptionsObjectFieldTuplesType>\r\n : never\r\n : never;\r\n\r\ntype OptionsObjectFieldPath = JoinOptionsObjectFieldTuples<\r\n OptionsObjectFieldNameTuples,\r\n true\r\n>;\r\n\r\ntype OptionsObjectFieldPathType<\r\n O extends OptionsObject,\r\n P extends string\r\n> = OptionsObjectFieldTuplesType>;\r\n\r\nconst opsStringify = (value: any) =>\r\n JSON.stringify(value, (_, val) => {\r\n if (isFunction(val)) {\r\n throw 0;\r\n }\r\n return val;\r\n });\r\n\r\nconst getPropByPath = (obj: any, path: string): T =>\r\n obj\r\n ? `${path}`\r\n .split('.')\r\n .reduce((o, prop) => (o && hasOwnProperty(o, prop) ? o[prop] : undefined), obj)\r\n : undefined;\r\n\r\n/**\r\n * The overflow behavior of an axis.\r\n */\r\nexport type OverflowBehavior =\r\n /** No scrolling is possible and the content is clipped. */\r\n | 'hidden'\r\n /** No scrolling is possible and the content isn't clipped. */\r\n | 'visible'\r\n /** Scrolling is possible if there is an overflow. */\r\n | 'scroll'\r\n /**\r\n * If the other axis has no overflow the behavior is similar to `visible`.\r\n * If the other axis has overflow the behavior is similar to `hidden`.\r\n */\r\n | 'visible-hidden'\r\n /**\r\n * If the other axis has no overflow the behavior is similar to `visible`.\r\n * If the other axis has overflow the behavior is similar to `scroll`.\r\n */\r\n | 'visible-scroll';\r\n\r\n/**\r\n * The scrollbars visibility behavior.\r\n */\r\nexport type ScrollbarsVisibilityBehavior =\r\n /** The scrollbars are always visible. */\r\n | 'visible'\r\n /** The scrollbars are always hidden. */\r\n | 'hidden'\r\n /** The scrollbars are only visibile if there is overflow. */\r\n | 'auto';\r\n\r\n/**\r\n * The scrollbars auto hide behavior\r\n */\r\nexport type ScrollbarsAutoHideBehavior =\r\n /** The scrollbars are never hidden automatically. */\r\n | 'never'\r\n /** The scrollbars are hidden unless the user scrolls. */\r\n | 'scroll'\r\n /** The scrollbars are hidden unless the pointer moves in the host element or the user scrolls. */\r\n | 'move'\r\n /** The scrollbars are hidden if the pointer leaves the host element or unless the user scrolls. */\r\n | 'leave';\r\n\r\n/**\r\n * The options of a OverlayScrollbars instance.\r\n */\r\nexport type Options = {\r\n /** Whether the padding shall be absolute. */\r\n paddingAbsolute: boolean;\r\n /** Whether to show the native scrollbars. Has only an effect it the native scrollbars are overlaid. */\r\n showNativeOverlaidScrollbars: boolean;\r\n /** Customizes the automatic update behavior. */\r\n update: {\r\n /**\r\n * The given Event(s) from the elements with the given selector(s) will trigger an update.\r\n * Useful for everything the MutationObserver and ResizeObserver can't detect\r\n * e.g.: and Images `load` event or the `transitionend` / `animationend` events.\r\n */\r\n elementEvents: Array<[elementSelector: string, eventNames: string]> | null;\r\n /**\r\n * The debounce which is used to detect content changes.\r\n * If a tuple is provided you can customize the `timeout` and the `maxWait` in milliseconds.\r\n * If a single number customizes only the `timeout`.\r\n *\r\n * If the `timeout` is `0`, a debounce still exists. (its executed via `requestAnimationFrame`).\r\n */\r\n debounce: [timeout: number, maxWait: number] | number | null;\r\n /**\r\n * HTML attributes which will trigger an update if they're changed.\r\n * Basic attributes like `id`, `class`, `style` etc. are always observed and doesn't have to be added explicitly.\r\n */\r\n attributes: string[] | null;\r\n /**\r\n * A function which makes it possible to ignore a content mutation or null if nothing shall be ignored.\r\n * @param mutation The MutationRecord from the MutationObserver.\r\n * @returns A Truthy value if the mutation shall be ignored, a falsy value otherwise.\r\n */\r\n ignoreMutation: ((mutation: MutationRecord) => any) | null;\r\n };\r\n /** Customizes the overflow behavior per axis. */\r\n overflow: {\r\n /** The overflow behavior of the horizontal (x) axis. */\r\n x: OverflowBehavior;\r\n /** The overflow behavior of the vertical (y) axis. */\r\n y: OverflowBehavior;\r\n };\r\n /** Customizes appearance of the scrollbars. */\r\n scrollbars: {\r\n /**\r\n * The scrollbars theme.\r\n * The theme value will be added as `class` to all `scrollbar` elements of the instance.\r\n */\r\n theme: string | null;\r\n /** The scrollbars visibility behavior. */\r\n visibility: ScrollbarsVisibilityBehavior;\r\n /** The scrollbars auto hide behavior. */\r\n autoHide: ScrollbarsAutoHideBehavior;\r\n /** The scrollbars auto hide delay in milliseconds. */\r\n autoHideDelay: number;\r\n /** Whether the scrollbars auto hide behavior is suspended until a scroll happened. */\r\n autoHideSuspend: boolean;\r\n /** Whether its possible to drag the handle of a scrollbar to scroll the viewport. */\r\n dragScroll: boolean;\r\n /** Whether its possible to click the track of a scrollbar to scroll the viewport. */\r\n clickScroll: boolean;\r\n /**\r\n * An array of pointer types which shall be supported.\r\n * Common pointer types are: `mouse`, `pen` and `touch`.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType\r\n */\r\n pointers: string[] | null;\r\n };\r\n};\r\n\r\nexport type ReadonlyOptions = DeepReadonly;\r\n\r\nexport type PartialOptions = DeepPartial;\r\n\r\nexport type OptionsCheckFn =

    >(\r\n path: P\r\n) => [value: OptionsObjectFieldPathType, changed: boolean];\r\n\r\nexport const defaultOptions: ReadonlyOptions = {\r\n paddingAbsolute: false,\r\n showNativeOverlaidScrollbars: false,\r\n update: {\r\n elementEvents: [['img', 'load']],\r\n debounce: [0, 33],\r\n attributes: null,\r\n ignoreMutation: null,\r\n },\r\n overflow: {\r\n x: 'scroll',\r\n y: 'scroll',\r\n },\r\n scrollbars: {\r\n theme: 'os-theme-dark',\r\n visibility: 'auto',\r\n autoHide: 'never',\r\n autoHideDelay: 1300,\r\n autoHideSuspend: false,\r\n dragScroll: true,\r\n clickScroll: false,\r\n pointers: ['mouse', 'touch', 'pen'],\r\n },\r\n} satisfies OptionsObject & Options;\r\n\r\nexport const getOptionsDiff = (currOptions: T, newOptions: DeepPartial): DeepPartial => {\r\n const diff: DeepPartial = {};\r\n const optionsKeys = concat(keys(newOptions), keys(currOptions)) as Array<\r\n keyof T & keyof DeepPartial\r\n >;\r\n\r\n each(optionsKeys, (optionKey) => {\r\n const currOptionValue = currOptions[optionKey];\r\n const newOptionValue = newOptions[optionKey];\r\n\r\n if (isObject(currOptionValue) && isObject(newOptionValue)) {\r\n assignDeep((diff[optionKey] = {} as any), getOptionsDiff(currOptionValue, newOptionValue));\r\n // delete empty nested objects\r\n if (isEmptyObject(diff[optionKey])) {\r\n delete diff[optionKey];\r\n }\r\n } else if (hasOwnProperty(newOptions, optionKey) && newOptionValue !== currOptionValue) {\r\n let isDiff = true;\r\n\r\n if (isArray(currOptionValue) || isArray(newOptionValue)) {\r\n try {\r\n if (opsStringify(currOptionValue) === opsStringify(newOptionValue)) {\r\n isDiff = false;\r\n }\r\n } catch {}\r\n }\r\n\r\n if (isDiff) {\r\n // @ts-ignore\r\n diff[optionKey] = newOptionValue;\r\n }\r\n }\r\n });\r\n\r\n return diff;\r\n};\r\n\r\nexport const createOptionCheck =\r\n (\r\n options: T,\r\n changedOptions: DeepPartial,\r\n force?: boolean\r\n ): OptionsCheckFn =>\r\n (path) =>\r\n [getPropByPath(options, path), force || getPropByPath(changedOptions, path) !== undefined];\r\n","import { strOverflowX, strOverflowY } from './support';\r\n\r\nconst dataAttributePrefix = `data-overlayscrollbars`;\r\n\r\n// environment\r\nexport const classNameEnvironment = 'os-environment';\r\nexport const classNameEnvironmentScrollbarHidden = `${classNameEnvironment}-scrollbar-hidden`;\r\n\r\n// initialize\r\nexport const dataAttributeInitialize = `${dataAttributePrefix}-initialize`;\r\n\r\n// shared\r\nexport const dataValueNoClipping = 'noClipping';\r\n\r\n// body\r\nexport const dataAttributeHtmlBody = `${dataAttributePrefix}-body`;\r\n\r\n// host\r\nexport const dataAttributeHost = dataAttributePrefix;\r\nexport const dataValueHostIsHost = 'host';\r\n\r\n// viewport\r\nexport const dataAttributeViewport = `${dataAttributePrefix}-viewport`;\r\nexport const dataValueViewportOverflowXPrefix = strOverflowX;\r\nexport const dataValueViewportOverflowYPrefix = strOverflowY;\r\nexport const dataValueViewportArrange = 'arrange';\r\nexport const dataValueViewportMeasuring = 'measuring';\r\nexport const dataValueViewportScrolling = 'scrolling';\r\nexport const dataValueViewportScrollbarHidden = 'scrollbarHidden';\r\nexport const dataValueViewportNoContent = 'noContent';\r\n\r\n// padding\r\nexport const dataAttributePadding = `${dataAttributePrefix}-padding`;\r\n\r\n// content\r\nexport const dataAttributeContent = `${dataAttributePrefix}-content`;\r\n\r\n// size observer\r\nexport const classNameSizeObserver = 'os-size-observer';\r\nexport const classNameSizeObserverAppear = `${classNameSizeObserver}-appear`;\r\nexport const classNameSizeObserverListener = `${classNameSizeObserver}-listener`;\r\nexport const classNameSizeObserverListenerScroll = `${classNameSizeObserverListener}-scroll`;\r\nexport const classNameSizeObserverListenerItem = `${classNameSizeObserverListener}-item`;\r\nexport const classNameSizeObserverListenerItemFinal = `${classNameSizeObserverListenerItem}-final`;\r\n\r\n// trinsic observer\r\nexport const classNameTrinsicObserver = 'os-trinsic-observer';\r\n\r\n// scrollbars\r\nexport const classNameScrollbarThemeNone = 'os-theme-none';\r\nexport const classNameScrollbar = 'os-scrollbar';\r\nexport const classNameScrollbarRtl = `${classNameScrollbar}-rtl`;\r\nexport const classNameScrollbarHorizontal = `${classNameScrollbar}-horizontal`;\r\nexport const classNameScrollbarVertical = `${classNameScrollbar}-vertical`;\r\nexport const classNameScrollbarTrack = `${classNameScrollbar}-track`;\r\nexport const classNameScrollbarHandle = `${classNameScrollbar}-handle`;\r\nexport const classNameScrollbarVisible = `${classNameScrollbar}-visible`;\r\nexport const classNameScrollbarCornerless = `${classNameScrollbar}-cornerless`;\r\nexport const classNameScrollbarTransitionless = `${classNameScrollbar}-transitionless`;\r\nexport const classNameScrollbarInteraction = `${classNameScrollbar}-interaction`;\r\nexport const classNameScrollbarUnusable = `${classNameScrollbar}-unusable`;\r\nexport const classNameScrollbarAutoHide = `${classNameScrollbar}-auto-hide`;\r\nexport const classNameScrollbarAutoHideHidden = `${classNameScrollbarAutoHide}-hidden`;\r\nexport const classNameScrollbarWheel = `${classNameScrollbar}-wheel`;\r\nexport const classNameScrollbarTrackInteractive = `${classNameScrollbarTrack}-interactive`;\r\nexport const classNameScrollbarHandleInteractive = `${classNameScrollbarHandle}-interactive`;\r\n","let nonce: string | undefined;\r\n\r\nexport const getNonce = () => nonce;\r\nexport const setNonce = (newNonce: string | undefined) => {\r\n nonce = newNonce;\r\n};\r\n","import {\r\n createDOM,\r\n addClass,\r\n appendChildren,\r\n getFractionalSize,\r\n getClientSize,\r\n getOffsetSize,\r\n removeAttrs,\r\n removeElements,\r\n assignDeep,\r\n createCache,\r\n equalXY,\r\n createEventListenerHub,\r\n scrollT,\r\n bind,\r\n wnd,\r\n getStyles,\r\n isBodyElement,\r\n isFunction,\r\n addEventListener,\r\n} from '~/support';\r\nimport { classNameEnvironment, classNameEnvironmentScrollbarHidden } from '~/classnames';\r\nimport { defaultOptions } from '~/options';\r\nimport type { XY, EventListener } from '~/support';\r\nimport type { Options, PartialOptions } from '~/options';\r\nimport type { Initialization, PartialInitialization } from '~/initialization';\r\nimport type { StyleObjectKey } from './typings';\r\nimport { getNonce } from './nonce';\r\n\r\ntype EnvironmentEventArgs = {\r\n r: [scrollbarSizeChanged?: boolean];\r\n};\r\n\r\nexport interface Env {\r\n readonly _nativeScrollbarsSize: XY;\r\n readonly _nativeScrollbarsOverlaid: XY;\r\n readonly _nativeScrollbarsHiding: boolean;\r\n readonly _scrollTimeline: boolean;\r\n readonly _staticDefaultInitialization: Initialization;\r\n readonly _staticDefaultOptions: Options;\r\n _addResizeListener(listener: EventListener): () => void;\r\n _getDefaultInitialization(): Initialization;\r\n _setDefaultInitialization(newInitialization: PartialInitialization): Initialization;\r\n _getDefaultOptions(): Options;\r\n _setDefaultOptions(newDefaultOptions: PartialOptions): Options;\r\n}\r\n\r\nlet environmentInstance: Env;\r\n\r\nconst createEnvironment = (): Env => {\r\n const getNativeScrollbarSize = (\r\n measureElm: HTMLElement,\r\n measureElmChild: HTMLElement,\r\n clear?: boolean\r\n ): XY => {\r\n // fix weird safari issue where getComputedStyle returns all empty styles by appending twice\r\n appendChildren(document.body, measureElm);\r\n appendChildren(document.body, measureElm);\r\n\r\n const cSize = getClientSize(measureElm);\r\n const oSize = getOffsetSize(measureElm);\r\n const fSize = getFractionalSize(measureElmChild);\r\n\r\n clear && removeElements(measureElm);\r\n\r\n return {\r\n x: oSize.h - cSize.h + fSize.h,\r\n y: oSize.w - cSize.w + fSize.w,\r\n };\r\n };\r\n\r\n const getNativeScrollbarsHiding = (testElm: HTMLElement): boolean => {\r\n let result = false;\r\n const revertClass = addClass(testElm, classNameEnvironmentScrollbarHidden);\r\n try {\r\n result =\r\n getStyles(testElm, 'scrollbar-width' as StyleObjectKey) === 'none' ||\r\n getStyles(testElm, 'display', '::-webkit-scrollbar') === 'none';\r\n } catch {}\r\n revertClass();\r\n return result;\r\n };\r\n\r\n // changes to this styles need to be reflected in the \"hide native scrollbars\" section of the structure styles\r\n const envStyle = `.${classNameEnvironment}{scroll-behavior:auto!important;position:fixed;opacity:0;visibility:hidden;overflow:scroll;height:200px;width:200px;z-index:-1}.${classNameEnvironment} div{width:200%;height:200%;margin:10px 0}.${classNameEnvironmentScrollbarHidden}{scrollbar-width:none!important}.${classNameEnvironmentScrollbarHidden}::-webkit-scrollbar,.${classNameEnvironmentScrollbarHidden}::-webkit-scrollbar-corner{appearance:none!important;display:none!important;width:0!important;height:0!important}`;\r\n const envDOM = createDOM(\r\n `

    `\r\n );\r\n const envElm = envDOM[0] as HTMLElement;\r\n const envChildElm = envElm.firstChild as HTMLElement;\r\n const styleElm = envElm.lastChild as HTMLStyleElement;\r\n const nonce = getNonce();\r\n\r\n if (nonce) {\r\n styleElm.nonce = nonce;\r\n }\r\n\r\n const [addEvent, , triggerEvent] = createEventListenerHub();\r\n const [updateNativeScrollbarSizeCache, getNativeScrollbarSizeCache] = createCache(\r\n {\r\n _initialValue: getNativeScrollbarSize(envElm, envChildElm),\r\n _equal: equalXY,\r\n },\r\n bind(getNativeScrollbarSize, envElm, envChildElm, true)\r\n );\r\n const [nativeScrollbarsSize] = getNativeScrollbarSizeCache();\r\n const nativeScrollbarsHiding = getNativeScrollbarsHiding(envElm);\r\n const nativeScrollbarsOverlaid = {\r\n x: nativeScrollbarsSize.x === 0,\r\n y: nativeScrollbarsSize.y === 0,\r\n };\r\n const staticDefaultInitialization: Initialization = {\r\n elements: {\r\n host: null,\r\n padding: !nativeScrollbarsHiding,\r\n viewport: (target) => nativeScrollbarsHiding && isBodyElement(target) && target,\r\n content: false,\r\n },\r\n scrollbars: {\r\n slot: true,\r\n },\r\n cancel: {\r\n nativeScrollbarsOverlaid: false,\r\n body: null,\r\n },\r\n };\r\n const staticDefaultOptions = assignDeep({}, defaultOptions);\r\n const getDefaultOptions = bind(\r\n assignDeep as typeof assignDeep,\r\n {} as Options,\r\n staticDefaultOptions\r\n );\r\n const getDefaultInitialization = bind(\r\n assignDeep as typeof assignDeep,\r\n {} as Initialization,\r\n staticDefaultInitialization\r\n );\r\n\r\n const env: Env = {\r\n _nativeScrollbarsSize: nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid: nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding: nativeScrollbarsHiding,\r\n _scrollTimeline: !!scrollT,\r\n _addResizeListener: bind(addEvent, 'r'),\r\n _getDefaultInitialization: getDefaultInitialization,\r\n _setDefaultInitialization: (newInitializationStrategy) =>\r\n assignDeep(staticDefaultInitialization, newInitializationStrategy) &&\r\n getDefaultInitialization(),\r\n _getDefaultOptions: getDefaultOptions,\r\n _setDefaultOptions: (newDefaultOptions) =>\r\n assignDeep(staticDefaultOptions, newDefaultOptions) && getDefaultOptions(),\r\n _staticDefaultInitialization: assignDeep({}, staticDefaultInitialization),\r\n _staticDefaultOptions: assignDeep({}, staticDefaultOptions),\r\n };\r\n\r\n removeAttrs(envElm, 'style');\r\n removeElements(envElm);\r\n\r\n // needed in case content has css viewport units\r\n addEventListener(wnd, 'resize', () => {\r\n triggerEvent('r', []);\r\n });\r\n\r\n if (\r\n isFunction(wnd.matchMedia) &&\r\n !nativeScrollbarsHiding &&\r\n (!nativeScrollbarsOverlaid.x || !nativeScrollbarsOverlaid.y)\r\n ) {\r\n const addZoomListener = (onZoom: () => void) => {\r\n const media = wnd.matchMedia(`(resolution: ${wnd.devicePixelRatio}dppx)`);\r\n addEventListener(\r\n media,\r\n 'change',\r\n () => {\r\n onZoom();\r\n addZoomListener(onZoom);\r\n },\r\n {\r\n _once: true,\r\n }\r\n );\r\n };\r\n addZoomListener(() => {\r\n const [updatedNativeScrollbarSize, nativeScrollbarSizeChanged] =\r\n updateNativeScrollbarSizeCache();\r\n\r\n assignDeep(env._nativeScrollbarsSize, updatedNativeScrollbarSize); // keep the object and just re-assign!\r\n triggerEvent('r', [nativeScrollbarSizeChanged]);\r\n });\r\n }\r\n\r\n return env;\r\n};\r\n\r\nexport const getEnvironment = (): Env => {\r\n if (!environmentInstance) {\r\n environmentInstance = createEnvironment();\r\n }\r\n return environmentInstance;\r\n};\r\n","import { isFunction, isHTMLElement, isNull, isUndefined } from '~/support';\r\nimport { getEnvironment } from '~/environment';\r\nimport type { DeepPartial } from '~/typings';\r\n\r\ntype FallbackStaticInitializtationElement = Extract<\r\n StaticInitializationElement,\r\n (...args: Args) => any\r\n> extends (...args: infer P) => any\r\n ? (...args: P) => HTMLElement\r\n : never;\r\ntype FallbackDynamicInitializtationElement = Extract<\r\n DynamicInitializationElement,\r\n (...args: Args) => any\r\n> extends (...args: infer P) => any\r\n ? (...args: P) => HTMLElement\r\n : never;\r\n\r\nexport type StaticInitialization = HTMLElement | false | null;\r\nexport type DynamicInitialization = HTMLElement | boolean | null;\r\n\r\n/**\r\n * Static elements are elements which MUST be present in the final DOM.\r\n * If an `HTMLElement` is passed the passed element will be taken as the repsective element.\r\n * With `false`, `null` or `undefined` an appropriate element is generated automatically.\r\n */\r\nexport type StaticInitializationElement =\r\n /** A function which returns the the StaticInitialization value. */\r\n | ((...args: Args) => StaticInitialization)\r\n /** The StaticInitialization value. */\r\n | StaticInitialization;\r\n\r\n/**\r\n * Dynamic elements are elements which CAN be present in the final DOM.\r\n * If an `HTMLElement`is passed the passed element will be taken as the repsective element.\r\n * With `true` an appropriate element is generated automatically.\r\n * With `false`, `null` or `undefined` the element won't be in the DOM.\r\n */\r\nexport type DynamicInitializationElement =\r\n /** A function which returns the the DynamicInitialization value. */\r\n | ((...args: Args) => DynamicInitialization)\r\n /** The DynamicInitialization value. */\r\n | DynamicInitialization;\r\n\r\n/**\r\n * Describes how a OverlayScrollbar instance should initialize.\r\n */\r\nexport type Initialization = {\r\n /**\r\n * Customizes which elements are generated and used.\r\n * If a function is passed to any of the fields, it receives the `target` element as its argument.\r\n * Any passed function should be a \"pure\" function. (same input produces same output)\r\n */\r\n elements: {\r\n /**\r\n * Assign a custom element as the host element.\r\n * Only relevant if the target element is a Textarea.\r\n */\r\n host: StaticInitializationElement<[target: InitializationTargetElement]>;\r\n /** Assign a custom element as the viewport element. */\r\n viewport: StaticInitializationElement<[target: InitializationTargetElement]>;\r\n /** Assign a custom element as the padding element or force the element not to be generated. */\r\n padding: DynamicInitializationElement<[target: InitializationTargetElement]>;\r\n /** Assign a custom element as the content element or force the element not to be generated. */\r\n content: DynamicInitializationElement<[target: InitializationTargetElement]>;\r\n };\r\n /**\r\n * Customizes elements related to the scrollbars.\r\n * If a function is passed, it receives the `target`, `host` and `viewport` element as arguments.\r\n */\r\n scrollbars: {\r\n slot: DynamicInitializationElement<\r\n [target: InitializationTargetElement, host: HTMLElement, viewport: HTMLElement]\r\n >;\r\n };\r\n /**\r\n * Customizes the cancelation behavior.\r\n */\r\n cancel: {\r\n /** Whether the initialization shall be canceled if the native scrollbars are overlaid. */\r\n nativeScrollbarsOverlaid: boolean;\r\n /**\r\n * Whether the initialization shall be canceled if its applied to a body element.\r\n * With `true` an initialization is always canceled, with `false` its never canceled.\r\n * With `null` the initialization will only be canceled when the initialization would affect the browsers functionality. (window.scrollTo, mobile browser behavior etc.)\r\n */\r\n body: boolean | null;\r\n };\r\n};\r\n\r\nexport type PartialInitialization = DeepPartial;\r\n\r\n/** The initialization target element. */\r\nexport type InitializationTargetElement = HTMLElement; // | HTMLTextAreaElement;\r\n\r\n/**\r\n * The initialization target object.\r\n * OverlayScrollbars({ target: myElement }) is equivalent to OverlayScrollbars(myElement).\r\n */\r\nexport type InitializationTargetObject = PartialInitialization & {\r\n target: InitializationTargetElement;\r\n};\r\n\r\n/** The initialization target. */\r\nexport type InitializationTarget = InitializationTargetElement | InitializationTargetObject;\r\n\r\nexport const resolveInitialization = (\r\n args: any,\r\n value: any\r\n): T => (isFunction(value) ? value.apply(0, args) : value);\r\n\r\nexport const staticInitializationElement = (\r\n args: Args,\r\n fallbackStaticInitializationElement: FallbackStaticInitializtationElement,\r\n defaultStaticInitializationElement: StaticInitializationElement,\r\n staticInitializationElementValue?: StaticInitializationElement\r\n): HTMLElement => {\r\n const staticInitialization = isUndefined(staticInitializationElementValue)\r\n ? defaultStaticInitializationElement\r\n : staticInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n args,\r\n staticInitialization\r\n );\r\n return resolvedInitialization || fallbackStaticInitializationElement.apply(0, args);\r\n};\r\n\r\nexport const dynamicInitializationElement = (\r\n args: Args,\r\n fallbackDynamicInitializationElement: FallbackDynamicInitializtationElement,\r\n defaultDynamicInitializationElement: DynamicInitializationElement,\r\n dynamicInitializationElementValue?: DynamicInitializationElement\r\n): HTMLElement | false => {\r\n const dynamicInitialization = isUndefined(dynamicInitializationElementValue)\r\n ? defaultDynamicInitializationElement\r\n : dynamicInitializationElementValue;\r\n const resolvedInitialization = resolveInitialization(\r\n args,\r\n dynamicInitialization\r\n );\r\n return (\r\n !!resolvedInitialization &&\r\n (isHTMLElement(resolvedInitialization)\r\n ? resolvedInitialization\r\n : fallbackDynamicInitializationElement.apply(0, args))\r\n );\r\n};\r\n\r\nexport const cancelInitialization = (\r\n isBody: boolean,\r\n cancelInitializationValue?: DeepPartial | false | null | undefined\r\n): boolean => {\r\n const { nativeScrollbarsOverlaid, body } = cancelInitializationValue || {};\r\n const { _nativeScrollbarsOverlaid, _nativeScrollbarsHiding, _getDefaultInitialization } =\r\n getEnvironment();\r\n const { nativeScrollbarsOverlaid: defaultNativeScrollbarsOverlaid, body: defaultbody } =\r\n _getDefaultInitialization().cancel;\r\n\r\n const resolvedNativeScrollbarsOverlaid =\r\n nativeScrollbarsOverlaid ?? defaultNativeScrollbarsOverlaid;\r\n const resolvedDocumentScrollingElement = isUndefined(body) ? defaultbody : body;\r\n\r\n const finalNativeScrollbarsOverlaid =\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y) &&\r\n resolvedNativeScrollbarsOverlaid;\r\n const finalDocumentScrollingElement =\r\n isBody &&\r\n (isNull(resolvedDocumentScrollingElement)\r\n ? !_nativeScrollbarsHiding\r\n : resolvedDocumentScrollingElement);\r\n\r\n return !!finalNativeScrollbarsOverlaid || !!finalDocumentScrollingElement;\r\n};\r\n","import type { OverlayScrollbars } from '~/overlayscrollbars';\n\nconst targetInstanceMap: WeakMap = new WeakMap();\n\n/**\n * Adds the given OverlayScrollbars instance to the given element.\n * @param target The element which is the target of the OverlayScrollbars instance.\n * @param osInstance The OverlayScrollbars instance.\n */\nexport const addInstance = (target: Element, osInstance: OverlayScrollbars): void => {\n targetInstanceMap.set(target, osInstance);\n};\n\n/**\n * Removes a OverlayScrollbars instance from the given element.\n * @param target The element from which its OverlayScrollbars instance shall be removed.\n */\nexport const removeInstance = (target: Element): void => {\n targetInstanceMap.delete(target);\n};\n\n/**\n * Gets the OverlayScrollbars from the given element or undefined if it doesn't have one.\n * @param target The element of which its OverlayScrollbars instance shall be get.\n */\nexport const getInstance = (target: Element): OverlayScrollbars | undefined =>\n targetInstanceMap.get(target);\n","import {\r\n each,\r\n noop,\r\n debounce,\r\n MutationObserverConstructor,\r\n addEventListener,\r\n is,\r\n find,\r\n push,\r\n runEachAndClear,\r\n bind,\r\n isEmptyArray,\r\n deduplicateArray,\r\n inArray,\r\n concat,\r\n getAttr,\r\n isString,\r\n} from '~/support';\r\n\r\ntype DOMContentObserverCallback = (contentChangedThroughEvent: boolean) => any;\r\n\r\ntype DOMTargetObserverCallback = (targetChangedAttrs: string[], targetStyleChanged: boolean) => any;\r\n\r\ninterface DOMObserverOptionsBase {\r\n _attributes?: string[];\r\n /**\r\n * A function which can ignore a changed attribute if it returns true.\r\n * for DOMTargetObserver this applies to the changes to the observed target\r\n * for DOMContentObserver this applies to changes to nested targets -> nested targets are elements which match the \"_nestedTargetSelector\" selector\r\n */\r\n _ignoreTargetChange?: DOMObserverIgnoreTargetChange;\r\n}\r\n\r\ninterface DOMContentObserverOptions extends DOMObserverOptionsBase {\r\n _eventContentChange?: DOMObserverEventContentChange; // [selector, eventname(s) | function returning eventname(s)] -> eventnames divided by whitespaces\r\n _nestedTargetSelector?: string;\r\n _ignoreContentChange?: DOMObserverIgnoreContentChange; // function which will prevent marking certain dom changes as content change if it returns true\r\n}\r\n\r\ninterface DOMTargetObserverOptions extends DOMObserverOptionsBase {\r\n /**\r\n * Marks certain attributes as style changing, should be a subset of the _attributes prop.\r\n * Used to set the \"targetStyleChanged\" param in the DOMTargetObserverCallback.\r\n */\r\n _styleChangingAttributes?: string[] | readonly string[];\r\n}\r\n\r\ntype ContentChangeArrayItem = [selector?: string, eventNames?: string] | null | undefined;\r\n\r\nexport type DOMObserverEventContentChange =\r\n | Array\r\n | false\r\n | null\r\n | undefined;\r\n\r\nexport type DOMObserverIgnoreContentChange = (\r\n mutation: MutationRecord,\r\n isNestedTarget: boolean,\r\n domObserverTarget: HTMLElement,\r\n domObserverOptions?: DOMContentObserverOptions\r\n) => boolean;\r\n\r\nexport type DOMObserverIgnoreTargetChange = (\r\n target: Node,\r\n attributeName: string,\r\n oldAttributeValue: string | null,\r\n newAttributeValue: string | null\r\n) => boolean;\r\n\r\nexport type DOMObserverCallback = ContentObserver extends true\r\n ? DOMContentObserverCallback\r\n : DOMTargetObserverCallback;\r\n\r\nexport type DOMObserverOptions = ContentObserver extends true\r\n ? DOMContentObserverOptions\r\n : DOMTargetObserverOptions;\r\n\r\nexport type DOMObserver = [\r\n construct: () => () => void,\r\n update: () => void | false | Parameters>\r\n];\r\n\r\ntype EventContentChangeUpdateElement = (\r\n getElements?: (selector: string) => Node[],\r\n removed?: boolean\r\n) => void;\r\ntype EventContentChange = [destroy: () => void, updateElements: EventContentChangeUpdateElement];\r\n\r\n/**\r\n * Creates a set of helper functions to observe events of elements inside the target element.\r\n * @param target The target element of which the children elements shall be observed. (not only direct children but also nested ones)\r\n * @param eventContentChange The event content change array. (array of tuples: selector and eventname(s))\r\n * @param callback Callback which is called if one of the elements emits the corresponding event.\r\n * @returns A object which contains a set of helper functions to destroy and update the observation of elements.\r\n */\r\nconst createEventContentChange = (\r\n target: HTMLElement,\r\n callback: (...args: any) => any,\r\n eventContentChange?: DOMObserverEventContentChange\r\n): EventContentChange => {\r\n let destroyed = false;\r\n const map = eventContentChange ? new WeakMap any)[]>() : false; // weak map to prevent memory leak for detached elements\r\n const destroy = () => {\r\n destroyed = true;\r\n };\r\n const updateElements: EventContentChangeUpdateElement = (getElements) => {\r\n if (map && eventContentChange) {\r\n const eventElmList = eventContentChange.map((item) => {\r\n const [selector, eventNames] = item || [];\r\n const elements = eventNames && selector ? (getElements || find)(selector, target) : [];\r\n return [elements, eventNames] as const;\r\n });\r\n\r\n each(eventElmList, (item) =>\r\n each(item[0], (elm) => {\r\n const eventNames = item[1];\r\n const entries = map.get(elm) || [];\r\n const isTargetChild = target.contains(elm);\r\n\r\n if (isTargetChild && eventNames) {\r\n const removeListener = addEventListener(elm, eventNames, (event: Event) => {\r\n if (destroyed) {\r\n removeListener();\r\n map.delete(elm);\r\n } else {\r\n callback(event);\r\n }\r\n });\r\n map.set(elm, push(entries, removeListener));\r\n } else {\r\n runEachAndClear(entries);\r\n map.delete(elm);\r\n }\r\n })\r\n );\r\n }\r\n };\r\n\r\n updateElements();\r\n\r\n return [destroy, updateElements];\r\n};\r\n\r\n/**\r\n * Creates a DOM observer which observes DOM changes to either the target element or its children.\r\n * @param target The element which shall be observed.\r\n * @param isContentObserver Whether this observer is just observing the target or just the targets children. (not only direct children but also nested ones)\r\n * @param callback The callback which gets called if a change was detected.\r\n * @param options The options for DOM change detection.\r\n * @returns A object which represents the instance of the DOM observer.\r\n */\r\nexport const createDOMObserver = (\r\n target: HTMLElement,\r\n isContentObserver: ContentObserver,\r\n callback: DOMObserverCallback,\r\n options?: DOMObserverOptions\r\n): DOMObserver => {\r\n let isConnected = false;\r\n const {\r\n _attributes,\r\n _styleChangingAttributes,\r\n _eventContentChange,\r\n _nestedTargetSelector,\r\n _ignoreTargetChange,\r\n _ignoreContentChange,\r\n } = (options as DOMContentObserverOptions & DOMTargetObserverOptions) || {};\r\n const debouncedEventContentChange = debounce(\r\n () => isConnected && (callback as DOMContentObserverCallback)(true),\r\n { _timeout: 33, _maxDelay: 99 }\r\n );\r\n const [destroyEventContentChange, updateEventContentChangeElements] = createEventContentChange(\r\n target,\r\n debouncedEventContentChange,\r\n _eventContentChange\r\n );\r\n\r\n // MutationObserver\r\n const finalAttributes = _attributes || [];\r\n const finalStyleChangingAttributes = _styleChangingAttributes || [];\r\n const observedAttributes = concat(finalAttributes, finalStyleChangingAttributes);\r\n const observerCallback = (\r\n fromRecords: boolean,\r\n mutations: MutationRecord[]\r\n ): void | Parameters> => {\r\n if (!isEmptyArray(mutations)) {\r\n const ignoreTargetChange = _ignoreTargetChange || noop;\r\n const ignoreContentChange = _ignoreContentChange || noop;\r\n const totalChangedNodes: Node[] = [];\r\n const targetChangedAttrs: string[] = [];\r\n let targetStyleChanged: boolean | '' | null | undefined = false;\r\n let contentChanged: boolean | '' | null | undefined = false;\r\n let childListChanged: boolean | '' | null | undefined = false;\r\n\r\n each(mutations, (mutation) => {\r\n const {\r\n attributeName,\r\n target: mutationTarget,\r\n type,\r\n oldValue,\r\n addedNodes,\r\n removedNodes,\r\n } = mutation;\r\n const isAttributesType = type === 'attributes';\r\n const isChildListType = type === 'childList';\r\n const targetIsMutationTarget = target === mutationTarget;\r\n const isAttrChange = isAttributesType && attributeName;\r\n const newValue =\r\n isAttrChange && getAttr(mutationTarget as HTMLElement, attributeName || '');\r\n // narrow down attributeValue type to `string` or `null` but don't overwrite `` with `null`\r\n const attributeValue = isString(newValue) ? newValue : null;\r\n const attributeChanged = isAttrChange && oldValue !== attributeValue;\r\n const styleChangingAttrChanged =\r\n inArray(finalStyleChangingAttributes, attributeName) && attributeChanged;\r\n\r\n // if is content observer and something changed in children\r\n if (isContentObserver && (isChildListType || !targetIsMutationTarget)) {\r\n const contentAttrChanged = isAttributesType && attributeChanged;\r\n const isNestedTarget =\r\n contentAttrChanged &&\r\n _nestedTargetSelector &&\r\n is(mutationTarget, _nestedTargetSelector);\r\n const baseAssertion = isNestedTarget\r\n ? !ignoreTargetChange(mutationTarget, attributeName, oldValue, attributeValue)\r\n : !isAttributesType || contentAttrChanged;\r\n const contentFinalChanged =\r\n baseAssertion && !ignoreContentChange(mutation, !!isNestedTarget, target, options);\r\n\r\n each(addedNodes, (node) => push(totalChangedNodes, node));\r\n each(removedNodes, (node) => push(totalChangedNodes, node));\r\n\r\n contentChanged = contentChanged || contentFinalChanged;\r\n childListChanged = childListChanged || isChildListType;\r\n }\r\n // if is target observer and target attr changed\r\n if (\r\n !isContentObserver &&\r\n targetIsMutationTarget &&\r\n attributeChanged &&\r\n !ignoreTargetChange(mutationTarget, attributeName!, oldValue, attributeValue)\r\n ) {\r\n push(targetChangedAttrs, attributeName);\r\n targetStyleChanged = targetStyleChanged || styleChangingAttrChanged;\r\n }\r\n });\r\n\r\n // adds / removes the new elements from the event content change\r\n updateEventContentChangeElements((selector: string) =>\r\n deduplicateArray(totalChangedNodes).reduce((arr, node) => {\r\n push(arr, find(selector, node));\r\n return is(node, selector) ? push(arr, node) : arr;\r\n }, [])\r\n );\r\n\r\n if (isContentObserver) {\r\n !fromRecords && contentChanged && (callback as DOMContentObserverCallback)(false);\r\n return [false] satisfies Parameters> as Parameters<\r\n DOMObserverCallback\r\n >;\r\n }\r\n\r\n if (!isEmptyArray(targetChangedAttrs) || targetStyleChanged) {\r\n const args = [\r\n deduplicateArray(targetChangedAttrs),\r\n targetStyleChanged,\r\n ] satisfies Parameters & Parameters>;\r\n !fromRecords && (callback as DOMTargetObserverCallback).apply(0, args);\r\n\r\n return args as Parameters>;\r\n }\r\n }\r\n };\r\n const mutationObserver: MutationObserver = new MutationObserverConstructor!(\r\n bind(observerCallback, false)\r\n );\r\n\r\n return [\r\n () => {\r\n mutationObserver.observe(target, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n attributeFilter: observedAttributes,\r\n subtree: isContentObserver,\r\n childList: isContentObserver,\r\n characterData: isContentObserver,\r\n });\r\n isConnected = true;\r\n\r\n return () => {\r\n if (isConnected) {\r\n destroyEventContentChange();\r\n mutationObserver.disconnect();\r\n isConnected = false;\r\n }\r\n };\r\n },\r\n () => {\r\n if (isConnected) {\r\n debouncedEventContentChange._flush();\r\n return observerCallback(true, mutationObserver.takeRecords());\r\n }\r\n },\r\n ];\r\n};\r\n","import { each, keys } from '~/support';\r\nimport type { OverlayScrollbars, OverlayScrollbarsStatic } from '~/overlayscrollbars';\r\nimport type { EventListener, EventListenerArgs, EventListeners } from '..';\r\n\r\nexport type PluginModuleInstance = Record;\r\n\r\nexport type InstancePluginEvent = {\r\n /**\r\n * Adds event listeners to the instance.\r\n * @param eventListeners An object which contains the added listeners.\r\n * @returns Returns a function which removes the added listeners.\r\n */\r\n (eventListeners: EventListeners): () => void;\r\n /**\r\n * Adds a single event listener to the instance.\r\n * @param name The name of the event.\r\n * @param listener The listener which is invoked on that event.\r\n * @returns Returns a function which removes the added listeners.\r\n */\r\n (name: N, listener: EventListener): () => void;\r\n /**\r\n * Adds multiple event listeners to the instance.\r\n * @param name The name of the event.\r\n * @param listener The listeners which are invoked on that event.\r\n * @returns Returns a function which removes the added listeners.\r\n */\r\n (name: N, listener: EventListener[]): () => void;\r\n};\r\n\r\n/**\r\n * Describes a OverlayScrollbars plugin module.\r\n * Plugin modules must be side-effect free and deterministic. (same input produces same output)\r\n */\r\nexport type PluginModule<\r\n S extends PluginModuleInstance | void = PluginModuleInstance | void,\r\n I extends PluginModuleInstance | void = PluginModuleInstance | void\r\n> = (S extends PluginModuleInstance\r\n ? {\r\n /**\r\n * Creates a plugin which is bound to the static object.\r\n * The function will be called once with the static object as soon as the plugin is registered.\r\n * The plugin can add new methods or fields to the passed static object.\r\n * @param osStatic The static object the plugin is bound to.\r\n * @returns The plugins instance object or a falsy value if the plugin doesn't need any instance object.\r\n */\r\n static: (osStatic: OverlayScrollbarsStatic) => S | void;\r\n }\r\n : object) &\r\n (I extends PluginModuleInstance\r\n ? {\r\n /**\r\n * Creates a A plugin which is bound to an instance.\r\n * The function will be called each time a new instance is created.\r\n * The plugin can add new methods or fields to the passed instance object.\r\n * @param osInstance The instance object the plugin is bound to.\r\n * @param event A function which adds events to the instance which can't be removed from outside the plugin. (instance events added with the `on` function can be removed with the optional `pure` parameter)\r\n * @param osStatic The static object the plugin is bound to.\r\n * @returns The plugins instance object or a falsy value if the plugin doesn't need any instance object.\r\n */\r\n instance: (\r\n osInstance: OverlayScrollbars,\r\n event: InstancePluginEvent,\r\n osStatic: OverlayScrollbarsStatic\r\n ) => I | void;\r\n }\r\n : object);\r\n\r\n/**\r\n * Describes a OverlayScrollbar plugin.\r\n */\r\nexport type Plugin<\r\n Name extends string = string,\r\n S extends PluginModuleInstance | void = PluginModuleInstance | void,\r\n I extends PluginModuleInstance | void = PluginModuleInstance | void\r\n> = {\r\n /** The field is the plugins name. Plugin names must be globally unique, please choose wisely. */\r\n [pluginName in Name]: PluginModule;\r\n};\r\n\r\n/**\r\n * Describes a OverlayScrollbar plugin which has only a static module.\r\n */\r\nexport type StaticPlugin<\r\n Name extends string = string,\r\n T extends PluginModuleInstance = PluginModuleInstance\r\n> = Plugin;\r\n\r\n/**\r\n * Describes a OverlayScrollbar plugin which has only a instance module.\r\n */\r\nexport type InstancePlugin<\r\n Name extends string = string,\r\n T extends PluginModuleInstance = PluginModuleInstance\r\n> = Plugin;\r\n\r\n/**\r\n * Infers the type of the static modules instance of the passed plugin.\r\n */\r\nexport type InferStaticPluginModuleInstance = T extends StaticPlugin<\r\n infer Name\r\n>\r\n ? T[Name]['static'] extends (...args: any[]) => any\r\n ? ReturnType\r\n : void\r\n : void;\r\n\r\n/**\r\n * Infers the type of the instance modules instance of the passed plugin.\r\n */\r\nexport type InferInstancePluginModuleInstance = T extends InstancePlugin<\r\n infer Name\r\n>\r\n ? T[Name]['instance'] extends (...args: any[]) => any\r\n ? ReturnType\r\n : void\r\n : void;\r\n\r\n/** All registered plugin modules. */\r\nexport const pluginModules: Record = {};\r\n\r\n/** All static plugin module instances. */\r\nexport const staticPluginModuleInstances: Record = {};\r\n\r\n/**\r\n * Adds plugins.\r\n * @param addedPlugin The plugin(s) to add.\r\n * @returns The added plugin modules of the registered plugins.\r\n */\r\nexport const addPlugins = (addedPlugin: Plugin[]) => {\r\n each(addedPlugin, (plugin) =>\r\n each(plugin, (_, key) => {\r\n pluginModules[key] = plugin[key];\r\n })\r\n );\r\n};\r\n\r\nexport const registerPluginModuleInstances = (\r\n plugin: Plugin,\r\n staticObj: OverlayScrollbarsStatic,\r\n instanceInfo?: [\r\n instanceObj: OverlayScrollbars,\r\n event: InstancePluginEvent,\r\n instancePluginMap?: Record\r\n ]\r\n): Array =>\r\n keys(plugin).map((name) => {\r\n const { static: osStatic, instance: osInstance } = (\r\n plugin as Plugin\r\n )[name];\r\n const [instanceObj, event, instancePluginMap] = instanceInfo || [];\r\n const ctor = instanceInfo ? osInstance : osStatic;\r\n if (ctor) {\r\n const instance = instanceInfo\r\n ? (\r\n ctor as Extract<\r\n typeof ctor,\r\n (\r\n osInstance: OverlayScrollbars,\r\n event: InstancePluginEvent,\r\n osStatic: OverlayScrollbarsStatic\r\n ) => PluginModuleInstance | void\r\n >\r\n )(instanceObj!, event!, staticObj)\r\n : (\r\n ctor as Extract<\r\n typeof ctor,\r\n (osStatic: OverlayScrollbarsStatic) => PluginModuleInstance | void\r\n >\r\n )(staticObj);\r\n return ((instancePluginMap || staticPluginModuleInstances)[name] = instance);\r\n }\r\n });\r\n\r\nexport const getStaticPluginModuleInstance = (\r\n pluginModuleName: T extends StaticPlugin ? N : never\r\n): InferStaticPluginModuleInstance | undefined =>\r\n staticPluginModuleInstances[pluginModuleName] as InferStaticPluginModuleInstance | undefined;\r\n","import {\r\n createDOM,\r\n appendChildren,\r\n getOffsetSize,\r\n addEventListener,\r\n addClass,\r\n equalWH,\r\n cAF,\r\n rAF,\r\n stopPropagation,\r\n bind,\r\n scrollElementTo,\r\n strWidth,\r\n strHeight,\r\n setStyles,\r\n} from '~/support';\r\nimport {\r\n classNameSizeObserverListenerScroll,\r\n classNameSizeObserverListenerItem,\r\n classNameSizeObserverListenerItemFinal,\r\n} from '~/classnames';\r\nimport type { StaticPlugin } from '../plugins';\r\n\r\nexport const sizeObserverPluginName = '__osSizeObserverPlugin';\r\n\r\nexport const SizeObserverPlugin = /* @__PURE__ */ (() => ({\r\n [sizeObserverPluginName]: {\r\n static:\r\n () =>\r\n (\r\n listenerElement: HTMLElement,\r\n onSizeChangedCallback: (appear: boolean) => any,\r\n observeAppearChange: boolean | null | undefined\r\n ): [appearCallback: () => void, offFns: (() => any)[]] => {\r\n const scrollAmount = 3333333;\r\n const scrollEventName = 'scroll';\r\n const observerElementChildren = createDOM(\r\n `
    `\r\n );\r\n const observerElementChildrenRoot = observerElementChildren[0] as HTMLElement;\r\n const shrinkElement = observerElementChildrenRoot.lastChild as HTMLElement;\r\n const expandElement = observerElementChildrenRoot.firstChild as HTMLElement;\r\n const expandElementChild = expandElement?.firstChild as HTMLElement;\r\n\r\n let cacheSize = getOffsetSize(observerElementChildrenRoot);\r\n let currSize = cacheSize;\r\n let isDirty = false;\r\n let rAFId: number;\r\n\r\n const reset = () => {\r\n scrollElementTo(expandElement, scrollAmount);\r\n scrollElementTo(shrinkElement, scrollAmount);\r\n };\r\n const onResized = (appear?: unknown) => {\r\n rAFId = 0;\r\n if (isDirty) {\r\n cacheSize = currSize;\r\n onSizeChangedCallback(appear === true);\r\n }\r\n };\r\n const onScroll = (scrollEvent?: Event | false) => {\r\n currSize = getOffsetSize(observerElementChildrenRoot);\r\n isDirty = !scrollEvent || !equalWH(currSize, cacheSize);\r\n\r\n if (scrollEvent) {\r\n stopPropagation(scrollEvent);\r\n\r\n if (isDirty && !rAFId) {\r\n cAF!(rAFId);\r\n rAFId = rAF!(onResized);\r\n }\r\n } else {\r\n onResized(scrollEvent === false);\r\n }\r\n\r\n reset();\r\n };\r\n const destroyFns = [\r\n appendChildren(listenerElement, observerElementChildren),\r\n addEventListener(expandElement, scrollEventName, onScroll),\r\n addEventListener(shrinkElement, scrollEventName, onScroll),\r\n ];\r\n\r\n addClass(listenerElement, classNameSizeObserverListenerScroll);\r\n\r\n // lets assume that the divs will never be that large and a constant value is enough\r\n setStyles(expandElementChild, {\r\n [strWidth]: scrollAmount,\r\n [strHeight]: scrollAmount,\r\n });\r\n\r\n rAF!(reset);\r\n\r\n return [observeAppearChange ? bind(onScroll, false) : reset, destroyFns];\r\n },\r\n },\r\n}))() satisfies StaticPlugin;\r\n","import { strHidden, strScroll, strVisible } from '~/support';\r\nimport type { Env } from '~/environment';\r\nimport type { XY } from '~/support';\r\nimport type { Options, OptionsCheckFn, OverflowBehavior } from '~/options';\r\nimport type { OverflowStyle } from '~/typings';\r\n\r\nexport interface ViewportOverflowState {\r\n _overflowScroll: XY;\r\n _overflowStyle: XY;\r\n}\r\n\r\nexport const getShowNativeOverlaidScrollbars = (checkOption: OptionsCheckFn, env: Env) => {\r\n const { _nativeScrollbarsOverlaid } = env;\r\n const [showNativeOverlaidScrollbarsOption, showNativeOverlaidScrollbarsChanged] = checkOption(\r\n 'showNativeOverlaidScrollbars'\r\n );\r\n\r\n return [\r\n showNativeOverlaidScrollbarsOption &&\r\n _nativeScrollbarsOverlaid.x &&\r\n _nativeScrollbarsOverlaid.y,\r\n showNativeOverlaidScrollbarsChanged,\r\n ] as const;\r\n};\r\n\r\nexport const overflowIsVisible = (overflowBehavior: string) =>\r\n overflowBehavior.indexOf(strVisible) === 0;\r\n\r\n/**\r\n * Creates a viewport overflow state object.\r\n * @param hasOverflow The information whether an axis has overflow.\r\n * @param overflowBehavior The overflow behavior according to the options.\r\n * @returns A object which represents the newly set overflow state.\r\n */\r\nexport const createViewportOverflowState = (\r\n hasOverflow: Partial>,\r\n overflowBehavior: XY\r\n): ViewportOverflowState => {\r\n const getAxisOverflowStyle = (\r\n axisBehavior: OverflowBehavior,\r\n axisHasOverflow: boolean | undefined,\r\n perpendicularBehavior: OverflowBehavior,\r\n perpendicularOverflow: boolean | undefined\r\n ): OverflowStyle => {\r\n // convert behavior to style:\r\n // 'visible' -> 'hidden'\r\n // 'hidden' -> 'hidden'\r\n // 'scroll' -> 'scroll'\r\n // 'visible-hidden' -> 'hidden'\r\n // 'visible-scroll' -> 'scroll'\r\n const behaviorStyle =\r\n axisBehavior === strVisible\r\n ? strHidden\r\n : (axisBehavior.replace(`${strVisible}-`, '') as OverflowStyle);\r\n const axisOverflowVisible = overflowIsVisible(axisBehavior);\r\n const perpendicularOverflowVisible = overflowIsVisible(perpendicularBehavior);\r\n\r\n // if no axis has overflow set 'hidden'\r\n if (!axisHasOverflow && !perpendicularOverflow) {\r\n return strHidden;\r\n }\r\n\r\n // if both axis have a visible behavior ('visible', 'visible-hidden', 'visible-scroll') set 'visible'\r\n if (axisOverflowVisible && perpendicularOverflowVisible) {\r\n return strVisible;\r\n }\r\n\r\n // this this axis has a visible behavior\r\n if (axisOverflowVisible) {\r\n const nonPerpendicularOverflow = axisHasOverflow ? strVisible : strHidden;\r\n return axisHasOverflow && perpendicularOverflow\r\n ? behaviorStyle // if both axis have an overflow set ('hidden' or 'scroll')\r\n : nonPerpendicularOverflow; // if only this axis has an overflow set 'visible', if no axis has an overflow set 'hidden'\r\n }\r\n\r\n const nonOverflow =\r\n perpendicularOverflowVisible && perpendicularOverflow ? strVisible : strHidden;\r\n return axisHasOverflow\r\n ? behaviorStyle // if this axis has an overflow\r\n : nonOverflow; // if the perp. axis has a visible behavior and has an overflow set 'visible', otherwise set 'hidden'\r\n };\r\n\r\n const _overflowStyle = {\r\n x: getAxisOverflowStyle(overflowBehavior.x, hasOverflow.x, overflowBehavior.y, hasOverflow.y),\r\n y: getAxisOverflowStyle(overflowBehavior.y, hasOverflow.y, overflowBehavior.x, hasOverflow.x),\r\n };\r\n\r\n return {\r\n _overflowStyle,\r\n _overflowScroll: {\r\n x: _overflowStyle.x === strScroll,\r\n y: _overflowStyle.y === strScroll,\r\n },\r\n };\r\n};\r\n","import {\r\n keys,\r\n noop,\r\n each,\r\n assignDeep,\r\n strMarginBottom,\r\n strMarginLeft,\r\n strMarginRight,\r\n strPaddingBottom,\r\n strPaddingLeft,\r\n strPaddingRight,\r\n strPaddingTop,\r\n getStyles,\r\n setStyles,\r\n removeAttrClass,\r\n strWidth,\r\n strOverflowY,\r\n strOverflowX,\r\n strScroll,\r\n} from '~/support';\r\nimport { dataValueViewportArrange, dataAttributeViewport } from '~/classnames';\r\nimport { getShowNativeOverlaidScrollbars } from '~/setups/structureSetup/structureSetup.utils';\r\nimport type { ObserversSetupState } from '~/setups';\r\nimport type { Options, OptionsCheckFn } from '~/options';\r\nimport type { StructureSetupElementsObj } from '~/setups/structureSetup/structureSetup.elements';\r\nimport type { ViewportOverflowState } from '~/setups/structureSetup/structureSetup.utils';\r\nimport type { Env } from '~/environment';\r\nimport type { WH } from '~/support';\r\nimport type { OverflowStyle, StyleObject, StyleObjectKey } from '~/typings';\r\nimport type { StructureSetupState } from '~/setups/structureSetup';\r\nimport type { StaticPlugin } from '~/plugins';\r\n\r\nexport const scrollbarsHidingPluginName = '__osScrollbarsHidingPlugin';\r\n\r\nexport const ScrollbarsHidingPlugin = /* @__PURE__ */ (() => ({\r\n [scrollbarsHidingPluginName]: {\r\n static: () => ({\r\n _viewportArrangement: (\r\n structureSetupElements: StructureSetupElementsObj,\r\n structureSetupState: StructureSetupState,\r\n observersSetupState: ObserversSetupState,\r\n env: Env,\r\n checkOptions: OptionsCheckFn\r\n ) => {\r\n const { _viewportIsTarget, _viewport } = structureSetupElements;\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid, _nativeScrollbarsSize } = env;\r\n const doViewportArrange =\r\n !_viewportIsTarget &&\r\n !_nativeScrollbarsHiding &&\r\n (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n const [showNativeOverlaidScrollbars] = getShowNativeOverlaidScrollbars(checkOptions, env);\r\n\r\n /**\r\n * Gets the current overflow state of the viewport.\r\n */\r\n const readViewportOverflowState = (): ViewportOverflowState => {\r\n const getStatePerAxis = (styleKey: StyleObjectKey) => {\r\n const overflowStyle = getStyles(_viewport, styleKey) as OverflowStyle;\r\n const overflowScroll = overflowStyle === strScroll;\r\n\r\n return [overflowStyle, overflowScroll] as const;\r\n };\r\n\r\n const [xOverflowStyle, xOverflowScroll] = getStatePerAxis(strOverflowX);\r\n const [yOverflowStyle, yOverflowScroll] = getStatePerAxis(strOverflowY);\r\n\r\n return {\r\n _overflowStyle: {\r\n x: xOverflowStyle,\r\n y: yOverflowStyle,\r\n },\r\n _overflowScroll: {\r\n x: xOverflowScroll,\r\n y: yOverflowScroll,\r\n },\r\n };\r\n };\r\n\r\n /**\r\n * Gets the hide offset matching the passed overflow state.\r\n * @param viewportOverflowState The overflow state of the viewport\r\n */\r\n const _getViewportOverflowHideOffset = (viewportOverflowState: ViewportOverflowState) => {\r\n const { _overflowScroll } = viewportOverflowState;\r\n const arrangeHideOffset =\r\n _nativeScrollbarsHiding || showNativeOverlaidScrollbars ? 0 : 42;\r\n\r\n const getHideOffsetPerAxis = (\r\n isOverlaid: boolean,\r\n overflowScroll: boolean,\r\n nativeScrollbarSize: number\r\n ) => {\r\n const nonScrollbarStylingHideOffset = isOverlaid\r\n ? arrangeHideOffset\r\n : nativeScrollbarSize;\r\n const scrollbarsHideOffset =\r\n overflowScroll && !_nativeScrollbarsHiding ? nonScrollbarStylingHideOffset : 0;\r\n const scrollbarsHideOffsetArrange = isOverlaid && !!arrangeHideOffset;\r\n\r\n return [scrollbarsHideOffset, scrollbarsHideOffsetArrange] as const;\r\n };\r\n\r\n const [xScrollbarsHideOffset, xScrollbarsHideOffsetArrange] = getHideOffsetPerAxis(\r\n _nativeScrollbarsOverlaid.x,\r\n _overflowScroll.x,\r\n _nativeScrollbarsSize.x\r\n );\r\n const [yScrollbarsHideOffset, yScrollbarsHideOffsetArrange] = getHideOffsetPerAxis(\r\n _nativeScrollbarsOverlaid.y,\r\n _overflowScroll.y,\r\n _nativeScrollbarsSize.y\r\n );\r\n\r\n return {\r\n _scrollbarsHideOffset: {\r\n x: xScrollbarsHideOffset,\r\n y: yScrollbarsHideOffset,\r\n },\r\n _scrollbarsHideOffsetArrange: {\r\n x: xScrollbarsHideOffsetArrange,\r\n y: yScrollbarsHideOffsetArrange,\r\n },\r\n };\r\n };\r\n\r\n /**\r\n * Hides the native scrollbars according to the passed parameters.\r\n * @param viewportOverflowState The viewport overflow state.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportArrange Whether special styles related to the viewport arrange strategy shall be applied.\r\n * @param viewportStyleObj The viewport style object to which the needed styles shall be applied.\r\n */\r\n const _hideNativeScrollbars = (\r\n viewportOverflowState: ViewportOverflowState,\r\n { _directionIsRTL }: ObserversSetupState,\r\n viewportArrange: boolean\r\n ): StyleObject | undefined => {\r\n if (!_viewportIsTarget) {\r\n const viewportStyleObj: StyleObject = assignDeep(\r\n {},\r\n {\r\n [strMarginRight]: 0,\r\n [strMarginBottom]: 0,\r\n [strMarginLeft]: 0,\r\n }\r\n );\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } =\r\n _getViewportOverflowHideOffset(viewportOverflowState);\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const { _viewportPaddingStyle } = structureSetupState;\r\n const horizontalMarginKey: keyof StyleObject = _directionIsRTL\r\n ? strMarginLeft\r\n : strMarginRight;\r\n const viewportHorizontalPaddingKey: keyof StyleObject = _directionIsRTL\r\n ? strPaddingLeft\r\n : strPaddingRight;\r\n const horizontalMarginValue = _viewportPaddingStyle[horizontalMarginKey] as number;\r\n const verticalMarginValue = _viewportPaddingStyle[strMarginBottom] as number;\r\n const horizontalPaddingValue = _viewportPaddingStyle[\r\n viewportHorizontalPaddingKey\r\n ] as number;\r\n const verticalPaddingValue = _viewportPaddingStyle[strPaddingBottom] as number;\r\n\r\n // horizontal\r\n viewportStyleObj[strWidth] = `calc(100% + ${\r\n hideOffsetY + horizontalMarginValue * -1\r\n }px)`;\r\n viewportStyleObj[horizontalMarginKey] = -hideOffsetY + horizontalMarginValue;\r\n\r\n // vertical\r\n viewportStyleObj[strMarginBottom] = -hideOffsetX + verticalMarginValue;\r\n\r\n // viewport arrange additional styles\r\n if (viewportArrange) {\r\n viewportStyleObj[viewportHorizontalPaddingKey] =\r\n horizontalPaddingValue + (arrangeY ? hideOffsetY : 0);\r\n viewportStyleObj[strPaddingBottom] =\r\n verticalPaddingValue + (arrangeX ? hideOffsetX : 0);\r\n }\r\n\r\n return viewportStyleObj;\r\n }\r\n };\r\n\r\n /**\r\n * Sets the styles of the viewport arrange element.\r\n * @param viewportOverflowState The viewport overflow state according to which the scrollbars shall be hidden.\r\n * @param viewportScrollSize The content scroll size.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @returns A boolean which indicates whether the viewport arrange element was adjusted.\r\n */\r\n const _arrangeViewport = (\r\n viewportOverflowState: ViewportOverflowState,\r\n viewportScrollSize: WH,\r\n sizeFraction: WH\r\n ) => {\r\n if (doViewportArrange) {\r\n const { _viewportPaddingStyle } = structureSetupState;\r\n const { _scrollbarsHideOffset, _scrollbarsHideOffsetArrange } =\r\n _getViewportOverflowHideOffset(viewportOverflowState);\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const { x: hideOffsetX, y: hideOffsetY } = _scrollbarsHideOffset;\r\n const { _directionIsRTL } = observersSetupState;\r\n const viewportArrangeHorizontalPaddingKey: keyof StyleObject = _directionIsRTL\r\n ? strPaddingRight\r\n : strPaddingLeft;\r\n const viewportArrangeHorizontalPaddingValue = _viewportPaddingStyle[\r\n viewportArrangeHorizontalPaddingKey\r\n ] as number;\r\n const viewportArrangeVerticalPaddingValue = _viewportPaddingStyle.paddingTop as number;\r\n const fractionalContentWidth = viewportScrollSize.w + sizeFraction.w;\r\n const fractionalContenHeight = viewportScrollSize.h + sizeFraction.h;\r\n const arrangeSize = {\r\n w:\r\n hideOffsetY && arrangeY\r\n ? `${\r\n hideOffsetY + fractionalContentWidth - viewportArrangeHorizontalPaddingValue\r\n }px`\r\n : '',\r\n h:\r\n hideOffsetX && arrangeX\r\n ? `${\r\n hideOffsetX + fractionalContenHeight - viewportArrangeVerticalPaddingValue\r\n }px`\r\n : '',\r\n };\r\n\r\n setStyles(_viewport, {\r\n '--os-vaw': arrangeSize.w,\r\n '--os-vah': arrangeSize.h,\r\n });\r\n }\r\n\r\n return doViewportArrange;\r\n };\r\n\r\n /**\r\n * Removes all styles applied because of the viewport arrange strategy.\r\n * @param showNativeOverlaidScrollbars Whether native overlaid scrollbars are shown instead of hidden.\r\n * @param directionIsRTL Whether the direction is RTL or not.\r\n * @param viewportOverflowState The currentviewport overflow state or undefined if it has to be determined.\r\n * @returns A object with a function which applies all the removed styles and the determined viewport vverflow state.\r\n */\r\n const _undoViewportArrange = (viewportOverflowState?: ViewportOverflowState) => {\r\n if (doViewportArrange) {\r\n const finalViewportOverflowState = viewportOverflowState || readViewportOverflowState();\r\n const { _viewportPaddingStyle: viewportPaddingStyle } = structureSetupState;\r\n const { _scrollbarsHideOffsetArrange } = _getViewportOverflowHideOffset(\r\n finalViewportOverflowState\r\n );\r\n const { x: arrangeX, y: arrangeY } = _scrollbarsHideOffsetArrange;\r\n const finalPaddingStyle: StyleObject = {};\r\n const assignProps = (props: string[]) =>\r\n each(props, (prop) => {\r\n finalPaddingStyle[prop as StyleObjectKey] =\r\n viewportPaddingStyle[prop as StyleObjectKey];\r\n });\r\n\r\n if (arrangeX) {\r\n assignProps([strMarginBottom, strPaddingTop, strPaddingBottom]);\r\n }\r\n\r\n if (arrangeY) {\r\n assignProps([strMarginLeft, strMarginRight, strPaddingLeft, strPaddingRight]);\r\n }\r\n\r\n const prevStyle = getStyles(_viewport, keys(finalPaddingStyle) as StyleObjectKey[]);\r\n const addArrange = removeAttrClass(\r\n _viewport,\r\n dataAttributeViewport,\r\n dataValueViewportArrange\r\n );\r\n\r\n setStyles(_viewport, finalPaddingStyle);\r\n\r\n return [\r\n () => {\r\n setStyles(\r\n _viewport,\r\n assignDeep(\r\n {},\r\n prevStyle,\r\n _hideNativeScrollbars(\r\n finalViewportOverflowState,\r\n observersSetupState,\r\n doViewportArrange\r\n )\r\n )\r\n );\r\n addArrange();\r\n },\r\n finalViewportOverflowState,\r\n ] as const;\r\n }\r\n return [noop] as const;\r\n };\r\n\r\n return {\r\n _getViewportOverflowHideOffset,\r\n _arrangeViewport,\r\n _undoViewportArrange,\r\n _hideNativeScrollbars,\r\n };\r\n },\r\n }),\r\n },\r\n}))() satisfies StaticPlugin;\r\n","import { animateNumber, noop, selfClearTimeout } from '~/support';\r\nimport type { EasingFn } from '~/support';\r\nimport type { StaticPlugin } from '~/plugins';\r\n\r\nexport const clickScrollPluginModuleName = '__osClickScrollPlugin';\r\n\r\nexport const ClickScrollPlugin = /* @__PURE__ */ (() => ({\r\n [clickScrollPluginModuleName]: {\r\n static:\r\n () =>\r\n (\r\n moveHandleRelative: (deltaMovement: number) => void,\r\n getHandleOffset: (handleRect?: DOMRect, trackRect?: DOMRect) => number,\r\n startOffset: number,\r\n handleLength: number,\r\n relativeTrackPointerOffset: number\r\n ) => {\r\n // click scroll animation has 2 parts:\r\n // 1. the \"click\" which scrolls 100% of the viewport in a certain amount of time\r\n // 2. the \"press\" which scrolls to the point where the cursor is located, the \"press\" always waits for the \"click\" to finish\r\n // The \"click\" should not be canceled by a \"pointerup\" event because very fast clicks or taps would cancel it too fast\r\n // The \"click\" should only be canceled by a subsequent \"pointerdown\" event because otherwise 2 animations would run\r\n // The \"press\" should be canceld by the next \"pointerup\" event\r\n let stop = false;\r\n let stopClickAnimation = noop;\r\n let stopPressAnimation = noop;\r\n const [setFirstIterationPauseTimeout, clearFirstIterationPauseTimeout] =\r\n selfClearTimeout(133);\r\n const animateClickScroll = (\r\n clickScrollProgress: number,\r\n iteration: number,\r\n easing?: EasingFn | false\r\n ) =>\r\n animateNumber(\r\n clickScrollProgress,\r\n clickScrollProgress + handleLength * Math.sign(startOffset),\r\n iteration ? 133 : 222,\r\n (animationProgress, _, animationCompleted) => {\r\n moveHandleRelative(animationProgress);\r\n const handleStartBound = getHandleOffset();\r\n const handleEndBound = handleStartBound + handleLength;\r\n const mouseBetweenHandleBounds =\r\n relativeTrackPointerOffset >= handleStartBound &&\r\n relativeTrackPointerOffset <= handleEndBound;\r\n const animationCompletedAction = () => {\r\n stopPressAnimation = animateClickScroll(animationProgress, iteration + 1);\r\n };\r\n\r\n if (!stop && animationCompleted && !mouseBetweenHandleBounds) {\r\n if (iteration) {\r\n animationCompletedAction();\r\n } else {\r\n setFirstIterationPauseTimeout(animationCompletedAction);\r\n }\r\n }\r\n },\r\n easing\r\n );\r\n\r\n // easeOutQuad\r\n stopClickAnimation = animateClickScroll(0, 0, (x) => 1 - (1 - x) * (1 - x));\r\n\r\n return (stopClick?: boolean) => {\r\n stop = true;\r\n clearFirstIterationPauseTimeout();\r\n if (stopClick) {\r\n stopClickAnimation();\r\n stopPressAnimation();\r\n } else {\r\n stopPressAnimation();\r\n }\r\n };\r\n },\r\n },\r\n}))() satisfies StaticPlugin;\r\n","import {\r\n createCache,\r\n createDOM,\r\n runEachAndClear,\r\n addEventListener,\r\n addClass,\r\n push,\r\n ResizeObserverConstructor,\r\n appendChildren,\r\n domRectHasDimensions,\r\n bind,\r\n noop,\r\n domRectAppeared,\r\n concat,\r\n} from '~/support';\r\nimport {\r\n classNameSizeObserver,\r\n classNameSizeObserverAppear,\r\n classNameSizeObserverListener,\r\n} from '~/classnames';\r\nimport { getStaticPluginModuleInstance, sizeObserverPluginName } from '~/plugins';\r\nimport type { SizeObserverPlugin } from '~/plugins';\r\n\r\nexport interface SizeObserverOptions {\r\n /** Whether appearing should be observed. */\r\n _appear?: boolean;\r\n}\r\n\r\nexport interface SizeObserverCallbackParams {\r\n _sizeChanged: boolean;\r\n _appear?: boolean;\r\n}\r\n\r\nexport type SizeObserver = () => () => void;\r\n\r\n/**\r\n * Creates a size observer which observes any size, padding, border, margin and box-sizing changes of the target element. Depending on the options also direction and appear can be observed.\r\n * @param target The target element which shall be observed.\r\n * @param onSizeChangedCallback The callback which gets called after a size change was detected.\r\n * @param options The options for size detection, whether to observe also direction and appear.\r\n * @returns A object which represents the instance of the size observer.\r\n */\r\nexport const createSizeObserver = (\r\n target: HTMLElement,\r\n onSizeChangedCallback: (params: SizeObserverCallbackParams) => any,\r\n options?: SizeObserverOptions\r\n): SizeObserver => {\r\n const { _appear: observeAppearChange } = options || {};\r\n const sizeObserverPlugin =\r\n getStaticPluginModuleInstance(sizeObserverPluginName);\r\n const [updateResizeObserverContentRectCache] = createCache({\r\n _initialValue: false,\r\n _alwaysUpdateValues: true,\r\n });\r\n\r\n return () => {\r\n const destroyFns: (() => void)[] = [];\r\n const baseElements = createDOM(\r\n `
    `\r\n );\r\n const sizeObserver = baseElements[0] as HTMLElement;\r\n const listenerElement = sizeObserver.firstChild as HTMLElement;\r\n const onSizeChangedCallbackProxy = (sizeChangedContext?: ResizeObserverEntry | boolean) => {\r\n const isResizeObserverCall = sizeChangedContext instanceof ResizeObserverEntry;\r\n\r\n let skip = false;\r\n let appear = false;\r\n\r\n // if triggered from RO.\r\n if (isResizeObserverCall) {\r\n const [currRContentRect, , prevContentRect] = updateResizeObserverContentRectCache(\r\n sizeChangedContext.contentRect\r\n );\r\n const hasDimensions = domRectHasDimensions(currRContentRect);\r\n appear = domRectAppeared(currRContentRect, prevContentRect);\r\n skip = !appear && !hasDimensions; // skip if display is none or when window resize\r\n }\r\n // else if it triggered with appear from polyfill\r\n else {\r\n appear = sizeChangedContext === true;\r\n }\r\n\r\n if (!skip) {\r\n onSizeChangedCallback({\r\n _sizeChanged: true,\r\n _appear: appear,\r\n });\r\n }\r\n };\r\n\r\n if (ResizeObserverConstructor) {\r\n const resizeObserverInstance = new ResizeObserverConstructor((entries) =>\r\n onSizeChangedCallbackProxy(entries.pop())\r\n );\r\n resizeObserverInstance.observe(listenerElement);\r\n push(destroyFns, () => {\r\n resizeObserverInstance.disconnect();\r\n });\r\n } else if (sizeObserverPlugin) {\r\n const [pluginAppearCallback, pluginDestroyFns] = sizeObserverPlugin(\r\n listenerElement,\r\n onSizeChangedCallbackProxy,\r\n observeAppearChange\r\n );\r\n push(\r\n destroyFns,\r\n concat(\r\n [\r\n addClass(sizeObserver, classNameSizeObserverAppear),\r\n addEventListener(sizeObserver, 'animationstart', pluginAppearCallback),\r\n ],\r\n pluginDestroyFns\r\n )\r\n );\r\n } else {\r\n return noop;\r\n }\r\n\r\n return bind(runEachAndClear, push(destroyFns, appendChildren(target, sizeObserver)));\r\n };\r\n};\r\n","import {\r\n ResizeObserverConstructor,\r\n assignDeep,\r\n closest,\r\n createCache,\r\n debounce,\r\n equalWH,\r\n getFractionalSize,\r\n isArray,\r\n isFunction,\r\n isNumber,\r\n keys,\r\n liesBetween,\r\n getScrollSize,\r\n getElementScroll,\r\n scrollElementTo,\r\n domRectAppeared,\r\n concat,\r\n getStyles,\r\n hasAttrClass,\r\n} from '~/support';\r\nimport { createDOMObserver, createSizeObserver, createTrinsicObserver } from '~/observers';\r\nimport { getEnvironment } from '~/environment';\r\nimport {\r\n classNameScrollbar,\r\n dataAttributeHost,\r\n dataAttributeViewport,\r\n dataValueViewportMeasuring,\r\n dataValueViewportArrange,\r\n dataValueNoClipping,\r\n} from '~/classnames';\r\nimport { getStaticPluginModuleInstance, scrollbarsHidingPluginName } from '~/plugins';\r\nimport type { Options, OptionsCheckFn } from '~/options';\r\nimport type { ScrollbarsHidingPlugin } from '~/plugins';\r\nimport type { SizeObserverCallbackParams } from '~/observers';\r\nimport type { StructureSetupElementsObj } from '../structureSetup/structureSetup.elements';\r\nimport type { Setup, SetupUpdateInfo, StructureSetupState } from '~/setups';\r\nimport type { CacheValues, WH } from '~/support';\r\nimport type { PlainObject } from '~/typings';\r\n\r\nexport interface ObserversSetupState {\r\n _heightIntrinsic: boolean;\r\n _directionIsRTL: boolean;\r\n}\r\n\r\nexport interface ObserversSetupUpdateInfo extends SetupUpdateInfo {\r\n _takeRecords?: boolean;\r\n}\r\n\r\nexport type ObserversSetupUpdateHints = {\r\n _sizeChanged?: boolean;\r\n _directionChanged?: boolean;\r\n _heightIntrinsicChanged?: boolean;\r\n _hostMutation?: boolean;\r\n _contentMutation?: boolean;\r\n _appear?: boolean;\r\n _scrollbarSizeChanged?: boolean;\r\n};\r\n\r\nexport type ObserversSetup = Setup<\r\n ObserversSetupUpdateInfo,\r\n ObserversSetupState,\r\n ObserversSetupUpdateHints\r\n>;\r\n\r\nexport const createObserversSetup = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n structureSetupState: StructureSetupState,\r\n getCurrentOption: OptionsCheckFn,\r\n onObserversUpdated: (updateHints: ObserversSetupUpdateHints) => void\r\n): ObserversSetup => {\r\n let debounceTimeout: number | false | undefined;\r\n let debounceMaxDelay: number | false | undefined;\r\n let updateContentMutationObserver: (() => void) | undefined;\r\n let destroyContentMutationObserver: (() => void) | undefined;\r\n let prevContentRect: DOMRectReadOnly | undefined;\r\n let prevDirectionIsRTL: boolean | undefined;\r\n const hostSelector = `[${dataAttributeHost}]`;\r\n\r\n // TODO: observer textarea attrs if textarea\r\n\r\n const viewportSelector = `[${dataAttributeViewport}]`;\r\n const baseStyleChangingAttrs = ['id', 'class', 'style', 'open', 'wrap', 'cols', 'rows'];\r\n const {\r\n _target,\r\n _host,\r\n _viewport,\r\n _scrollOffsetElement,\r\n _content,\r\n _viewportIsTarget,\r\n _isBody,\r\n _viewportHasClass,\r\n _viewportAddRemoveClass,\r\n _removeScrollObscuringStyles,\r\n } = structureSetupElements;\r\n\r\n const getDirectionIsRTL = (elm: HTMLElement): boolean => getStyles(elm, 'direction') === 'rtl';\r\n\r\n const state: ObserversSetupState = {\r\n _heightIntrinsic: false,\r\n _directionIsRTL: getDirectionIsRTL(_target),\r\n };\r\n const env = getEnvironment();\r\n const scrollbarsHidingPlugin = getStaticPluginModuleInstance(\r\n scrollbarsHidingPluginName\r\n );\r\n\r\n const [updateContentSizeCache] = createCache>(\r\n {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n },\r\n () => {\r\n const _undoViewportArrange =\r\n scrollbarsHidingPlugin &&\r\n scrollbarsHidingPlugin._viewportArrangement(\r\n structureSetupElements,\r\n structureSetupState,\r\n state,\r\n env,\r\n getCurrentOption\r\n )._undoViewportArrange;\r\n\r\n const viewportIsTargetBody = _isBody && _viewportIsTarget;\r\n const noClipping =\r\n !viewportIsTargetBody && hasAttrClass(_host, dataAttributeHost, dataValueNoClipping);\r\n const isArranged = !_viewportIsTarget && _viewportHasClass(dataValueViewportArrange);\r\n const scrollOffset = isArranged && getElementScroll(_scrollOffsetElement);\r\n const revertScrollObscuringStyles = scrollOffset && _removeScrollObscuringStyles();\r\n\r\n const revertMeasuring = _viewportAddRemoveClass(dataValueViewportMeasuring, noClipping);\r\n const redoViewportArrange = isArranged && _undoViewportArrange && _undoViewportArrange()[0];\r\n const viewportScroll = getScrollSize(_viewport);\r\n const fractional = getFractionalSize(_viewport);\r\n\r\n redoViewportArrange && redoViewportArrange();\r\n\r\n scrollElementTo(_scrollOffsetElement, scrollOffset);\r\n revertScrollObscuringStyles && revertScrollObscuringStyles();\r\n noClipping && revertMeasuring();\r\n\r\n return {\r\n w: viewportScroll.w + fractional.w,\r\n h: viewportScroll.h + fractional.h,\r\n };\r\n }\r\n );\r\n\r\n const onObserversUpdatedDebounced = debounce(onObserversUpdated, {\r\n _timeout: () => debounceTimeout,\r\n _maxDelay: () => debounceMaxDelay,\r\n _mergeParams(prev, curr) {\r\n const [prevObj] = prev;\r\n const [currObj] = curr;\r\n return [\r\n concat(keys(prevObj), keys(currObj)).reduce((obj, key) => {\r\n obj[key] = prevObj[key as keyof typeof prevObj] || currObj[key as keyof typeof currObj];\r\n return obj;\r\n }, {} as PlainObject),\r\n ] as [Partial];\r\n },\r\n });\r\n\r\n const setDirection = (updateHints: ObserversSetupUpdateHints) => {\r\n const newDirectionIsRTL = getDirectionIsRTL(_target);\r\n assignDeep(updateHints, { _directionChanged: prevDirectionIsRTL !== newDirectionIsRTL });\r\n assignDeep(state, { _directionIsRTL: newDirectionIsRTL });\r\n prevDirectionIsRTL = newDirectionIsRTL;\r\n };\r\n\r\n const onTrinsicChanged = (\r\n heightIntrinsicCache: CacheValues,\r\n fromRecords?: true\r\n ): ObserversSetupUpdateHints => {\r\n const [heightIntrinsic, heightIntrinsicChanged] = heightIntrinsicCache;\r\n const updateHints: ObserversSetupUpdateHints = {\r\n _heightIntrinsicChanged: heightIntrinsicChanged,\r\n };\r\n\r\n assignDeep(state, { _heightIntrinsic: heightIntrinsic });\r\n !fromRecords && onObserversUpdated(updateHints);\r\n\r\n return updateHints;\r\n };\r\n\r\n const onSizeChanged = ({ _sizeChanged, _appear }: SizeObserverCallbackParams) => {\r\n const exclusiveSizeChange = _sizeChanged && !_appear;\r\n const updateFn =\r\n // use debounceed update:\r\n // if native scrollbars hiding is supported\r\n // and if the update is more than just a exclusive sizeChange (e.g. size change + appear, or size change + direction)\r\n !exclusiveSizeChange && env._nativeScrollbarsHiding\r\n ? onObserversUpdatedDebounced\r\n : onObserversUpdated;\r\n\r\n const updateHints: ObserversSetupUpdateHints = {\r\n _sizeChanged: _sizeChanged || _appear,\r\n _appear,\r\n };\r\n\r\n setDirection(updateHints);\r\n\r\n updateFn(updateHints);\r\n };\r\n\r\n const onContentMutation = (\r\n contentChangedThroughEvent: boolean,\r\n fromRecords?: true\r\n ): ObserversSetupUpdateHints => {\r\n const [, _contentMutation] = updateContentSizeCache();\r\n const updateHints: ObserversSetupUpdateHints = {\r\n _contentMutation,\r\n };\r\n\r\n setDirection(updateHints);\r\n\r\n // if contentChangedThroughEvent is true its already debounced\r\n const updateFn = contentChangedThroughEvent ? onObserversUpdated : onObserversUpdatedDebounced;\r\n\r\n _contentMutation && !fromRecords && updateFn(updateHints);\r\n\r\n return updateHints;\r\n };\r\n\r\n const onHostMutation = (\r\n targetChangedAttrs: string[],\r\n targetStyleChanged: boolean,\r\n fromRecords?: true\r\n ): ObserversSetupUpdateHints => {\r\n const updateHints: ObserversSetupUpdateHints = {\r\n _hostMutation: targetStyleChanged,\r\n };\r\n\r\n setDirection(updateHints);\r\n\r\n if (targetStyleChanged && !fromRecords) {\r\n onObserversUpdatedDebounced(updateHints);\r\n }\r\n /*\r\n else if (!_viewportIsTarget) {\r\n updateViewportAttrsFromHost(targetChangedAttrs);\r\n }\r\n */\r\n\r\n return updateHints;\r\n };\r\n\r\n const [constructTrinsicObserver, updateTrinsicObserver] = _content\r\n ? createTrinsicObserver(_host, onTrinsicChanged)\r\n : [];\r\n\r\n const constructSizeObserver =\r\n !_viewportIsTarget &&\r\n createSizeObserver(_host, onSizeChanged, {\r\n _appear: true,\r\n });\r\n\r\n const [constructHostMutationObserver, updateHostMutationObserver] = createDOMObserver(\r\n _host,\r\n false,\r\n onHostMutation,\r\n {\r\n _styleChangingAttributes: baseStyleChangingAttrs,\r\n _attributes: baseStyleChangingAttrs,\r\n }\r\n );\r\n\r\n const viewportIsTargetResizeObserver =\r\n _viewportIsTarget &&\r\n ResizeObserverConstructor &&\r\n new ResizeObserverConstructor((entries) => {\r\n const currContentRect = entries[entries.length - 1].contentRect;\r\n onSizeChanged({\r\n _sizeChanged: true,\r\n _appear: domRectAppeared(currContentRect, prevContentRect),\r\n });\r\n prevContentRect = currContentRect;\r\n });\r\n const onWindowResizeDebounced = debounce(\r\n () => {\r\n const [, _contentMutation] = updateContentSizeCache();\r\n onObserversUpdated({ _contentMutation });\r\n },\r\n {\r\n _timeout: 222,\r\n _leading: true,\r\n }\r\n );\r\n\r\n return [\r\n () => {\r\n // order is matter!\r\n // updateViewportAttrsFromHost();\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.observe(_host);\r\n const destroySizeObserver = constructSizeObserver && constructSizeObserver();\r\n const destroyTrinsicObserver = constructTrinsicObserver && constructTrinsicObserver();\r\n const destroyHostMutationObserver = constructHostMutationObserver();\r\n const removeResizeListener = env._addResizeListener((_scrollbarSizeChanged) => {\r\n if (_scrollbarSizeChanged) {\r\n onObserversUpdatedDebounced({ _scrollbarSizeChanged });\r\n } else {\r\n onWindowResizeDebounced();\r\n }\r\n });\r\n\r\n return () => {\r\n viewportIsTargetResizeObserver && viewportIsTargetResizeObserver.disconnect();\r\n destroySizeObserver && destroySizeObserver();\r\n destroyTrinsicObserver && destroyTrinsicObserver();\r\n destroyContentMutationObserver && destroyContentMutationObserver();\r\n destroyHostMutationObserver();\r\n removeResizeListener();\r\n };\r\n },\r\n ({ _checkOption, _takeRecords, _force }) => {\r\n const updateHints: ObserversSetupUpdateHints = {};\r\n\r\n const [ignoreMutation] = _checkOption('update.ignoreMutation');\r\n const [attributes, attributesChanged] = _checkOption('update.attributes');\r\n const [elementEvents, elementEventsChanged] = _checkOption('update.elementEvents');\r\n const [debounceValue, debounceChanged] = _checkOption('update.debounce');\r\n const contentMutationObserverChanged = elementEventsChanged || attributesChanged;\r\n const takeRecords = _takeRecords || _force;\r\n const ignoreMutationFromOptions = (mutation: MutationRecord) =>\r\n isFunction(ignoreMutation) && ignoreMutation(mutation);\r\n\r\n if (contentMutationObserverChanged) {\r\n updateContentMutationObserver && updateContentMutationObserver();\r\n destroyContentMutationObserver && destroyContentMutationObserver();\r\n\r\n const [construct, update] = createDOMObserver(\r\n _content || _viewport,\r\n true,\r\n onContentMutation,\r\n {\r\n _attributes: concat(baseStyleChangingAttrs, attributes || []),\r\n _eventContentChange: elementEvents,\r\n _nestedTargetSelector: hostSelector,\r\n _ignoreContentChange: (mutation, isNestedTarget) => {\r\n const { target: mutationTarget, attributeName } = mutation;\r\n const ignore =\r\n !isNestedTarget && attributeName && !_viewportIsTarget\r\n ? liesBetween(mutationTarget, hostSelector, viewportSelector)\r\n : false;\r\n return (\r\n ignore ||\r\n !!closest(mutationTarget, `.${classNameScrollbar}`) || // ignore explicitely all scrollbar elements\r\n !!ignoreMutationFromOptions(mutation)\r\n );\r\n },\r\n }\r\n );\r\n\r\n destroyContentMutationObserver = construct();\r\n updateContentMutationObserver = update;\r\n }\r\n\r\n if (debounceChanged) {\r\n onObserversUpdatedDebounced._flush();\r\n if (isArray(debounceValue)) {\r\n const timeout = debounceValue[0];\r\n const maxWait = debounceValue[1];\r\n debounceTimeout = isNumber(timeout) && timeout;\r\n debounceMaxDelay = isNumber(maxWait) && maxWait;\r\n } else if (isNumber(debounceValue)) {\r\n debounceTimeout = debounceValue;\r\n debounceMaxDelay = false;\r\n } else {\r\n debounceTimeout = false;\r\n debounceMaxDelay = false;\r\n }\r\n }\r\n\r\n if (takeRecords) {\r\n const hostUpdateResult = updateHostMutationObserver();\r\n const trinsicUpdateResult = updateTrinsicObserver && updateTrinsicObserver();\r\n const contentUpdateResult =\r\n updateContentMutationObserver && updateContentMutationObserver();\r\n\r\n hostUpdateResult &&\r\n assignDeep(\r\n updateHints,\r\n onHostMutation(hostUpdateResult[0], hostUpdateResult[1], takeRecords)\r\n );\r\n\r\n trinsicUpdateResult &&\r\n assignDeep(updateHints, onTrinsicChanged(trinsicUpdateResult[0], takeRecords));\r\n\r\n contentUpdateResult &&\r\n assignDeep(updateHints, onContentMutation(contentUpdateResult[0], takeRecords));\r\n }\r\n\r\n setDirection(updateHints);\r\n\r\n return updateHints;\r\n },\r\n state,\r\n ];\r\n};\r\n","import {\r\n createDiv,\r\n getOffsetSize,\r\n runEachAndClear,\r\n createCache,\r\n push,\r\n IntersectionObserverConstructor,\r\n appendChildren,\r\n bind,\r\n} from '~/support';\r\nimport { createSizeObserver } from '~/observers/sizeObserver';\r\nimport { classNameTrinsicObserver } from '~/classnames';\r\nimport type { WH, CacheValues } from '~/support';\r\n\r\nexport type TrinsicObserverCallback = (heightIntrinsic: CacheValues) => any;\r\nexport type TrinsicObserver = [\r\n construct: () => () => void,\r\n update: () => void | false | null | undefined | Parameters\r\n];\r\n\r\n/**\r\n * Creates a trinsic observer which observes changes to intrinsic or extrinsic sizing for the height of the target element.\r\n * @param target The element which shall be observed.\r\n * @param onTrinsicChangedCallback The callback which gets called after a change was detected.\r\n * @returns A object which represents the instance of the trinsic observer.\r\n */\r\nexport const createTrinsicObserver = (\r\n target: HTMLElement,\r\n onTrinsicChangedCallback: TrinsicObserverCallback\r\n): TrinsicObserver => {\r\n let intersectionObserverInstance: undefined | IntersectionObserver;\r\n const isHeightIntrinsic = (ioEntryOrSize: IntersectionObserverEntry | WH): boolean =>\r\n (ioEntryOrSize as WH).h === 0 ||\r\n (ioEntryOrSize as IntersectionObserverEntry).isIntersecting ||\r\n (ioEntryOrSize as IntersectionObserverEntry).intersectionRatio > 0;\r\n const trinsicObserver = createDiv(classNameTrinsicObserver);\r\n const [updateHeightIntrinsicCache] = createCache({\r\n _initialValue: false,\r\n });\r\n const triggerOnTrinsicChangedCallback = (\r\n updateValue: IntersectionObserverEntry | WH | undefined,\r\n fromRecords?: boolean\r\n ): void | Parameters => {\r\n if (updateValue) {\r\n const heightIntrinsic = updateHeightIntrinsicCache(isHeightIntrinsic(updateValue));\r\n const [, heightIntrinsicChanged] = heightIntrinsic;\r\n return (\r\n heightIntrinsicChanged &&\r\n !fromRecords &&\r\n onTrinsicChangedCallback(heightIntrinsic) && [heightIntrinsic]\r\n );\r\n }\r\n };\r\n const intersectionObserverCallback = (\r\n fromRecords: boolean,\r\n entries: IntersectionObserverEntry[]\r\n ) => triggerOnTrinsicChangedCallback(entries.pop(), fromRecords);\r\n\r\n return [\r\n () => {\r\n const destroyFns: (() => void)[] = [];\r\n\r\n if (IntersectionObserverConstructor) {\r\n intersectionObserverInstance = new IntersectionObserverConstructor(\r\n bind(intersectionObserverCallback, false),\r\n { root: target }\r\n );\r\n intersectionObserverInstance.observe(trinsicObserver);\r\n push(destroyFns, () => {\r\n intersectionObserverInstance!.disconnect();\r\n });\r\n } else {\r\n const onSizeChanged = () => {\r\n const newSize = getOffsetSize(trinsicObserver);\r\n triggerOnTrinsicChangedCallback(newSize);\r\n };\r\n push(destroyFns, createSizeObserver(trinsicObserver, onSizeChanged)());\r\n onSizeChanged();\r\n }\r\n\r\n return bind(runEachAndClear, push(destroyFns, appendChildren(target, trinsicObserver)));\r\n },\r\n () =>\r\n intersectionObserverInstance &&\r\n intersectionObserverCallback(true, intersectionObserverInstance.takeRecords()),\r\n ];\r\n};\r\n","import {\r\n addClass,\r\n appendChildren,\r\n createDiv,\r\n each,\r\n getTrasformTranslateValue,\r\n isBoolean,\r\n parent,\r\n push,\r\n removeClass,\r\n removeElements,\r\n runEachAndClear,\r\n scrollT,\r\n bind,\r\n getElementScroll,\r\n numberToCssPx,\r\n setStyles,\r\n capNumber,\r\n getScrollCoordinatesPercent,\r\n isDefaultDirectionScrollCoordinates,\r\n roundCssNumber,\r\n} from '~/support';\r\nimport {\r\n classNameScrollbar,\r\n classNameScrollbarHorizontal,\r\n classNameScrollbarVertical,\r\n classNameScrollbarTrack,\r\n classNameScrollbarHandle,\r\n} from '~/classnames';\r\nimport { getEnvironment } from '~/environment';\r\nimport { dynamicInitializationElement as generalDynamicInitializationElement } from '~/initialization';\r\nimport type { XY } from '~/support';\r\nimport type {\r\n InitializationTarget,\r\n InitializationTargetElement,\r\n InitializationTargetObject,\r\n} from '~/initialization';\r\nimport type { StructureSetupElementsObj } from '../structureSetup/structureSetup.elements';\r\nimport type { ScrollbarsSetupEvents } from './scrollbarsSetup.events';\r\nimport type { StyleObject } from '~/typings';\r\nimport type { StructureSetupState } from '../structureSetup';\r\n\r\nexport interface ScrollbarStructure {\r\n _scrollbar: HTMLElement;\r\n _track: HTMLElement;\r\n _handle: HTMLElement;\r\n}\r\n\r\nexport interface ScrollbarsSetupElement {\r\n _scrollbarStructures: ScrollbarStructure[];\r\n _clone: () => ScrollbarStructure;\r\n _style: (\r\n elmStyle: (\r\n scrollbarStructure: ScrollbarStructure\r\n ) => [HTMLElement | false | null | undefined, StyleObject]\r\n ) => void;\r\n}\r\n\r\nexport interface ScrollbarsSetupElementsObj {\r\n _scrollbarsAddRemoveClass: (\r\n classNames: string | false | null | undefined,\r\n add?: boolean,\r\n isHorizontal?: boolean\r\n ) => void;\r\n _refreshScrollbarsHandleLength: () => void;\r\n _refreshScrollbarsHandleOffset: () => void;\r\n _refreshScrollbarsScrollbarOffset: () => void;\r\n _refreshScrollbarsScrollCoordinates: () => void;\r\n _horizontal: ScrollbarsSetupElement;\r\n _vertical: ScrollbarsSetupElement;\r\n}\r\n\r\nexport type ScrollbarsSetupElements = [\r\n elements: ScrollbarsSetupElementsObj,\r\n appendElements: () => () => void\r\n];\r\n\r\ntype ScrollbarStyleFn = (\r\n scrollbarStructure: ScrollbarStructure\r\n) => [HTMLElement | false | null | undefined, StyleObject | false | null | undefined];\r\n\r\nexport const createScrollbarsSetupElements = (\r\n target: InitializationTarget,\r\n structureSetupElements: StructureSetupElementsObj,\r\n structureSetupState: StructureSetupState,\r\n scrollbarsSetupEvents: ScrollbarsSetupEvents\r\n): ScrollbarsSetupElements => {\r\n const cssCustomPropViewportPercent = '--os-viewport-percent';\r\n const cssCustomPropScrollPercent = '--os-scroll-percent';\r\n const cssCustomPropScrollDirection = '--os-scroll-direction';\r\n const { _getDefaultInitialization } = getEnvironment();\r\n const { scrollbars: defaultInitScrollbars } = _getDefaultInitialization();\r\n const { slot: defaultInitScrollbarsSlot } = defaultInitScrollbars;\r\n const {\r\n _target,\r\n _host,\r\n _viewport,\r\n _targetIsElm,\r\n _scrollOffsetElement,\r\n _isBody,\r\n _viewportIsTarget,\r\n } = structureSetupElements;\r\n const { scrollbars: scrollbarsInit } = (_targetIsElm ? {} : target) as InitializationTargetObject;\r\n const { slot: initScrollbarsSlot } = scrollbarsInit || {};\r\n const destroyFns: (() => void)[] = [];\r\n const horizontalScrollbars: ScrollbarStructure[] = [];\r\n const verticalScrollbars: ScrollbarStructure[] = [];\r\n const evaluatedScrollbarSlot = generalDynamicInitializationElement<\r\n [InitializationTargetElement, HTMLElement, HTMLElement]\r\n >(\r\n [_target, _host, _viewport],\r\n () => (_viewportIsTarget && _isBody ? _target : _host),\r\n defaultInitScrollbarsSlot,\r\n initScrollbarsSlot\r\n );\r\n\r\n const initScrollTimeline = (axis: keyof XY) => {\r\n if (scrollT) {\r\n const timeline = new scrollT({\r\n source: _scrollOffsetElement,\r\n axis,\r\n });\r\n\r\n const _addScrollPercentAnimation = (structure: ScrollbarStructure) => {\r\n const scrollPercentAnimation = structure._scrollbar.animate(\r\n {\r\n // dummy keyframe which fixes bug where the scrollbar handle is reverted to origin position when it should be at its max position\r\n clear: ['left'],\r\n [cssCustomPropScrollPercent]: [0, 1],\r\n },\r\n {\r\n timeline,\r\n }\r\n );\r\n return () => scrollPercentAnimation.cancel();\r\n };\r\n\r\n return {\r\n _addScrollPercentAnimation,\r\n };\r\n }\r\n };\r\n const scrollTimeline = {\r\n x: initScrollTimeline('x'),\r\n y: initScrollTimeline('y'),\r\n };\r\n const getViewportPercent = () => {\r\n const { _overflowAmount, _overflowEdge } = structureSetupState;\r\n const getAxisValue = (axisViewportSize: number, axisOverflowAmount: number) =>\r\n capNumber(0, 1, axisViewportSize / (axisViewportSize + axisOverflowAmount) || 0);\r\n\r\n return {\r\n x: getAxisValue(_overflowEdge.x, _overflowAmount.x),\r\n y: getAxisValue(_overflowEdge.y, _overflowAmount.y),\r\n };\r\n };\r\n const scrollbarStructureAddRemoveClass = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n classNames: string | false | null | undefined,\r\n add?: boolean\r\n ) => {\r\n const action = add ? addClass : removeClass;\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n action(scrollbarStructure._scrollbar, classNames);\r\n });\r\n };\r\n const scrollbarStyle = (\r\n scrollbarStructures: ScrollbarStructure[],\r\n elmStyle: ScrollbarStyleFn\r\n ) => {\r\n each(scrollbarStructures, (scrollbarStructure) => {\r\n const [elm, styles] = elmStyle(scrollbarStructure);\r\n setStyles(elm, styles);\r\n });\r\n };\r\n const scrollbarsAddRemoveClass = (\r\n className: string | false | null | undefined,\r\n add?: boolean,\r\n onlyHorizontal?: boolean\r\n ) => {\r\n const singleAxis = isBoolean(onlyHorizontal);\r\n const runHorizontal = singleAxis ? onlyHorizontal : true;\r\n const runVertical = singleAxis ? !onlyHorizontal : true;\r\n runHorizontal && scrollbarStructureAddRemoveClass(horizontalScrollbars, className, add);\r\n runVertical && scrollbarStructureAddRemoveClass(verticalScrollbars, className, add);\r\n };\r\n const refreshScrollbarsHandleLength = () => {\r\n const viewportPercent = getViewportPercent();\r\n const createScrollbarStyleFn =\r\n (axisViewportPercent: number): ScrollbarStyleFn =>\r\n (structure: ScrollbarStructure) =>\r\n [\r\n structure._scrollbar,\r\n {\r\n [cssCustomPropViewportPercent]: roundCssNumber(axisViewportPercent) + '',\r\n },\r\n ];\r\n\r\n scrollbarStyle(horizontalScrollbars, createScrollbarStyleFn(viewportPercent.x));\r\n scrollbarStyle(verticalScrollbars, createScrollbarStyleFn(viewportPercent.y));\r\n };\r\n const refreshScrollbarsHandleOffset = () => {\r\n if (!scrollT) {\r\n const { _scrollCoordinates } = structureSetupState;\r\n const scrollPercent = getScrollCoordinatesPercent(\r\n _scrollCoordinates,\r\n getElementScroll(_scrollOffsetElement)\r\n );\r\n const createScrollbarStyleFn =\r\n (axisScrollPercent: number): ScrollbarStyleFn =>\r\n (structure: ScrollbarStructure) =>\r\n [\r\n structure._scrollbar,\r\n {\r\n [cssCustomPropScrollPercent]: roundCssNumber(axisScrollPercent) + '',\r\n },\r\n ];\r\n\r\n scrollbarStyle(horizontalScrollbars, createScrollbarStyleFn(scrollPercent.x));\r\n scrollbarStyle(verticalScrollbars, createScrollbarStyleFn(scrollPercent.y));\r\n }\r\n };\r\n const refreshScrollbarsScrollCoordinates = () => {\r\n const { _scrollCoordinates } = structureSetupState;\r\n const defaultDirectionScroll = isDefaultDirectionScrollCoordinates(_scrollCoordinates);\r\n const createScrollbarStyleFn =\r\n (axisIsDefaultDirectionScrollCoordinates: boolean): ScrollbarStyleFn =>\r\n (structure: ScrollbarStructure) =>\r\n [\r\n structure._scrollbar,\r\n {\r\n [cssCustomPropScrollDirection]: axisIsDefaultDirectionScrollCoordinates ? '0' : '1',\r\n },\r\n ];\r\n\r\n scrollbarStyle(horizontalScrollbars, createScrollbarStyleFn(defaultDirectionScroll.x));\r\n scrollbarStyle(verticalScrollbars, createScrollbarStyleFn(defaultDirectionScroll.y));\r\n };\r\n const refreshScrollbarsScrollbarOffset = () => {\r\n if (_viewportIsTarget && !_isBody) {\r\n const { _overflowAmount, _scrollCoordinates } = structureSetupState;\r\n const isDefaultDirectionScroll = isDefaultDirectionScrollCoordinates(_scrollCoordinates);\r\n const scrollPercent = getScrollCoordinatesPercent(\r\n _scrollCoordinates,\r\n getElementScroll(_scrollOffsetElement)\r\n );\r\n const styleScrollbarPosition: ScrollbarStyleFn = (structure: ScrollbarStructure) => {\r\n const { _scrollbar } = structure;\r\n const elm = parent(_scrollbar) === _viewport && _scrollbar;\r\n const getTranslateValue = (\r\n axisScrollPercent: number,\r\n axisOverflowAmount: number,\r\n axisIsDefaultCoordinates: boolean\r\n ) => {\r\n const px = axisOverflowAmount * axisScrollPercent;\r\n return numberToCssPx(axisIsDefaultCoordinates ? px : -px);\r\n };\r\n\r\n return [\r\n elm,\r\n elm && {\r\n transform: getTrasformTranslateValue({\r\n x: getTranslateValue(scrollPercent.x, _overflowAmount.x, isDefaultDirectionScroll.x),\r\n y: getTranslateValue(scrollPercent.y, _overflowAmount.y, isDefaultDirectionScroll.y),\r\n }),\r\n },\r\n ];\r\n };\r\n\r\n scrollbarStyle(horizontalScrollbars, styleScrollbarPosition);\r\n scrollbarStyle(verticalScrollbars, styleScrollbarPosition);\r\n }\r\n };\r\n const generateScrollbarDOM = (isHorizontal?: boolean): ScrollbarStructure => {\r\n const xyKey = isHorizontal ? 'x' : 'y';\r\n const scrollbarClassName = isHorizontal\r\n ? classNameScrollbarHorizontal\r\n : classNameScrollbarVertical;\r\n const scrollbar = createDiv(`${classNameScrollbar} ${scrollbarClassName}`);\r\n const track = createDiv(classNameScrollbarTrack);\r\n const handle = createDiv(classNameScrollbarHandle);\r\n const result = {\r\n _scrollbar: scrollbar,\r\n _track: track,\r\n _handle: handle,\r\n };\r\n const timeline = scrollTimeline[xyKey];\r\n\r\n push(isHorizontal ? horizontalScrollbars : verticalScrollbars, result);\r\n push(destroyFns, [\r\n appendChildren(scrollbar, track),\r\n appendChildren(track, handle),\r\n bind(removeElements, scrollbar),\r\n timeline && timeline._addScrollPercentAnimation(result),\r\n scrollbarsSetupEvents(result, scrollbarsAddRemoveClass, isHorizontal),\r\n ]);\r\n\r\n return result;\r\n };\r\n const generateHorizontalScrollbarStructure = bind(generateScrollbarDOM, true);\r\n const generateVerticalScrollbarStructure = bind(generateScrollbarDOM, false);\r\n const appendElements = () => {\r\n appendChildren(evaluatedScrollbarSlot, horizontalScrollbars[0]._scrollbar);\r\n appendChildren(evaluatedScrollbarSlot, verticalScrollbars[0]._scrollbar);\r\n\r\n return bind(runEachAndClear, destroyFns);\r\n };\r\n\r\n generateHorizontalScrollbarStructure();\r\n generateVerticalScrollbarStructure();\r\n\r\n return [\r\n {\r\n _refreshScrollbarsHandleLength: refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset: refreshScrollbarsHandleOffset,\r\n _refreshScrollbarsScrollCoordinates: refreshScrollbarsScrollCoordinates,\r\n _refreshScrollbarsScrollbarOffset: refreshScrollbarsScrollbarOffset,\r\n _scrollbarsAddRemoveClass: scrollbarsAddRemoveClass,\r\n _horizontal: {\r\n _scrollbarStructures: horizontalScrollbars,\r\n _clone: generateHorizontalScrollbarStructure,\r\n _style: bind(scrollbarStyle, horizontalScrollbars),\r\n },\r\n _vertical: {\r\n _scrollbarStructures: verticalScrollbars,\r\n _clone: generateVerticalScrollbarStructure,\r\n _style: bind(scrollbarStyle, verticalScrollbars),\r\n },\r\n },\r\n appendElements,\r\n ];\r\n};\r\n","import {\r\n getBoundingClientRect,\r\n getOffsetSize,\r\n addEventListener,\r\n preventDefault,\r\n runEachAndClear,\r\n selfClearTimeout,\r\n parent,\r\n closest,\r\n push,\r\n bind,\r\n mathRound,\r\n strWidth,\r\n strHeight,\r\n getElementScroll,\r\n scrollElementTo,\r\n getFocusedElement,\r\n setT,\r\n hasAttr,\r\n stopAndPrevent,\r\n isFunction,\r\n mathAbs,\r\n focusElement,\r\n} from '~/support';\r\nimport { clickScrollPluginModuleName, getStaticPluginModuleInstance } from '~/plugins';\r\nimport {\r\n classNameScrollbarHandle,\r\n classNameScrollbarInteraction,\r\n classNameScrollbarWheel,\r\n dataAttributeHost,\r\n dataAttributeViewport,\r\n} from '~/classnames';\r\nimport type { XY } from '~/support';\r\nimport type { ClickScrollPlugin } from '~/plugins';\r\nimport type { ReadonlyOptions } from '~/options';\r\nimport type { StructureSetupState } from '~/setups';\r\nimport type { ScrollbarsSetupElementsObj, ScrollbarStructure } from './scrollbarsSetup.elements';\r\nimport type { StructureSetupElementsObj } from '../structureSetup/structureSetup.elements';\r\n\r\nexport type ScrollbarsSetupEvents = (\r\n scrollbarStructure: ScrollbarStructure,\r\n scrollbarsAddRemoveClass: ScrollbarsSetupElementsObj['_scrollbarsAddRemoveClass'],\r\n isHorizontal?: boolean\r\n) => () => void;\r\n\r\nexport const createScrollbarsSetupEvents = (\r\n options: ReadonlyOptions,\r\n structureSetupElements: StructureSetupElementsObj,\r\n structureSetupState: StructureSetupState,\r\n scrollbarHandlePointerInteraction: (event: PointerEvent) => void\r\n): ScrollbarsSetupEvents => {\r\n return (scrollbarStructure, scrollbarsAddRemoveClass, isHorizontal) => {\r\n const {\r\n _host,\r\n _viewport,\r\n _viewportIsTarget,\r\n _scrollOffsetElement,\r\n _documentElm,\r\n _removeScrollObscuringStyles,\r\n } = structureSetupElements;\r\n const { _scrollbar, _track, _handle } = scrollbarStructure;\r\n const [wheelTimeout, clearWheelTimeout] = selfClearTimeout(333);\r\n const [scrollSnapScrollTransitionTimeout, clearScrollSnapScrollTransitionTimeout] =\r\n selfClearTimeout(444);\r\n const scrollOffsetElementScrollBy = (coordinates: XY) => {\r\n isFunction(_scrollOffsetElement.scrollBy) &&\r\n _scrollOffsetElement.scrollBy({\r\n behavior: 'smooth',\r\n left: coordinates.x,\r\n top: coordinates.y,\r\n });\r\n };\r\n\r\n const createInteractiveScrollEvents = () => {\r\n const releasePointerCaptureEvents = 'pointerup pointercancel lostpointercapture';\r\n const clientXYKey = `client${isHorizontal ? 'X' : 'Y'}` as 'clientX' | 'clientY';\r\n const widthHeightKey = isHorizontal ? strWidth : strHeight;\r\n const leftTopKey = isHorizontal ? 'left' : 'top';\r\n const whKey = isHorizontal ? 'w' : 'h';\r\n const xyKey = isHorizontal ? 'x' : 'y';\r\n\r\n const createRelativeHandleMove =\r\n (mouseDownScroll: number, invertedScale: number) => (deltaMovement: number) => {\r\n const { _overflowAmount } = structureSetupState;\r\n const handleTrackDiff = getOffsetSize(_track)[whKey] - getOffsetSize(_handle)[whKey];\r\n const scrollDeltaPercent = (invertedScale * deltaMovement) / handleTrackDiff;\r\n const scrollDelta = scrollDeltaPercent * _overflowAmount[xyKey];\r\n\r\n scrollElementTo(_scrollOffsetElement, {\r\n [xyKey]: mouseDownScroll + scrollDelta,\r\n });\r\n };\r\n const pointerdownCleanupFns: Array<() => void> = [];\r\n\r\n return addEventListener(_track, 'pointerdown', (pointerDownEvent: PointerEvent) => {\r\n const isDragScroll =\r\n closest(pointerDownEvent.target as Node, `.${classNameScrollbarHandle}`) === _handle;\r\n const pointerCaptureElement = isDragScroll ? _handle : _track;\r\n\r\n const scrollbarOptions = options.scrollbars;\r\n const { button, isPrimary, pointerType } = pointerDownEvent;\r\n const { pointers } = scrollbarOptions;\r\n\r\n const continuePointerDown =\r\n button === 0 &&\r\n isPrimary &&\r\n scrollbarOptions[isDragScroll ? 'dragScroll' : 'clickScroll'] &&\r\n (pointers || []).includes(pointerType);\r\n\r\n if (continuePointerDown) {\r\n runEachAndClear(pointerdownCleanupFns);\r\n clearScrollSnapScrollTransitionTimeout();\r\n\r\n const instantClickScroll = !isDragScroll && pointerDownEvent.shiftKey;\r\n const getHandleRect = bind(getBoundingClientRect, _handle);\r\n const getTrackRect = bind(getBoundingClientRect, _track);\r\n const getHandleOffset = (handleRect?: DOMRect, trackRect?: DOMRect) =>\r\n (handleRect || getHandleRect())[leftTopKey] - (trackRect || getTrackRect())[leftTopKey];\r\n const axisScale =\r\n mathRound(getBoundingClientRect(_scrollOffsetElement)[widthHeightKey]) /\r\n getOffsetSize(_scrollOffsetElement)[whKey] || 1;\r\n const moveHandleRelative = createRelativeHandleMove(\r\n getElementScroll(_scrollOffsetElement)[xyKey],\r\n 1 / axisScale\r\n );\r\n const pointerDownOffset = pointerDownEvent[clientXYKey];\r\n const handleRect = getHandleRect();\r\n const trackRect = getTrackRect();\r\n const handleLength = handleRect[widthHeightKey];\r\n const handleCenter = getHandleOffset(handleRect, trackRect) + handleLength / 2;\r\n const relativeTrackPointerOffset = pointerDownOffset - trackRect[leftTopKey];\r\n const startOffset = isDragScroll ? 0 : relativeTrackPointerOffset - handleCenter;\r\n const releasePointerCapture = (pointerUpEvent: PointerEvent) => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n runEachAndClear(pointerupCleanupFns);\r\n pointerCaptureElement.releasePointerCapture(pointerUpEvent.pointerId);\r\n };\r\n const revertScrollObscuringStyles = _removeScrollObscuringStyles();\r\n\r\n const pointerupCleanupFns = [\r\n () => {\r\n const withoutSnapScrollOffset = getElementScroll(_scrollOffsetElement);\r\n revertScrollObscuringStyles();\r\n const withSnapScrollOffset = getElementScroll(_scrollOffsetElement);\r\n const snapScrollDiff = {\r\n x: withSnapScrollOffset.x - withoutSnapScrollOffset.x,\r\n y: withSnapScrollOffset.y - withoutSnapScrollOffset.y,\r\n };\r\n\r\n if (mathAbs(snapScrollDiff.x) > 3 || mathAbs(snapScrollDiff.y) > 3) {\r\n _removeScrollObscuringStyles();\r\n scrollElementTo(_scrollOffsetElement, withoutSnapScrollOffset);\r\n scrollOffsetElementScrollBy(snapScrollDiff);\r\n scrollSnapScrollTransitionTimeout(revertScrollObscuringStyles);\r\n }\r\n },\r\n addEventListener(_documentElm, releasePointerCaptureEvents, releasePointerCapture),\r\n addEventListener(_documentElm, 'selectstart', (event: Event) => preventDefault(event), {\r\n _passive: false,\r\n }),\r\n addEventListener(_track, releasePointerCaptureEvents, releasePointerCapture),\r\n addEventListener(_track, 'pointermove', (pointerMoveEvent: PointerEvent) => {\r\n const relativeMovement = pointerMoveEvent[clientXYKey] - pointerDownOffset;\r\n\r\n if (isDragScroll || instantClickScroll) {\r\n moveHandleRelative(startOffset + relativeMovement);\r\n }\r\n }),\r\n ];\r\n\r\n pointerCaptureElement.setPointerCapture(pointerDownEvent.pointerId);\r\n\r\n if (instantClickScroll) {\r\n moveHandleRelative(startOffset);\r\n } else if (!isDragScroll) {\r\n const animateClickScroll = getStaticPluginModuleInstance(\r\n clickScrollPluginModuleName\r\n );\r\n if (animateClickScroll) {\r\n const stopClickScrollAnimation = animateClickScroll(\r\n moveHandleRelative,\r\n getHandleOffset,\r\n startOffset,\r\n handleLength,\r\n relativeTrackPointerOffset\r\n );\r\n\r\n push(pointerupCleanupFns, bind(stopClickScrollAnimation));\r\n push(pointerdownCleanupFns, bind(stopClickScrollAnimation, true));\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n let wheelScrollBy = true;\r\n\r\n return bind(runEachAndClear, [\r\n addEventListener(_handle, 'pointermove pointerleave', scrollbarHandlePointerInteraction),\r\n addEventListener(_scrollbar, 'pointerenter', () => {\r\n scrollbarsAddRemoveClass(classNameScrollbarInteraction, true);\r\n }),\r\n addEventListener(_scrollbar, 'pointerleave pointercancel', () => {\r\n scrollbarsAddRemoveClass(classNameScrollbarInteraction, false);\r\n }),\r\n // focus viewport when clicking on a scrollbar (mouse only)\r\n !_viewportIsTarget &&\r\n addEventListener(_scrollbar, 'mousedown', () => {\r\n const focusedElement = getFocusedElement();\r\n if (\r\n hasAttr(focusedElement, dataAttributeViewport) ||\r\n hasAttr(focusedElement, dataAttributeHost) ||\r\n focusedElement === document.body\r\n ) {\r\n setT(bind(focusElement, _viewport), 25);\r\n }\r\n }),\r\n // propagate wheel events to viewport when mouse is over scrollbar\r\n addEventListener(\r\n _scrollbar,\r\n 'wheel',\r\n (wheelEvent: WheelEvent) => {\r\n const { deltaX, deltaY, deltaMode } = wheelEvent;\r\n\r\n // the first wheel event is swallowed, simulate scroll to compensate for it\r\n if (wheelScrollBy && deltaMode === 0 && parent(_scrollbar) === _host) {\r\n scrollOffsetElementScrollBy({\r\n x: deltaX,\r\n y: deltaY,\r\n });\r\n }\r\n\r\n wheelScrollBy = false;\r\n scrollbarsAddRemoveClass(classNameScrollbarWheel, true);\r\n wheelTimeout(() => {\r\n wheelScrollBy = true;\r\n scrollbarsAddRemoveClass(classNameScrollbarWheel);\r\n });\r\n\r\n preventDefault(wheelEvent);\r\n },\r\n { _passive: false, _capture: true }\r\n ),\r\n // solve problem of interaction causing click events\r\n addEventListener(\r\n _scrollbar,\r\n 'pointerdown',\r\n // stopPropagation for stopping event propagation (causing click listeners to be invoked)\r\n // preventDefault to prevent the pointer to cause any actions (e.g. releasing mouse button over an
    tag causes an navigation)\r\n bind(addEventListener, _documentElm, 'click', stopAndPrevent, {\r\n _once: true,\r\n _capture: true,\r\n _passive: false,\r\n }),\r\n { _capture: true }\r\n ),\r\n createInteractiveScrollEvents(),\r\n clearWheelTimeout,\r\n clearScrollSnapScrollTransitionTimeout,\r\n ]);\r\n };\r\n};\r\n","import { setStyles, strHeight } from '~/support';\r\nimport type { CreateStructureUpdateSegment } from '../structureSetup';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the trinsic behavior of the content element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createTrinsicUpdateSegment: CreateStructureUpdateSegment =\r\n ({ _content }) =>\r\n ({ _observersUpdateHints, _observersState, _force }) => {\r\n const { _heightIntrinsicChanged } = _observersUpdateHints || {};\r\n const { _heightIntrinsic } = _observersState;\r\n const heightIntrinsicChanged = _content && (_heightIntrinsicChanged || _force);\r\n\r\n if (heightIntrinsicChanged) {\r\n setStyles(_content, {\r\n [strHeight]: _heightIntrinsic && '100%',\r\n });\r\n }\r\n };\r\n","import {\r\n createCache,\r\n topRightBottomLeft,\r\n equalTRBL,\r\n assignDeep,\r\n bind,\r\n strMarginBottom,\r\n strMarginLeft,\r\n strMarginRight,\r\n strPaddingBottom,\r\n strPaddingLeft,\r\n strPaddingRight,\r\n strPaddingTop,\r\n strWidth,\r\n setStyles,\r\n} from '~/support';\r\nimport { getEnvironment } from '~/environment';\r\nimport type { StyleObject } from '~/typings';\r\nimport type { CreateStructureUpdateSegment } from '../structureSetup';\r\n\r\n/**\r\n * Lifecycle with the responsibility to adjust the padding styling of the padding and viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createPaddingUpdateSegment: CreateStructureUpdateSegment = (\r\n { _host, _padding, _viewport, _viewportIsTarget },\r\n state\r\n) => {\r\n const [updatePaddingCache, currentPaddingCache] = createCache(\r\n {\r\n _equal: equalTRBL,\r\n _initialValue: topRightBottomLeft(),\r\n },\r\n bind(topRightBottomLeft, _host, 'padding', '')\r\n );\r\n\r\n return ({ _checkOption, _observersUpdateHints, _observersState, _force }) => {\r\n let [padding, paddingChanged] = currentPaddingCache(_force);\r\n const { _nativeScrollbarsHiding } = getEnvironment();\r\n const { _sizeChanged, _contentMutation, _directionChanged } = _observersUpdateHints || {};\r\n const { _directionIsRTL } = _observersState;\r\n const [paddingAbsolute, paddingAbsoluteChanged] = _checkOption('paddingAbsolute');\r\n const contentMutation = _force || _contentMutation;\r\n\r\n if (_sizeChanged || paddingChanged || contentMutation) {\r\n [padding, paddingChanged] = updatePaddingCache(_force);\r\n }\r\n\r\n const paddingStyleChanged =\r\n !_viewportIsTarget && (paddingAbsoluteChanged || _directionChanged || paddingChanged);\r\n\r\n if (paddingStyleChanged) {\r\n // if there is no padding element and no scrollbar styling, paddingAbsolute isn't supported\r\n const paddingRelative = !paddingAbsolute || (!_padding && !_nativeScrollbarsHiding);\r\n const paddingHorizontal = padding.r + padding.l;\r\n const paddingVertical = padding.t + padding.b;\r\n\r\n const paddingStyle: StyleObject = {\r\n [strMarginRight]: paddingRelative && !_directionIsRTL ? -paddingHorizontal : 0,\r\n [strMarginBottom]: paddingRelative ? -paddingVertical : 0,\r\n [strMarginLeft]: paddingRelative && _directionIsRTL ? -paddingHorizontal : 0,\r\n top: paddingRelative ? -padding.t : 0,\r\n right: paddingRelative ? (_directionIsRTL ? -padding.r : 'auto') : 0,\r\n left: paddingRelative ? (_directionIsRTL ? 'auto' : -padding.l) : 0,\r\n [strWidth]: paddingRelative && `calc(100% + ${paddingHorizontal}px)`,\r\n };\r\n const viewportStyle: StyleObject = {\r\n [strPaddingTop]: paddingRelative ? padding.t : 0,\r\n [strPaddingRight]: paddingRelative ? padding.r : 0,\r\n [strPaddingBottom]: paddingRelative ? padding.b : 0,\r\n [strPaddingLeft]: paddingRelative ? padding.l : 0,\r\n };\r\n\r\n // if there is no padding element apply the style to the viewport element instead\r\n setStyles(_padding || _viewport, paddingStyle);\r\n setStyles(_viewport, viewportStyle);\r\n\r\n assignDeep(state, {\r\n _padding: padding,\r\n _paddingAbsolute: !paddingRelative,\r\n _viewportPaddingStyle: _padding\r\n ? viewportStyle\r\n : assignDeep({}, paddingStyle, viewportStyle),\r\n });\r\n }\r\n\r\n return {\r\n _paddingStyleChanged: paddingStyleChanged,\r\n };\r\n };\r\n};\r\n","import {\r\n createCache,\r\n getScrollSize,\r\n getFractionalSize,\r\n equalWH,\r\n getClientSize,\r\n equalXY,\r\n assignDeep,\r\n bind,\r\n wnd,\r\n mathMax,\r\n getWindowSize,\r\n addRemoveAttrClass,\r\n capitalizeFirstLetter,\r\n setStyles,\r\n strVisible,\r\n strHidden,\r\n keys,\r\n strScroll,\r\n scrollElementTo,\r\n getElementScroll,\r\n sanitizeScrollCoordinates,\r\n getStyles,\r\n equal,\r\n getZeroScrollCoordinates,\r\n hasDimensions,\r\n addEventListener,\r\n stopPropagation,\r\n rAF,\r\n hasAttrClass,\r\n} from '~/support';\r\nimport { getEnvironment } from '~/environment';\r\nimport {\r\n dataAttributeHost,\r\n dataValueNoClipping,\r\n dataValueViewportScrollbarHidden,\r\n dataAttributePadding,\r\n dataValueViewportOverflowXPrefix,\r\n dataValueViewportOverflowYPrefix,\r\n dataValueViewportNoContent,\r\n dataValueViewportMeasuring,\r\n} from '~/classnames';\r\nimport { getStaticPluginModuleInstance, scrollbarsHidingPluginName } from '~/plugins';\r\nimport type { ScrollCoordinates, WH, XY } from '~/support';\r\nimport type { ScrollbarsHidingPlugin } from '~/plugins/scrollbarsHidingPlugin';\r\nimport type { OverflowStyle } from '~/typings';\r\nimport type { CreateStructureUpdateSegment } from '../structureSetup';\r\nimport {\r\n createViewportOverflowState,\r\n getShowNativeOverlaidScrollbars,\r\n overflowIsVisible,\r\n} from '../structureSetup.utils';\r\n\r\ninterface FlowDirectionStyles {\r\n display?: string;\r\n direction?: string;\r\n flexDirection?: string;\r\n writingMode?: string;\r\n}\r\n\r\n/**\r\n * Lifecycle with the responsibility to set the correct overflow and scrollbar hiding styles of the viewport element.\r\n * @param structureUpdateHub\r\n * @returns\r\n */\r\nexport const createOverflowUpdateSegment: CreateStructureUpdateSegment = (\r\n structureSetupElements,\r\n structureSetupState\r\n) => {\r\n const env = getEnvironment();\r\n const {\r\n _host,\r\n _padding,\r\n _viewport,\r\n _viewportIsTarget,\r\n _scrollEventElement,\r\n _scrollOffsetElement,\r\n _isBody,\r\n _viewportAddRemoveClass,\r\n _windowElm,\r\n } = structureSetupElements;\r\n const { _nativeScrollbarsHiding } = env;\r\n const viewportIsTargetBody = _isBody && _viewportIsTarget;\r\n const max0 = bind(mathMax, 0);\r\n const flowDirectionCanBeNonDefaultMap: Record<\r\n keyof FlowDirectionStyles,\r\n (styleValue: string) => boolean\r\n > = {\r\n display: () => false,\r\n direction: (directionStyle) => directionStyle !== 'ltr',\r\n flexDirection: (flexDirectionStyle) => flexDirectionStyle.endsWith('-reverse'),\r\n writingMode: (writingModeStyle) => writingModeStyle !== 'horizontal-tb',\r\n };\r\n const flowDirectionStyleArr = keys(flowDirectionCanBeNonDefaultMap) as Array<\r\n keyof FlowDirectionStyles\r\n >;\r\n const whCacheOptions = {\r\n _equal: equalWH,\r\n _initialValue: { w: 0, h: 0 },\r\n };\r\n const partialXYOptions = {\r\n _equal: equalXY,\r\n _initialValue: {},\r\n };\r\n\r\n const setMeasuringMode = (active: boolean) => {\r\n // viewportIsTargetBody never needs measuring\r\n _viewportAddRemoveClass(dataValueViewportMeasuring, !viewportIsTargetBody && active);\r\n };\r\n\r\n const getMeasuredScrollCoordinates = (flowDirectionStyles: FlowDirectionStyles) => {\r\n const flowDirectionCanBeNonDefault = flowDirectionStyleArr.some((styleName) => {\r\n const styleValue = flowDirectionStyles[styleName];\r\n return styleValue && flowDirectionCanBeNonDefaultMap[styleName](styleValue);\r\n });\r\n\r\n // if the direction can not be non-default return default scroll coordinates (only the sign of the numbers matters)\r\n if (!flowDirectionCanBeNonDefault) {\r\n return {\r\n _start: { x: 0, y: 0 },\r\n _end: { x: 1, y: 1 },\r\n };\r\n }\r\n\r\n setMeasuringMode(true);\r\n\r\n const originalScrollOffset = getElementScroll(_scrollOffsetElement);\r\n const removeNoContent = _viewportAddRemoveClass(dataValueViewportNoContent, true);\r\n const removeScrollBlock = addEventListener(\r\n _scrollEventElement,\r\n strScroll,\r\n (event) => {\r\n const scrollEventScrollOffset = getElementScroll(_scrollOffsetElement);\r\n // if scroll offset didnt change\r\n if (\r\n event.isTrusted &&\r\n scrollEventScrollOffset.x === originalScrollOffset.x &&\r\n scrollEventScrollOffset.y === originalScrollOffset.y\r\n ) {\r\n stopPropagation(event);\r\n }\r\n },\r\n {\r\n _capture: true,\r\n _once: true,\r\n }\r\n );\r\n\r\n scrollElementTo(_scrollOffsetElement, {\r\n x: 0,\r\n y: 0,\r\n });\r\n removeNoContent();\r\n\r\n const _start = getElementScroll(_scrollOffsetElement);\r\n const scrollSize = getScrollSize(_scrollOffsetElement);\r\n scrollElementTo(_scrollOffsetElement, {\r\n x: scrollSize.w,\r\n y: scrollSize.h,\r\n });\r\n\r\n const tmp = getElementScroll(_scrollOffsetElement);\r\n scrollElementTo(_scrollOffsetElement, {\r\n // if tmp is very close start there porbably wasn't any scroll happening so scroll again in different direction\r\n x: tmp.x - _start.x < 1 && -scrollSize.w,\r\n y: tmp.y - _start.y < 1 && -scrollSize.h,\r\n });\r\n\r\n const _end = getElementScroll(_scrollOffsetElement);\r\n scrollElementTo(_scrollOffsetElement, originalScrollOffset);\r\n rAF(() => removeScrollBlock());\r\n\r\n return {\r\n _start,\r\n _end,\r\n };\r\n };\r\n const getOverflowAmount = (\r\n viewportScrollSize: WH,\r\n viewportClientSize: WH\r\n ): WH => {\r\n const tollerance = wnd.devicePixelRatio % 1 !== 0 ? 1 : 0;\r\n const amount = {\r\n w: max0(viewportScrollSize.w - viewportClientSize.w),\r\n h: max0(viewportScrollSize.h - viewportClientSize.h),\r\n };\r\n\r\n return {\r\n w: amount.w > tollerance ? amount.w : 0,\r\n h: amount.h > tollerance ? amount.h : 0,\r\n };\r\n };\r\n const [updateSizeFraction, getCurrentSizeFraction] = createCache>(\r\n whCacheOptions,\r\n bind(getFractionalSize, _viewport)\r\n );\r\n const [updateViewportScrollSizeCache, getCurrentViewportScrollSizeCache] = createCache<\r\n WH\r\n >(whCacheOptions, bind(getScrollSize, _viewport));\r\n const [updateOverflowAmountCache, getCurrentOverflowAmountCache] =\r\n createCache>(whCacheOptions);\r\n const [updateHasOverflowCache] = createCache>>(partialXYOptions);\r\n const [updateOverflowEdge, getCurrentOverflowEdgeCache] = createCache>(whCacheOptions);\r\n const [updateOverflowStyleCache] = createCache>>(partialXYOptions);\r\n const [updateFlowDirectionStyles] = createCache(\r\n {\r\n _equal: (currVal, newValu) => equal(currVal, newValu, flowDirectionStyleArr),\r\n _initialValue: {},\r\n },\r\n () => (hasDimensions(_viewport) ? getStyles(_viewport, flowDirectionStyleArr) : {})\r\n );\r\n const [updateMeasuredScrollCoordinates, getCurrentMeasuredScrollCoordinates] =\r\n createCache({\r\n _equal: (currVal, newVal) =>\r\n equalXY(currVal._start, newVal._start) && equalXY(currVal._end, newVal._end),\r\n _initialValue: getZeroScrollCoordinates(),\r\n });\r\n\r\n const scrollbarsHidingPlugin = getStaticPluginModuleInstance(\r\n scrollbarsHidingPluginName\r\n );\r\n\r\n const createViewportOverflowStyleClassName = (\r\n overflowStyle: OverflowStyle,\r\n isHorizontal?: boolean\r\n ) => {\r\n const prefix = isHorizontal\r\n ? dataValueViewportOverflowXPrefix\r\n : dataValueViewportOverflowYPrefix;\r\n return `${prefix}${capitalizeFirstLetter(overflowStyle)}`;\r\n };\r\n const setViewportOverflowStyle = (viewportOverflowStyle: XY) => {\r\n // `createAllOverflowStyleClassNames` and `allOverflowStyleClassNames` could be one scope further up but would increase bundle size\r\n const createAllOverflowStyleClassNames = (isHorizontal?: boolean) =>\r\n ([strVisible, strHidden, strScroll] as OverflowStyle[]).map((style) =>\r\n createViewportOverflowStyleClassName(style, isHorizontal)\r\n );\r\n const allOverflowStyleClassNames = createAllOverflowStyleClassNames(true)\r\n .concat(createAllOverflowStyleClassNames())\r\n .join(' ');\r\n\r\n _viewportAddRemoveClass(allOverflowStyleClassNames);\r\n _viewportAddRemoveClass(\r\n (keys(viewportOverflowStyle) as Array)\r\n .map((axis) =>\r\n createViewportOverflowStyleClassName(viewportOverflowStyle[axis], axis === 'x')\r\n )\r\n .join(' '),\r\n true\r\n );\r\n };\r\n\r\n return (\r\n { _checkOption, _observersUpdateHints, _observersState, _force },\r\n { _paddingStyleChanged }\r\n ) => {\r\n const { _sizeChanged, _contentMutation, _directionChanged, _appear, _scrollbarSizeChanged } =\r\n _observersUpdateHints || {};\r\n const scrollbarsHidingPluginViewportArrangement =\r\n scrollbarsHidingPlugin &&\r\n scrollbarsHidingPlugin._viewportArrangement(\r\n structureSetupElements,\r\n structureSetupState,\r\n _observersState,\r\n env,\r\n _checkOption\r\n );\r\n\r\n const { _arrangeViewport, _undoViewportArrange, _hideNativeScrollbars } =\r\n scrollbarsHidingPluginViewportArrangement || {};\r\n\r\n const [showNativeOverlaidScrollbars, showNativeOverlaidScrollbarsChanged] =\r\n getShowNativeOverlaidScrollbars(_checkOption, env);\r\n const [overflow, overflowChanged] = _checkOption('overflow');\r\n const overflowXVisible = overflowIsVisible(overflow.x);\r\n const overflowYVisible = overflowIsVisible(overflow.y);\r\n\r\n const viewportChanged =\r\n true ||\r\n _sizeChanged ||\r\n _paddingStyleChanged ||\r\n _contentMutation ||\r\n _directionChanged ||\r\n _scrollbarSizeChanged ||\r\n showNativeOverlaidScrollbarsChanged;\r\n\r\n let sizeFractionCache = getCurrentSizeFraction(_force);\r\n let viewportScrollSizeCache = getCurrentViewportScrollSizeCache(_force);\r\n let overflowAmuntCache = getCurrentOverflowAmountCache(_force);\r\n let overflowEdgeCache = getCurrentOverflowEdgeCache(_force);\r\n\r\n if (showNativeOverlaidScrollbarsChanged && _nativeScrollbarsHiding) {\r\n _viewportAddRemoveClass(dataValueViewportScrollbarHidden, !showNativeOverlaidScrollbars);\r\n }\r\n\r\n if (viewportChanged) {\r\n if (hasAttrClass(_host, dataAttributeHost, dataValueNoClipping)) {\r\n setMeasuringMode(true);\r\n }\r\n\r\n const [redoViewportArrange] = _undoViewportArrange ? _undoViewportArrange() : [];\r\n\r\n const [sizeFraction] = (sizeFractionCache = updateSizeFraction(_force));\r\n const [viewportScrollSize] = (viewportScrollSizeCache =\r\n updateViewportScrollSizeCache(_force));\r\n const viewportClientSize = getClientSize(_viewport);\r\n const windowInnerSize = viewportIsTargetBody && getWindowSize(_windowElm());\r\n const overflowAmountScrollSize = {\r\n w: max0(viewportScrollSize.w + sizeFraction.w),\r\n h: max0(viewportScrollSize.h + sizeFraction.h),\r\n };\r\n\r\n const overflowAmountClientSize = {\r\n w: max0(\r\n (windowInnerSize\r\n ? windowInnerSize.w\r\n : viewportClientSize.w + max0(viewportClientSize.w - viewportScrollSize.w)) +\r\n sizeFraction.w\r\n ),\r\n h: max0(\r\n (windowInnerSize\r\n ? windowInnerSize.h\r\n : viewportClientSize.h + max0(viewportClientSize.h - viewportScrollSize.h)) +\r\n sizeFraction.h\r\n ),\r\n };\r\n\r\n redoViewportArrange && redoViewportArrange();\r\n\r\n overflowEdgeCache = updateOverflowEdge(overflowAmountClientSize);\r\n overflowAmuntCache = updateOverflowAmountCache(\r\n getOverflowAmount(overflowAmountScrollSize, overflowAmountClientSize),\r\n _force\r\n );\r\n }\r\n\r\n const [overflowEdge, overflowEdgeChanged] = overflowEdgeCache;\r\n const [overflowAmount, overflowAmountChanged] = overflowAmuntCache;\r\n const [viewportScrollSize, viewportScrollSizeChanged] = viewportScrollSizeCache;\r\n const [sizeFraction, sizeFractionChanged] = sizeFractionCache;\r\n const [hasOverflow, hasOverflowChanged] = updateHasOverflowCache({\r\n x: overflowAmount.w > 0,\r\n y: overflowAmount.h > 0,\r\n });\r\n const removeClipping =\r\n (overflowXVisible && overflowYVisible && (hasOverflow.x || hasOverflow.y)) ||\r\n (overflowXVisible && hasOverflow.x && !hasOverflow.y) ||\r\n (overflowYVisible && hasOverflow.y && !hasOverflow.x);\r\n const adjustViewportStyle =\r\n _paddingStyleChanged ||\r\n _directionChanged ||\r\n _scrollbarSizeChanged ||\r\n sizeFractionChanged ||\r\n viewportScrollSizeChanged ||\r\n overflowEdgeChanged ||\r\n overflowAmountChanged ||\r\n overflowChanged ||\r\n showNativeOverlaidScrollbarsChanged ||\r\n viewportChanged;\r\n const viewportOverflowState = createViewportOverflowState(hasOverflow, overflow);\r\n const [overflowStyle, overflowStyleChanged] = updateOverflowStyleCache(\r\n viewportOverflowState._overflowStyle\r\n );\r\n const [flowDirectionStyles, flowDirectionStylesChanged] = updateFlowDirectionStyles(_force);\r\n\r\n const adjustMeasuredScrollCoordinates =\r\n _directionChanged || _appear || flowDirectionStylesChanged || hasOverflowChanged || _force;\r\n const [scrollCoordinates, scrollCoordinatesChanged] = adjustMeasuredScrollCoordinates\r\n ? updateMeasuredScrollCoordinates(getMeasuredScrollCoordinates(flowDirectionStyles), _force)\r\n : getCurrentMeasuredScrollCoordinates();\r\n\r\n if (adjustViewportStyle) {\r\n overflowStyleChanged && setViewportOverflowStyle(viewportOverflowState._overflowStyle);\r\n\r\n if (_hideNativeScrollbars && _arrangeViewport) {\r\n setStyles(\r\n _viewport,\r\n _hideNativeScrollbars(\r\n viewportOverflowState,\r\n _observersState,\r\n _arrangeViewport(viewportOverflowState, viewportScrollSize, sizeFraction)\r\n )\r\n );\r\n }\r\n }\r\n\r\n setMeasuringMode(false);\r\n\r\n addRemoveAttrClass(_host, dataAttributeHost, dataValueNoClipping, removeClipping);\r\n addRemoveAttrClass(_padding, dataAttributePadding, dataValueNoClipping, removeClipping);\r\n\r\n assignDeep(structureSetupState, {\r\n _overflowStyle: overflowStyle,\r\n _overflowEdge: {\r\n x: overflowEdge.w,\r\n y: overflowEdge.h,\r\n },\r\n _overflowAmount: {\r\n x: overflowAmount.w,\r\n y: overflowAmount.h,\r\n },\r\n _hasOverflow: hasOverflow,\r\n _scrollCoordinates: sanitizeScrollCoordinates(scrollCoordinates, overflowAmount),\r\n });\r\n\r\n return {\r\n _overflowStyleChanged: overflowStyleChanged,\r\n _overflowEdgeChanged: overflowEdgeChanged,\r\n _overflowAmountChanged: overflowAmountChanged,\r\n _scrollCoordinatesChanged: scrollCoordinatesChanged || overflowAmountChanged,\r\n _scrolled: adjustMeasuredScrollCoordinates,\r\n };\r\n };\r\n};\r\n","import { getEnvironment } from '~/environment';\r\nimport {\r\n assignDeep,\r\n each,\r\n getElementScroll,\r\n getZeroScrollCoordinates,\r\n scrollElementTo,\r\n strHidden,\r\n strMarginBottom,\r\n strMarginLeft,\r\n strMarginRight,\r\n strPaddingBottom,\r\n strPaddingLeft,\r\n strPaddingRight,\r\n strPaddingTop,\r\n type TRBL,\r\n type XY,\r\n} from '~/support';\r\nimport type { ScrollCoordinates } from '~/support';\r\nimport type { StructureSetupElementsObj } from './structureSetup.elements';\r\nimport type {\r\n ObserversSetupState,\r\n ObserversSetupUpdateHints,\r\n Setup,\r\n SetupUpdateInfo,\r\n} from '~/setups';\r\nimport type { InitializationTarget } from '~/initialization';\r\nimport type { StyleObject, OverflowStyle } from '~/typings';\r\nimport { createStructureSetupElements } from './structureSetup.elements';\r\nimport {\r\n createOverflowUpdateSegment,\r\n createPaddingUpdateSegment,\r\n createTrinsicUpdateSegment,\r\n} from './updateSegments';\r\n\r\nexport interface StructureSetupState {\r\n _padding: TRBL;\r\n _paddingAbsolute: boolean;\r\n _viewportPaddingStyle: StyleObject;\r\n _overflowEdge: XY;\r\n _overflowAmount: XY;\r\n _overflowStyle: XY;\r\n _hasOverflow: XY;\r\n _scrollCoordinates: ScrollCoordinates;\r\n}\r\n\r\nexport interface StructureSetupUpdateInfo extends SetupUpdateInfo {\r\n _observersState: ObserversSetupState;\r\n _observersUpdateHints?: ObserversSetupUpdateHints;\r\n}\r\n\r\nexport type StructureSetupUpdateHints = {\r\n _overflowEdgeChanged?: boolean;\r\n _overflowAmountChanged?: boolean;\r\n _overflowStyleChanged?: boolean;\r\n _paddingStyleChanged?: boolean;\r\n _scrollCoordinatesChanged?: boolean;\r\n};\r\n\r\nexport type StructureSetup = [\r\n ...Setup,\r\n /** The elements created by the structure setup. */\r\n StructureSetupElementsObj,\r\n /** Function to be called when the initialization was canceled. */\r\n () => void\r\n];\r\n\r\nexport type StructureUpdateSegment = (\r\n updateInfo: StructureSetupUpdateInfo,\r\n updateHints: Readonly\r\n) => StructureSetupUpdateHints | void;\r\n\r\nexport type CreateStructureUpdateSegment = (\r\n structureSetupElements: StructureSetupElementsObj,\r\n state: StructureSetupState\r\n) => StructureUpdateSegment;\r\n\r\nexport const createStructureSetup = (target: InitializationTarget): StructureSetup => {\r\n const [elements, appendStructureElements, canceled] = createStructureSetupElements(target);\r\n const state: StructureSetupState = {\r\n _padding: {\r\n t: 0,\r\n r: 0,\r\n b: 0,\r\n l: 0,\r\n },\r\n _paddingAbsolute: false,\r\n _viewportPaddingStyle: {\r\n [strMarginRight]: 0,\r\n [strMarginBottom]: 0,\r\n [strMarginLeft]: 0,\r\n [strPaddingTop]: 0,\r\n [strPaddingRight]: 0,\r\n [strPaddingBottom]: 0,\r\n [strPaddingLeft]: 0,\r\n },\r\n _overflowEdge: { x: 0, y: 0 },\r\n _overflowAmount: { x: 0, y: 0 },\r\n _overflowStyle: {\r\n x: strHidden,\r\n y: strHidden,\r\n },\r\n _hasOverflow: {\r\n x: false,\r\n y: false,\r\n },\r\n _scrollCoordinates: getZeroScrollCoordinates(),\r\n };\r\n const { _target, _scrollOffsetElement, _viewportIsTarget, _removeScrollObscuringStyles } =\r\n elements;\r\n const { _nativeScrollbarsHiding, _nativeScrollbarsOverlaid } = getEnvironment();\r\n const doViewportArrange =\r\n !_nativeScrollbarsHiding && (_nativeScrollbarsOverlaid.x || _nativeScrollbarsOverlaid.y);\r\n\r\n const updateSegments: StructureUpdateSegment[] = [\r\n createTrinsicUpdateSegment(elements, state),\r\n createPaddingUpdateSegment(elements, state),\r\n createOverflowUpdateSegment(elements, state),\r\n ];\r\n\r\n return [\r\n appendStructureElements,\r\n (updateInfo) => {\r\n const updateHints: StructureSetupUpdateHints = {};\r\n const adjustScrollOffset = doViewportArrange;\r\n const scrollOffset = adjustScrollOffset && getElementScroll(_scrollOffsetElement);\r\n const revertScrollObscuringStyles = scrollOffset && _removeScrollObscuringStyles();\r\n\r\n each(updateSegments, (updateSegment) => {\r\n assignDeep(updateHints, updateSegment(updateInfo, updateHints) || {});\r\n });\r\n\r\n scrollElementTo(_scrollOffsetElement, scrollOffset);\r\n revertScrollObscuringStyles && revertScrollObscuringStyles();\r\n !_viewportIsTarget && scrollElementTo(_target, 0);\r\n\r\n return updateHints;\r\n },\r\n state,\r\n elements,\r\n canceled,\r\n ];\r\n};\r\n","import {\r\n isHTMLElement,\r\n appendChildren,\r\n createDiv,\r\n contents,\r\n parent,\r\n removeElements,\r\n push,\r\n runEachAndClear,\r\n removeAttrs,\r\n hasAttrClass,\r\n addEventListener,\r\n bind,\r\n inArray,\r\n addAttrClass,\r\n addRemoveAttrClass,\r\n setAttrs,\r\n getAttr,\r\n isBodyElement,\r\n getFocusedElement,\r\n wnd,\r\n focusElement,\r\n stopAndPrevent,\r\n getOffsetSize,\r\n getScrollSize,\r\n getStyles,\r\n strOverflowX,\r\n strOverflowY,\r\n} from '~/support';\r\nimport {\r\n dataAttributeHost,\r\n dataAttributeInitialize,\r\n dataAttributeViewport,\r\n dataValueViewportScrollbarHidden,\r\n dataAttributePadding,\r\n dataAttributeContent,\r\n dataAttributeHtmlBody,\r\n dataValueHostIsHost,\r\n dataValueViewportScrolling,\r\n} from '~/classnames';\r\nimport { getEnvironment } from '~/environment';\r\nimport {\r\n staticInitializationElement as generalStaticInitializationElement,\r\n dynamicInitializationElement as generalDynamicInitializationElement,\r\n} from '~/initialization';\r\nimport type {\r\n InitializationTarget,\r\n InitializationTargetElement,\r\n InitializationTargetObject,\r\n} from '~/initialization';\r\nimport { overflowIsVisible } from './structureSetup.utils';\r\n\r\nexport type StructureSetupElements = [\r\n elements: StructureSetupElementsObj,\r\n appendElements: () => () => void,\r\n canceled: () => void\r\n];\r\n\r\nexport interface StructureSetupElementsObj {\r\n _target: InitializationTargetElement;\r\n _host: HTMLElement;\r\n _viewport: HTMLElement;\r\n _padding: HTMLElement | false;\r\n _content: HTMLElement | false;\r\n _scrollOffsetElement: HTMLElement;\r\n _scrollEventElement: HTMLElement | Document;\r\n _originalScrollOffsetElement: HTMLElement;\r\n // ctx ----\r\n _isBody: boolean;\r\n _documentElm: Document;\r\n _targetIsElm: boolean;\r\n _viewportIsTarget: boolean;\r\n _windowElm: () => Window;\r\n _viewportHasClass: (viewportAttributeClassName: string) => boolean;\r\n _viewportAddRemoveClass: (viewportAttributeClassName: string, add?: boolean) => () => void;\r\n _removeScrollObscuringStyles: () => () => void;\r\n}\r\n\r\nexport const createStructureSetupElements = (\r\n target: InitializationTarget\r\n): StructureSetupElements => {\r\n const env = getEnvironment();\r\n const { _getDefaultInitialization, _nativeScrollbarsHiding } = env;\r\n const { elements: defaultInitElements } = _getDefaultInitialization();\r\n const {\r\n padding: defaultPaddingInitialization,\r\n viewport: defaultViewportInitialization,\r\n content: defaultContentInitialization,\r\n } = defaultInitElements;\r\n const targetIsElm = isHTMLElement(target);\r\n const targetStructureInitialization = (targetIsElm ? {} : target) as InitializationTargetObject;\r\n const { elements: initElements } = targetStructureInitialization;\r\n const {\r\n padding: paddingInitialization,\r\n viewport: viewportInitialization,\r\n content: contentInitialization,\r\n } = initElements || {};\r\n\r\n const targetElement = targetIsElm ? target : targetStructureInitialization.target;\r\n const isBody = isBodyElement(targetElement);\r\n const ownerDocument = targetElement.ownerDocument;\r\n const docElement = ownerDocument.documentElement;\r\n const getDocumentWindow = () => ownerDocument.defaultView || wnd;\r\n const staticInitializationElement = bind(generalStaticInitializationElement, [targetElement]);\r\n const dynamicInitializationElement = bind(generalDynamicInitializationElement, [targetElement]);\r\n const createNewDiv = bind(createDiv, '');\r\n const generateViewportElement = bind(\r\n staticInitializationElement,\r\n createNewDiv,\r\n defaultViewportInitialization\r\n );\r\n const generateContentElement = bind(\r\n dynamicInitializationElement,\r\n createNewDiv,\r\n defaultContentInitialization\r\n );\r\n const elementHasOverflow = (elm: HTMLElement) => {\r\n const offsetSize = getOffsetSize(elm);\r\n const scrollSize = getScrollSize(elm);\r\n const overflowX = getStyles(elm, strOverflowX);\r\n const overflowY = getStyles(elm, strOverflowY);\r\n\r\n return (\r\n (scrollSize.w - offsetSize.w > 0 && !overflowIsVisible(overflowX)) ||\r\n (scrollSize.h - offsetSize.h > 0 && !overflowIsVisible(overflowY))\r\n );\r\n };\r\n const possibleViewportElement = generateViewportElement(viewportInitialization);\r\n const viewportIsTarget = possibleViewportElement === targetElement;\r\n const viewportIsTargetBody = viewportIsTarget && isBody;\r\n const possibleContentElement = !viewportIsTarget && generateContentElement(contentInitialization);\r\n // edge case if passed viewportElement is contentElement:\r\n // viewport element has higher priority and content element will not be generated\r\n // will act the same way as initialization: `{ elements: { viewport, content: false } }`\r\n const viewportIsContent = !viewportIsTarget && possibleViewportElement === possibleContentElement;\r\n const viewportElement = viewportIsTargetBody ? docElement : possibleViewportElement;\r\n const hostElement = viewportIsTargetBody ? viewportElement : targetElement;\r\n const paddingElement =\r\n !viewportIsTarget &&\r\n dynamicInitializationElement(createNewDiv, defaultPaddingInitialization, paddingInitialization);\r\n const contentElement = !viewportIsContent && possibleContentElement;\r\n const generatedElements = [contentElement, viewportElement, paddingElement, hostElement].map(\r\n (elm) => isHTMLElement(elm) && !parent(elm) && elm\r\n );\r\n const elementIsGenerated = (elm: HTMLElement | false) => elm && inArray(generatedElements, elm);\r\n const originalNonBodyScrollOffsetElement =\r\n !elementIsGenerated(viewportElement) && elementHasOverflow(viewportElement)\r\n ? viewportElement\r\n : targetElement;\r\n const scrollOffsetElement = viewportIsTargetBody ? docElement : viewportElement;\r\n const scrollEventElement = viewportIsTargetBody ? ownerDocument : viewportElement;\r\n\r\n const evaluatedTargetObj: StructureSetupElementsObj = {\r\n _target: targetElement,\r\n _host: hostElement,\r\n _viewport: viewportElement,\r\n _padding: paddingElement,\r\n _content: contentElement,\r\n _scrollOffsetElement: scrollOffsetElement,\r\n _scrollEventElement: scrollEventElement,\r\n _originalScrollOffsetElement: isBody ? docElement : originalNonBodyScrollOffsetElement,\r\n _documentElm: ownerDocument,\r\n _isBody: isBody,\r\n _targetIsElm: targetIsElm,\r\n _viewportIsTarget: viewportIsTarget,\r\n _windowElm: getDocumentWindow,\r\n _viewportHasClass: (viewportAttributeClassName: string) =>\r\n hasAttrClass(viewportElement, dataAttributeViewport, viewportAttributeClassName),\r\n _viewportAddRemoveClass: (viewportAttributeClassName: string, add?: boolean) =>\r\n addRemoveAttrClass(viewportElement, dataAttributeViewport, viewportAttributeClassName, add),\r\n _removeScrollObscuringStyles: () =>\r\n addRemoveAttrClass(\r\n scrollOffsetElement,\r\n dataAttributeViewport,\r\n dataValueViewportScrolling,\r\n true\r\n ),\r\n };\r\n const { _target, _host, _padding, _viewport, _content } = evaluatedTargetObj;\r\n const destroyFns: (() => any)[] = [\r\n () => {\r\n // always remove dataAttributeHost & dataAttributeInitialize from host and from element if target is body\r\n removeAttrs(_host, [dataAttributeHost, dataAttributeInitialize]);\r\n removeAttrs(_target, dataAttributeInitialize);\r\n if (isBody) {\r\n removeAttrs(docElement, [dataAttributeInitialize, dataAttributeHost]);\r\n }\r\n },\r\n ];\r\n let targetContents = contents(\r\n [_content, _viewport, _padding, _host, _target].find((elm) => elm && !elementIsGenerated(elm))\r\n );\r\n const contentSlot = viewportIsTargetBody ? _target : _content || _viewport;\r\n const destroy = bind(runEachAndClear, destroyFns);\r\n const appendElements = () => {\r\n const docWnd = getDocumentWindow();\r\n const initActiveElm = getFocusedElement();\r\n const unwrap = (elm: HTMLElement | false | null | undefined) => {\r\n appendChildren(parent(elm), contents(elm));\r\n removeElements(elm);\r\n };\r\n // wrapping / unwrapping will cause the focused element to blur, this should prevent those events to surface\r\n const prepareWrapUnwrapFocus = (activeElement: Element | false | null | undefined) =>\r\n addEventListener(activeElement, 'focusin focusout focus blur', stopAndPrevent, {\r\n _capture: true,\r\n _passive: false,\r\n });\r\n const tabIndexStr = 'tabindex';\r\n const originalViewportTabIndex = getAttr(_viewport, tabIndexStr);\r\n const undoInitWrapUndwrapFocus = prepareWrapUnwrapFocus(initActiveElm);\r\n setAttrs(_host, dataAttributeHost, viewportIsTarget ? '' : dataValueHostIsHost);\r\n setAttrs(_padding, dataAttributePadding, '');\r\n setAttrs(_viewport, dataAttributeViewport, '');\r\n setAttrs(_content, dataAttributeContent, '');\r\n\r\n if (!viewportIsTarget) {\r\n setAttrs(_viewport, tabIndexStr, originalViewportTabIndex || '-1');\r\n isBody && setAttrs(docElement, dataAttributeHtmlBody, '');\r\n }\r\n\r\n appendChildren(contentSlot, targetContents);\r\n appendChildren(_host, _padding);\r\n appendChildren(_padding || _host, !viewportIsTarget && _viewport);\r\n appendChildren(_viewport, _content);\r\n\r\n push(destroyFns, [\r\n undoInitWrapUndwrapFocus,\r\n () => {\r\n const destroyActiveElm = getFocusedElement();\r\n const viewportIsGenerated = elementIsGenerated(_viewport);\r\n // if the focused element is viewport and viewport will be destroyed shift the focus to target\r\n // otherwise keep the focused element\r\n const destroyFocusElement =\r\n viewportIsGenerated && destroyActiveElm === _viewport ? _target : destroyActiveElm;\r\n const undoDestroyWrapUndwrapFocus = prepareWrapUnwrapFocus(destroyFocusElement);\r\n removeAttrs(_padding, dataAttributePadding);\r\n removeAttrs(_content, dataAttributeContent);\r\n removeAttrs(_viewport, dataAttributeViewport);\r\n isBody && removeAttrs(docElement, dataAttributeHtmlBody);\r\n originalViewportTabIndex\r\n ? setAttrs(_viewport, tabIndexStr, originalViewportTabIndex)\r\n : removeAttrs(_viewport, tabIndexStr);\r\n\r\n elementIsGenerated(_content) && unwrap(_content);\r\n viewportIsGenerated && unwrap(_viewport);\r\n elementIsGenerated(_padding) && unwrap(_padding);\r\n focusElement(destroyFocusElement);\r\n undoDestroyWrapUndwrapFocus();\r\n },\r\n ]);\r\n\r\n if (_nativeScrollbarsHiding && !viewportIsTarget) {\r\n addAttrClass(_viewport, dataAttributeViewport, dataValueViewportScrollbarHidden);\r\n push(destroyFns, bind(removeAttrs, _viewport, dataAttributeViewport));\r\n }\r\n\r\n // keep the original focused element focused except when\r\n // the target is body and viewport is not target, then shift the focus to the viewport element\r\n focusElement(\r\n !viewportIsTarget && isBody && initActiveElm === _target && docWnd.top === docWnd\r\n ? _viewport\r\n : initActiveElm\r\n );\r\n undoInitWrapUndwrapFocus();\r\n\r\n // @ts-ignore\r\n targetContents = 0;\r\n\r\n return destroy;\r\n };\r\n\r\n return [evaluatedTargetObj, appendElements, destroy];\r\n};\r\n","import {\r\n assignDeep,\r\n bind,\r\n getElementScroll,\r\n isEmptyObject,\r\n keys,\r\n runEachAndClear,\r\n scrollElementTo,\r\n} from '~/support';\r\nimport { createOptionCheck } from '~/options';\r\nimport type { OptionsCheckFn, Options, PartialOptions, ReadonlyOptions } from '~/options';\r\nimport type { DeepReadonly } from '~/typings';\r\nimport type { InitializationTarget } from '~/initialization';\r\nimport type { ObserversSetupState, ObserversSetupUpdateHints } from './observersSetup';\r\nimport type { StructureSetupState, StructureSetupUpdateHints } from './structureSetup';\r\nimport type { StructureSetupElementsObj } from './structureSetup/structureSetup.elements';\r\nimport type { ScrollbarsSetupElementsObj } from './scrollbarsSetup/scrollbarsSetup.elements';\r\nimport { createObserversSetup } from './observersSetup';\r\nimport { createScrollbarsSetup } from './scrollbarsSetup';\r\nimport { createStructureSetup } from './structureSetup';\r\n\r\nexport type SetupUpdateHints = Partial>;\r\n\r\nexport type SetupUpdateInfo = {\r\n _checkOption: OptionsCheckFn;\r\n _changedOptions: PartialOptions;\r\n _force: boolean;\r\n};\r\n\r\nexport type Setup<\r\n U extends SetupUpdateInfo,\r\n S extends Readonly>,\r\n H extends SetupUpdateHints | void\r\n> = [\r\n /** The create function which returns the `destroy` function. */\r\n _create: () => () => void,\r\n /** Function which updates the setup and returns the update result. */\r\n _update: (updateInfo: U) => H,\r\n /** Function which returns the current state. */\r\n _state: S\r\n];\r\n\r\nexport interface SetupsUpdateInfo {\r\n /** The options that changed or `undefined` if none changed. */\r\n _changedOptions?: PartialOptions;\r\n /** Whether chache should be ignored. */\r\n _force?: boolean;\r\n /** Whether observers should take their records and thus update as well. */\r\n _takeRecords?: boolean;\r\n /** Whether one or more scrollbars has been cloned. */\r\n _cloneScrollbar?: boolean;\r\n}\r\n\r\nexport interface SetupsUpdateHints {\r\n readonly _observersUpdateHints: DeepReadonly;\r\n readonly _structureUpdateHints: DeepReadonly;\r\n}\r\n\r\nexport interface SetupsState {\r\n readonly _observersSetupState: DeepReadonly;\r\n readonly _structureSetupState: DeepReadonly;\r\n}\r\n\r\nexport interface SetupsElements {\r\n readonly _structureSetupElements: DeepReadonly;\r\n readonly _scrollbarsSetupElements: DeepReadonly;\r\n}\r\n\r\nexport type Setups = [\r\n construct: () => () => void,\r\n update: (updateInfo: SetupsUpdateInfo) => boolean,\r\n getState: () => SetupsState,\r\n elements: SetupsElements,\r\n canceled: () => void\r\n];\r\n\r\nexport const createSetups = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions,\r\n isDestroyed: () => boolean,\r\n onUpdated: (updateInfo: SetupsUpdateInfo, updateHints: SetupsUpdateHints) => void,\r\n onScroll: (scrollEvent: Event) => void\r\n): Setups => {\r\n let cacheAndOptionsInitialized = false;\r\n const getCurrentOption = createOptionCheck(options, {});\r\n const [\r\n structureSetupCreate,\r\n structureSetupUpdate,\r\n structureSetupState,\r\n structureSetupElements,\r\n structureSetupCanceled,\r\n ] = createStructureSetup(target);\r\n const [observersSetupCreate, observersSetupUpdate, observersSetupState] = createObserversSetup(\r\n structureSetupElements,\r\n structureSetupState,\r\n getCurrentOption,\r\n (observersUpdateHints) => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n update({}, observersUpdateHints);\r\n }\r\n );\r\n const [scrollbarsSetupCreate, scrollbarsSetupUpdate, , scrollbarsSetupElements] =\r\n createScrollbarsSetup(\r\n target,\r\n options,\r\n observersSetupState,\r\n structureSetupState,\r\n structureSetupElements,\r\n onScroll\r\n );\r\n\r\n const updateHintsAreTruthy = (hints: SetupUpdateHints) =>\r\n keys(hints).some((key) => !!hints[key as keyof typeof hints]);\r\n\r\n const update = (\r\n updateInfo: SetupsUpdateInfo,\r\n observerUpdateHints?: ObserversSetupUpdateHints\r\n ): boolean => {\r\n if (isDestroyed()) {\r\n return false;\r\n }\r\n\r\n const {\r\n _changedOptions: rawChangedOptions,\r\n _force: rawForce,\r\n _takeRecords,\r\n _cloneScrollbar,\r\n } = updateInfo;\r\n\r\n const _changedOptions = rawChangedOptions || {};\r\n const _force = !!rawForce || !cacheAndOptionsInitialized;\r\n const baseUpdateInfoObj: SetupUpdateInfo = {\r\n _checkOption: createOptionCheck(options, _changedOptions, _force),\r\n _changedOptions,\r\n _force,\r\n };\r\n\r\n if (_cloneScrollbar) {\r\n scrollbarsSetupUpdate(baseUpdateInfoObj);\r\n return false;\r\n }\r\n\r\n const observersHints =\r\n observerUpdateHints ||\r\n observersSetupUpdate(\r\n assignDeep({}, baseUpdateInfoObj, {\r\n _takeRecords,\r\n })\r\n );\r\n\r\n const structureHints = structureSetupUpdate(\r\n assignDeep({}, baseUpdateInfoObj, {\r\n _observersState: observersSetupState,\r\n _observersUpdateHints: observersHints,\r\n })\r\n );\r\n\r\n scrollbarsSetupUpdate(\r\n assignDeep({}, baseUpdateInfoObj, {\r\n _observersUpdateHints: observersHints,\r\n _structureUpdateHints: structureHints,\r\n })\r\n );\r\n\r\n const truthyObserversHints = updateHintsAreTruthy(observersHints);\r\n const truthyStructureHints = updateHintsAreTruthy(structureHints);\r\n const changed =\r\n truthyObserversHints || truthyStructureHints || !isEmptyObject(_changedOptions) || _force;\r\n\r\n cacheAndOptionsInitialized = true;\r\n\r\n changed &&\r\n onUpdated(updateInfo, {\r\n _observersUpdateHints: observersHints,\r\n _structureUpdateHints: structureHints,\r\n });\r\n\r\n return changed;\r\n };\r\n\r\n return [\r\n () => {\r\n const { _originalScrollOffsetElement, _scrollOffsetElement, _removeScrollObscuringStyles } =\r\n structureSetupElements;\r\n const initialScroll = getElementScroll(_originalScrollOffsetElement);\r\n const destroyFns = [observersSetupCreate(), structureSetupCreate(), scrollbarsSetupCreate()];\r\n const revertScrollObscuringStyles = _removeScrollObscuringStyles();\r\n\r\n scrollElementTo(_scrollOffsetElement, initialScroll);\r\n revertScrollObscuringStyles();\r\n\r\n return bind(runEachAndClear, destroyFns);\r\n },\r\n update,\r\n () => ({\r\n _observersSetupState: observersSetupState,\r\n _structureSetupState: structureSetupState,\r\n }),\r\n {\r\n _structureSetupElements: structureSetupElements,\r\n _scrollbarsSetupElements: scrollbarsSetupElements,\r\n },\r\n structureSetupCanceled,\r\n ];\r\n};\r\n","import {\r\n bind,\r\n noop,\r\n addEventListener,\r\n push,\r\n runEachAndClear,\r\n selfClearTimeout,\r\n strScroll,\r\n strVisible,\r\n} from '~/support';\r\nimport { getEnvironment } from '~/environment';\r\nimport {\r\n classNameScrollbarThemeNone,\r\n classNameScrollbarVisible,\r\n classNameScrollbarUnusable,\r\n classNameScrollbarCornerless,\r\n classNameScrollbarAutoHideHidden,\r\n classNameScrollbarHandleInteractive,\r\n classNameScrollbarTrackInteractive,\r\n classNameScrollbarRtl,\r\n classNameScrollbarAutoHide,\r\n} from '~/classnames';\r\nimport type { OverflowBehavior, ReadonlyOptions } from '~/options';\r\nimport type { ScrollbarsSetupElementsObj } from './scrollbarsSetup.elements';\r\nimport type {\r\n ObserversSetupState,\r\n ObserversSetupUpdateHints,\r\n Setup,\r\n SetupUpdateInfo,\r\n StructureSetupState,\r\n StructureSetupUpdateHints,\r\n} from '~/setups';\r\nimport type { InitializationTarget } from '~/initialization';\r\nimport type { OverflowStyle } from '~/typings';\r\nimport type { StructureSetupElementsObj } from '../structureSetup/structureSetup.elements';\r\nimport { createScrollbarsSetupElements } from './scrollbarsSetup.elements';\r\nimport { createScrollbarsSetupEvents } from './scrollbarsSetup.events';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\r\nexport interface ScrollbarsSetupState {}\r\n\r\nexport interface ScrollbarsSetupUpdateInfo extends SetupUpdateInfo {\r\n _observersUpdateHints?: ObserversSetupUpdateHints;\r\n _structureUpdateHints?: StructureSetupUpdateHints;\r\n}\r\n\r\nexport type ScrollbarsSetup = [\r\n ...Setup,\r\n /** The elements created by the scrollbars setup. */\r\n ScrollbarsSetupElementsObj\r\n];\r\n\r\nexport const createScrollbarsSetup = (\r\n target: InitializationTarget,\r\n options: ReadonlyOptions,\r\n observersSetupState: ObserversSetupState,\r\n structureSetupState: StructureSetupState,\r\n structureSetupElements: StructureSetupElementsObj,\r\n onScroll: (event: Event) => void\r\n): ScrollbarsSetup => {\r\n let mouseInHost: boolean | undefined;\r\n let autoHideIsMove: boolean | undefined;\r\n let autoHideIsLeave: boolean | undefined;\r\n let autoHideIsNever: boolean | undefined;\r\n let prevTheme: string | null | undefined;\r\n let instanceAutoHideSuspendScrollDestroyFn = noop;\r\n let instanceAutoHideDelay = 0;\r\n\r\n // needed to not fire unnecessary operations for pointer events on safari which will cause side effects: https://github.com/KingSora/OverlayScrollbars/issues/560\r\n const isHoverablePointerType = (event: PointerEvent) => event.pointerType === 'mouse';\r\n\r\n const [requestScrollAnimationFrame, cancelScrollAnimationFrame] = selfClearTimeout();\r\n const [autoHideInstantInteractionTimeout, clearAutoHideInstantInteractionTimeout] =\r\n selfClearTimeout(100);\r\n const [autoHideSuspendTimeout, clearAutoHideSuspendTimeout] = selfClearTimeout(100);\r\n const [auotHideTimeout, clearAutoHideTimeout] = selfClearTimeout(() => instanceAutoHideDelay);\r\n const [elements, appendElements] = createScrollbarsSetupElements(\r\n target,\r\n structureSetupElements,\r\n structureSetupState,\r\n createScrollbarsSetupEvents(\r\n options,\r\n structureSetupElements,\r\n structureSetupState,\r\n (event) =>\r\n isHoverablePointerType(event) &&\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n manageScrollbarsAutoHideInstantInteraction()\r\n )\r\n );\r\n const { _host, _scrollEventElement, _isBody } = structureSetupElements;\r\n const {\r\n _scrollbarsAddRemoveClass,\r\n _refreshScrollbarsHandleLength,\r\n _refreshScrollbarsHandleOffset,\r\n _refreshScrollbarsScrollCoordinates,\r\n _refreshScrollbarsScrollbarOffset,\r\n } = elements;\r\n const manageScrollbarsAutoHide = (removeAutoHide: boolean, delayless?: boolean) => {\r\n clearAutoHideTimeout();\r\n if (removeAutoHide) {\r\n _scrollbarsAddRemoveClass(classNameScrollbarAutoHideHidden);\r\n } else {\r\n const hide = bind(_scrollbarsAddRemoveClass, classNameScrollbarAutoHideHidden, true);\r\n if (instanceAutoHideDelay > 0 && !delayless) {\r\n auotHideTimeout(hide);\r\n } else {\r\n hide();\r\n }\r\n }\r\n };\r\n const manageScrollbarsAutoHideInstantInteraction = () => {\r\n if (autoHideIsLeave ? !mouseInHost : !autoHideIsNever) {\r\n manageScrollbarsAutoHide(true);\r\n autoHideInstantInteractionTimeout(() => {\r\n manageScrollbarsAutoHide(false);\r\n });\r\n }\r\n };\r\n const manageAutoHideSuspension = (add: boolean) => {\r\n _scrollbarsAddRemoveClass(classNameScrollbarAutoHide, add, true);\r\n _scrollbarsAddRemoveClass(classNameScrollbarAutoHide, add, false);\r\n };\r\n const onHostMouseEnter = (event: PointerEvent) => {\r\n if (isHoverablePointerType(event)) {\r\n mouseInHost = autoHideIsLeave;\r\n autoHideIsLeave && manageScrollbarsAutoHide(true);\r\n }\r\n };\r\n const destroyFns: (() => void)[] = [\r\n clearAutoHideTimeout,\r\n clearAutoHideInstantInteractionTimeout,\r\n clearAutoHideSuspendTimeout,\r\n cancelScrollAnimationFrame,\r\n () => instanceAutoHideSuspendScrollDestroyFn(),\r\n\r\n addEventListener(_host, 'pointerover', onHostMouseEnter, { _once: true }),\r\n addEventListener(_host, 'pointerenter', onHostMouseEnter),\r\n addEventListener(_host, 'pointerleave', (event: PointerEvent) => {\r\n if (isHoverablePointerType(event)) {\r\n mouseInHost = false;\r\n autoHideIsLeave && manageScrollbarsAutoHide(false);\r\n }\r\n }),\r\n addEventListener(_host, 'pointermove', (event: PointerEvent) => {\r\n isHoverablePointerType(event) &&\r\n autoHideIsMove &&\r\n manageScrollbarsAutoHideInstantInteraction();\r\n }),\r\n addEventListener(_scrollEventElement, 'scroll', (event) => {\r\n requestScrollAnimationFrame(() => {\r\n _refreshScrollbarsHandleOffset();\r\n manageScrollbarsAutoHideInstantInteraction();\r\n });\r\n\r\n onScroll(event);\r\n\r\n _refreshScrollbarsScrollbarOffset();\r\n }),\r\n ];\r\n\r\n return [\r\n () => bind(runEachAndClear, push(destroyFns, appendElements())),\r\n ({ _checkOption, _force, _observersUpdateHints, _structureUpdateHints }) => {\r\n const {\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _scrollCoordinatesChanged,\r\n } = _structureUpdateHints || {};\r\n const { _directionChanged, _appear } = _observersUpdateHints || {};\r\n const { _directionIsRTL } = observersSetupState;\r\n const { _nativeScrollbarsOverlaid } = getEnvironment();\r\n const { _overflowStyle, _hasOverflow } = structureSetupState;\r\n const [showNativeOverlaidScrollbarsOption, showNativeOverlaidScrollbarsChanged] =\r\n _checkOption('showNativeOverlaidScrollbars');\r\n const [theme, themeChanged] = _checkOption('scrollbars.theme');\r\n const [visibility, visibilityChanged] = _checkOption('scrollbars.visibility');\r\n const [autoHide, autoHideChanged] = _checkOption('scrollbars.autoHide');\r\n const [autoHideSuspend, autoHideSuspendChanged] = _checkOption('scrollbars.autoHideSuspend');\r\n const [autoHideDelay] = _checkOption('scrollbars.autoHideDelay');\r\n const [dragScroll, dragScrollChanged] = _checkOption('scrollbars.dragScroll');\r\n const [clickScroll, clickScrollChanged] = _checkOption('scrollbars.clickScroll');\r\n const [overflow, overflowChanged] = _checkOption('overflow');\r\n const trulyAppeared = _appear && !_force;\r\n const hasOverflow = _hasOverflow.x || _hasOverflow.y;\r\n const updateScrollbars =\r\n _overflowEdgeChanged ||\r\n _overflowAmountChanged ||\r\n _scrollCoordinatesChanged ||\r\n _directionChanged ||\r\n _force;\r\n const updateVisibility = _overflowStyleChanged || visibilityChanged || overflowChanged;\r\n const showNativeOverlaidScrollbars =\r\n showNativeOverlaidScrollbarsOption &&\r\n _nativeScrollbarsOverlaid.x &&\r\n _nativeScrollbarsOverlaid.y;\r\n\r\n const setScrollbarVisibility = (\r\n overflowBehavior: OverflowBehavior,\r\n overflowStyle: OverflowStyle,\r\n isHorizontal: boolean\r\n ) => {\r\n const isVisible =\r\n overflowBehavior.includes(strScroll) &&\r\n (visibility === strVisible || (visibility === 'auto' && overflowStyle === strScroll));\r\n\r\n _scrollbarsAddRemoveClass(classNameScrollbarVisible, isVisible, isHorizontal);\r\n\r\n return isVisible;\r\n };\r\n\r\n instanceAutoHideDelay = autoHideDelay;\r\n\r\n if (trulyAppeared) {\r\n if (autoHideSuspend && hasOverflow) {\r\n manageAutoHideSuspension(false);\r\n instanceAutoHideSuspendScrollDestroyFn();\r\n autoHideSuspendTimeout(() => {\r\n instanceAutoHideSuspendScrollDestroyFn = addEventListener(\r\n _scrollEventElement,\r\n 'scroll',\r\n bind(manageAutoHideSuspension, true),\r\n {\r\n _once: true,\r\n }\r\n );\r\n });\r\n } else {\r\n manageAutoHideSuspension(true);\r\n }\r\n }\r\n\r\n if (showNativeOverlaidScrollbarsChanged) {\r\n _scrollbarsAddRemoveClass(classNameScrollbarThemeNone, showNativeOverlaidScrollbars);\r\n }\r\n\r\n if (themeChanged) {\r\n _scrollbarsAddRemoveClass(prevTheme);\r\n _scrollbarsAddRemoveClass(theme, true);\r\n\r\n prevTheme = theme;\r\n }\r\n\r\n if (autoHideSuspendChanged && !autoHideSuspend) {\r\n manageAutoHideSuspension(true);\r\n }\r\n\r\n if (autoHideChanged) {\r\n autoHideIsMove = autoHide === 'move';\r\n autoHideIsLeave = autoHide === 'leave';\r\n autoHideIsNever = autoHide === 'never';\r\n manageScrollbarsAutoHide(autoHideIsNever, true);\r\n }\r\n\r\n if (dragScrollChanged) {\r\n _scrollbarsAddRemoveClass(classNameScrollbarHandleInteractive, dragScroll);\r\n }\r\n\r\n if (clickScrollChanged) {\r\n _scrollbarsAddRemoveClass(classNameScrollbarTrackInteractive, clickScroll);\r\n }\r\n\r\n // always update scrollbar visibility before scrollbar size\r\n // the scrollbar size is influenced whether both or just one scrollbar is visible (because of the corner element)\r\n if (updateVisibility) {\r\n const xVisible = setScrollbarVisibility(overflow.x, _overflowStyle.x, true);\r\n const yVisible = setScrollbarVisibility(overflow.y, _overflowStyle.y, false);\r\n const hasCorner = xVisible && yVisible;\r\n\r\n _scrollbarsAddRemoveClass(classNameScrollbarCornerless, !hasCorner);\r\n }\r\n\r\n // always update scrollbar sizes after the visibility\r\n if (updateScrollbars) {\r\n _refreshScrollbarsHandleOffset();\r\n _refreshScrollbarsHandleLength();\r\n _refreshScrollbarsScrollbarOffset();\r\n _scrollCoordinatesChanged && _refreshScrollbarsScrollCoordinates();\r\n\r\n _scrollbarsAddRemoveClass(classNameScrollbarUnusable, !_hasOverflow.x, true);\r\n _scrollbarsAddRemoveClass(classNameScrollbarUnusable, !_hasOverflow.y, false);\r\n _scrollbarsAddRemoveClass(classNameScrollbarRtl, _directionIsRTL && !_isBody);\r\n }\r\n },\r\n {},\r\n elements,\r\n ];\r\n};\r\n","import {\r\n assignDeep,\r\n isEmptyObject,\r\n isFunction,\r\n isHTMLElement,\r\n createEventListenerHub,\r\n isPlainObject,\r\n keys,\r\n isArray,\r\n push,\r\n runEachAndClear,\r\n bind,\r\n removeUndefinedProperties,\r\n} from '~/support';\r\nimport { getOptionsDiff } from '~/options';\r\nimport { getEnvironment } from '~/environment';\r\nimport { cancelInitialization } from '~/initialization';\r\nimport { addInstance, getInstance, removeInstance } from '~/instances';\r\nimport { createSetups } from '~/setups';\r\nimport {\r\n addPlugins,\r\n getStaticPluginModuleInstance,\r\n optionsValidationPluginModuleName,\r\n pluginModules,\r\n registerPluginModuleInstances,\r\n} from '~/plugins';\r\nimport type { XY, TRBL } from '~/support';\r\nimport type { Options, PartialOptions, ReadonlyOptions } from '~/options';\r\nimport type {\r\n InferInstancePluginModuleInstance,\r\n InferStaticPluginModuleInstance,\r\n InstancePlugin,\r\n OptionsValidationPlugin,\r\n Plugin,\r\n PluginModuleInstance,\r\n StaticPlugin,\r\n} from '~/plugins';\r\nimport type { Initialization, InitializationTarget, PartialInitialization } from '~/initialization';\r\nimport type { OverflowStyle } from '~/typings';\r\nimport type { EventListenerArgs, EventListener, EventListeners } from '~/eventListeners';\r\nimport type {\r\n ScrollbarsSetupElement,\r\n ScrollbarStructure,\r\n} from '~/setups/scrollbarsSetup/scrollbarsSetup.elements';\r\nimport { setNonce } from './nonce';\r\n\r\n// Notes:\r\n// Height intrinsic detection use \"content: true\" init strategy - or open ticket for custom height intrinsic observer\r\n\r\n/**\r\n * Describes the OverlayScrollbars environment.\r\n */\r\nexport interface Environment {\r\n /** The native scrollbars size of the browser / system. */\r\n scrollbarsSize: XY;\r\n /** Whether the native scrollbars are overlaid. */\r\n scrollbarsOverlaid: XY;\r\n /** Whether the browser supports native scrollbars hiding. */\r\n scrollbarsHiding: boolean;\r\n /** Whether the browser supports the ScrollTimeline API. */\r\n scrollTimeline: boolean;\r\n /** The default Initialization to use if nothing else is specified. */\r\n staticDefaultInitialization: Initialization;\r\n /** The default Options to use if nothing else is specified. */\r\n staticDefaultOptions: Options;\r\n\r\n /** Returns the current default Initialization. */\r\n getDefaultInitialization(): Initialization;\r\n /** Returns the current default Options. */\r\n getDefaultOptions(): Options;\r\n\r\n /**\r\n * Sets a new default Initialization.\r\n * If the new default Initialization is partially filled, its deeply merged with the current default Initialization.\r\n * @param newDefaultInitialization The new default Initialization.\r\n * @returns The current default Initialization.\r\n */\r\n setDefaultInitialization(newDefaultInitialization: PartialInitialization): Initialization;\r\n /**\r\n * Sets new default Options.\r\n * If the new default Options are partially filled, they're deeply merged with the current default Options.\r\n * @param newDefaultOptions The new default Options.\r\n * @returns The current default options.\r\n */\r\n setDefaultOptions(newDefaultOptions: PartialOptions): Options;\r\n}\r\n\r\n/**\r\n * The primary entry point to OverlayScrollbars.\r\n */\r\nexport interface OverlayScrollbarsStatic {\r\n /**\r\n * Returns the current OverlayScrollbars instance if the target already has an instance.\r\n * @param target The initialization target to from which the instance shall be returned.\r\n */\r\n (target: InitializationTarget): OverlayScrollbars | undefined;\r\n /**\r\n * Initializes a new OverlayScrollbars instance to the given target\r\n * or returns the current OverlayScrollbars instance if the target already has an instance.\r\n * @param target The target.\r\n * @param options The options. (Can be just an empty object)\r\n * @param eventListeners Optional event listeners.\r\n */\r\n (\r\n target: InitializationTarget,\r\n options: PartialOptions,\r\n eventListeners?: EventListeners\r\n ): OverlayScrollbars;\r\n\r\n /**\r\n * Checks whether the passed value is a valid and not destroyed overlayscrollbars instance.\r\n * @param osInstance The value which shall be checked.\r\n */\r\n valid(osInstance: any): osInstance is OverlayScrollbars;\r\n /**\r\n * Gets the environment.\r\n */\r\n env(): Environment;\r\n /**\r\n * Sets the nonce attribute for inline styles.\r\n */\r\n nonce(newNonce: string | undefined): void;\r\n /**\r\n * Adds a single plugin.\r\n * @param plugin The plugin to be added.\r\n * @returns The plugins static modules instance or `void` if no instance was found.\r\n */\r\n plugin

    (\r\n plugin: P\r\n ): P extends StaticPlugin ? InferStaticPluginModuleInstance

    : void;\r\n /**\r\n * Adds multiple plugins.\r\n * @param plugins The plugins to be added.\r\n * @returns The plugins static modules instances or `void` if no instance was found.\r\n */\r\n plugin

    (\r\n plugins: P\r\n ): P extends [Plugin, ...Plugin[]]\r\n ? {\r\n [K in keyof P]: P[K] extends StaticPlugin ? InferStaticPluginModuleInstance : void;\r\n }\r\n : void;\r\n}\r\n\r\n/**\r\n * Describes a OverlayScrollbars instances state.\r\n */\r\nexport interface State {\r\n /** Describes the current padding in pixel. */\r\n padding: TRBL;\r\n /** Whether the current padding is absolute. */\r\n paddingAbsolute: boolean;\r\n /** The client width (x) & height (y) of the viewport in pixel. */\r\n overflowEdge: XY;\r\n /** The overflow amount in pixel. */\r\n overflowAmount: XY;\r\n /** The css overflow style of the viewport. */\r\n overflowStyle: XY;\r\n /** Whether the viewport has an overflow. */\r\n hasOverflow: XY;\r\n /** The scroll coordinates of the viewport. */\r\n scrollCoordinates: {\r\n /** The start (origin) scroll coordinates for each axis. */\r\n start: XY;\r\n /** The end scroll coordinates for each axis. */\r\n end: XY;\r\n };\r\n /** Whether the direction is considered rtl. */\r\n directionRTL: boolean;\r\n /** Whether the instance is considered destroyed. */\r\n destroyed: boolean;\r\n}\r\n\r\n/**\r\n * Describes the elements of a scrollbar.\r\n */\r\nexport interface ScrollbarElements {\r\n /**\r\n * The root element of the scrollbar.\r\n * The HTML structure looks like this:\r\n * \r\n * \r\n * \r\n * \r\n * \r\n */\r\n scrollbar: HTMLElement;\r\n /** The track element of the scrollbar. */\r\n track: HTMLElement;\r\n /** The handle element of the scrollbar. */\r\n handle: HTMLElement;\r\n}\r\n\r\n/**\r\n * Describes the elements of a scrollbar and provides the possibility to clone them.\r\n */\r\nexport interface CloneableScrollbarElements extends ScrollbarElements {\r\n /**\r\n * Clones the current scrollbar and returns the cloned elements.\r\n * The returned elements aren't added to the DOM.\r\n */\r\n clone(): ScrollbarElements;\r\n}\r\n\r\n/**\r\n * Describes the elements of a OverlayScrollbars instance.\r\n */\r\nexport interface Elements {\r\n /** The element the instance was applied to. */\r\n target: HTMLElement;\r\n /** The host element. Its the root of all other elements. */\r\n host: HTMLElement;\r\n /**\r\n * The element which is responsible to apply correct paddings.\r\n * Depending on the Initialization it can be the same as the viewport element.\r\n */\r\n padding: HTMLElement;\r\n /** The element which is responsible to do any scrolling. */\r\n viewport: HTMLElement;\r\n /**\r\n * The element which is responsible to hold the content.\r\n * Depending on the Initialization it can be the same as the viewport element.\r\n */\r\n content: HTMLElement;\r\n /**\r\n * The element through which you can get the current `scrollLeft` or `scrollTop` offset.\r\n * Depending on the target element it can be the same as the viewport element.\r\n */\r\n scrollOffsetElement: HTMLElement;\r\n /**\r\n * The element through which you can add `scroll` events.\r\n * Depending on the target element it can be the same as the viewport element.\r\n */\r\n scrollEventElement: HTMLElement | Document;\r\n /** The horizontal scrollbar elements. */\r\n scrollbarHorizontal: CloneableScrollbarElements;\r\n /** The vertical scrollbar elements. */\r\n scrollbarVertical: CloneableScrollbarElements;\r\n}\r\n\r\n/**\r\n * Describes a OverlayScrollbars instance.\r\n */\r\nexport interface OverlayScrollbars {\r\n /** Gets the current options of the instance. */\r\n options(): Options;\r\n /**\r\n * Sets the options of the instance.\r\n * If the new options are partially filled, they're deeply merged with either the current options or the current default options.\r\n * @param newOptions The new options which should be applied.\r\n * @param pure Whether the options should be reset before the new options are added.\r\n * @returns Returns the current options of the instance.\r\n */\r\n options(newOptions: PartialOptions, pure?: boolean): Options;\r\n\r\n /**\r\n * Adds event listeners to the instance.\r\n * @param eventListeners An object which contains the added listeners.\r\n * @param pure Whether all already added event listeners should be removed before the new listeners are added.\r\n * @returns Returns a function which removes the added listeners.\r\n */\r\n on(eventListeners: EventListeners, pure?: boolean): () => void;\r\n /**\r\n * Adds a single event listener to the instance.\r\n * @param name The name of the event.\r\n * @param listener The listener which is invoked on that event.\r\n * @returns Returns a function which removes the added listeners.\r\n */\r\n on(name: N, listener: EventListener): () => void;\r\n /**\r\n * Adds multiple event listeners to the instance.\r\n * @param name The name of the event.\r\n * @param listener The listeners which are invoked on that event.\r\n * @returns Returns a function which removes the added listeners.\r\n */\r\n on(name: N, listener: EventListener[]): () => void;\r\n\r\n /**\r\n * Removes a single event listener from the instance.\r\n * @param name The name of the event.\r\n * @param listener The listener which shall be removed.\r\n */\r\n off(name: N, listener: EventListener): void;\r\n /**\r\n * Removes multiple event listeners from the instance.\r\n * @param name The name of the event.\r\n * @param listener The listeners which shall be removed.\r\n */\r\n off(name: N, listener: EventListener[]): void;\r\n\r\n /**\r\n * Updates the instance.\r\n * @param force Whether the update should force the cache to be invalidated.\r\n * @returns A boolean which indicates whether the `update` event was triggered through this update.\r\n * The update event is only triggered if something changed because of this update.\r\n */\r\n update(force?: boolean): boolean;\r\n /** Returns the state of the instance. */\r\n state(): State;\r\n /** Returns the elements of the instance. */\r\n elements(): Elements;\r\n /** Destroys the instance and removes all added elements. */\r\n destroy(): void;\r\n /** Returns the instance of the passed plugin or `undefined` if no instance was found. */\r\n plugin

    (osPlugin: P): InferInstancePluginModuleInstance

    | undefined;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-redeclare\r\nexport const OverlayScrollbars: OverlayScrollbarsStatic = (\r\n target: InitializationTarget,\r\n options?: PartialOptions,\r\n eventListeners?: EventListeners\r\n) => {\r\n const { _getDefaultOptions } = getEnvironment();\r\n const targetIsElement = isHTMLElement(target);\r\n const instanceTarget = targetIsElement ? target : target.target;\r\n const potentialInstance = getInstance(instanceTarget);\r\n if (options && !potentialInstance) {\r\n let destroyed = false;\r\n const destroyFns: (() => void)[] = [];\r\n const instancePluginModuleInstances: Record = {};\r\n const validateOptions = (newOptions: PartialOptions) => {\r\n const newOptionsWithoutUndefined = removeUndefinedProperties(newOptions, true);\r\n const pluginValidate = getStaticPluginModuleInstance(\r\n optionsValidationPluginModuleName\r\n );\r\n return pluginValidate\r\n ? pluginValidate(newOptionsWithoutUndefined, true)\r\n : newOptionsWithoutUndefined;\r\n };\r\n const currentOptions: ReadonlyOptions = assignDeep(\r\n {},\r\n _getDefaultOptions(),\r\n validateOptions(options)\r\n );\r\n const [addPluginEvent, removePluginEvents, triggerPluginEvent] =\r\n createEventListenerHub();\r\n const [addInstanceEvent, removeInstanceEvents, triggerInstanceEvent] =\r\n createEventListenerHub(eventListeners);\r\n const triggerEvent: typeof triggerPluginEvent = (name, args) => {\r\n triggerInstanceEvent(name, args);\r\n triggerPluginEvent(name, args);\r\n };\r\n const [setupsConstruct, setupsUpdate, setupsState, setupsElements, setupsCanceled] =\r\n createSetups(\r\n target,\r\n currentOptions,\r\n () => destroyed,\r\n ({ _changedOptions, _force }, { _observersUpdateHints, _structureUpdateHints }) => {\r\n const {\r\n _sizeChanged,\r\n _directionChanged,\r\n _heightIntrinsicChanged,\r\n _contentMutation,\r\n _hostMutation,\r\n _appear,\r\n } = _observersUpdateHints;\r\n\r\n const {\r\n _overflowEdgeChanged,\r\n _overflowAmountChanged,\r\n _overflowStyleChanged,\r\n _scrollCoordinatesChanged,\r\n } = _structureUpdateHints;\r\n\r\n triggerEvent('updated', [\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n instance,\r\n {\r\n updateHints: {\r\n sizeChanged: !!_sizeChanged,\r\n directionChanged: !!_directionChanged,\r\n heightIntrinsicChanged: !!_heightIntrinsicChanged,\r\n overflowEdgeChanged: !!_overflowEdgeChanged,\r\n overflowAmountChanged: !!_overflowAmountChanged,\r\n overflowStyleChanged: !!_overflowStyleChanged,\r\n scrollCoordinatesChanged: !!_scrollCoordinatesChanged,\r\n contentMutation: !!_contentMutation,\r\n hostMutation: !!_hostMutation,\r\n appear: !!_appear,\r\n },\r\n changedOptions: _changedOptions || {},\r\n force: !!_force,\r\n },\r\n ]);\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n (scrollEvent) => triggerEvent('scroll', [instance, scrollEvent])\r\n );\r\n\r\n const destroy = (canceled: boolean) => {\r\n removeInstance(instanceTarget);\r\n runEachAndClear(destroyFns);\r\n\r\n destroyed = true;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n triggerEvent('destroyed', [instance, canceled]);\r\n removePluginEvents();\r\n removeInstanceEvents();\r\n };\r\n\r\n const instance: OverlayScrollbars = {\r\n options(newOptions?: PartialOptions, pure?: boolean) {\r\n if (newOptions) {\r\n const base = pure ? _getDefaultOptions() : {};\r\n const changedOptions = getOptionsDiff(\r\n currentOptions,\r\n assignDeep(base, validateOptions(newOptions))\r\n );\r\n if (!isEmptyObject(changedOptions)) {\r\n assignDeep(currentOptions, changedOptions);\r\n setupsUpdate({ _changedOptions: changedOptions });\r\n }\r\n }\r\n return assignDeep({}, currentOptions);\r\n },\r\n on: addInstanceEvent,\r\n off: (name, listener) => {\r\n name && listener && removeInstanceEvents(name, listener);\r\n },\r\n state() {\r\n const { _observersSetupState, _structureSetupState } = setupsState();\r\n const { _directionIsRTL } = _observersSetupState;\r\n const {\r\n _overflowEdge,\r\n _overflowAmount,\r\n _overflowStyle,\r\n _hasOverflow,\r\n _padding,\r\n _paddingAbsolute,\r\n _scrollCoordinates,\r\n } = _structureSetupState;\r\n return assignDeep(\r\n {},\r\n {\r\n overflowEdge: _overflowEdge,\r\n overflowAmount: _overflowAmount,\r\n overflowStyle: _overflowStyle,\r\n hasOverflow: _hasOverflow,\r\n scrollCoordinates: {\r\n start: _scrollCoordinates._start,\r\n end: _scrollCoordinates._end,\r\n },\r\n padding: _padding,\r\n paddingAbsolute: _paddingAbsolute,\r\n directionRTL: _directionIsRTL,\r\n destroyed,\r\n }\r\n );\r\n },\r\n elements() {\r\n const {\r\n _target,\r\n _host,\r\n _padding,\r\n _viewport,\r\n _content,\r\n _scrollOffsetElement,\r\n _scrollEventElement,\r\n } = setupsElements._structureSetupElements;\r\n const { _horizontal, _vertical } = setupsElements._scrollbarsSetupElements;\r\n const translateScrollbarStructure = (\r\n scrollbarStructure: ScrollbarStructure\r\n ): ScrollbarElements => {\r\n const { _handle, _track, _scrollbar } = scrollbarStructure;\r\n return {\r\n scrollbar: _scrollbar,\r\n track: _track,\r\n handle: _handle,\r\n };\r\n };\r\n const translateScrollbarsSetupElement = (\r\n scrollbarsSetupElement: ScrollbarsSetupElement\r\n ): CloneableScrollbarElements => {\r\n const { _scrollbarStructures, _clone } = scrollbarsSetupElement;\r\n const translatedStructure = translateScrollbarStructure(_scrollbarStructures[0]);\r\n\r\n return assignDeep({}, translatedStructure, {\r\n clone: () => {\r\n const result = translateScrollbarStructure(_clone());\r\n setupsUpdate({ _cloneScrollbar: true });\r\n return result;\r\n },\r\n });\r\n };\r\n return assignDeep(\r\n {},\r\n {\r\n target: _target,\r\n host: _host,\r\n padding: _padding || _viewport,\r\n viewport: _viewport,\r\n content: _content || _viewport,\r\n scrollOffsetElement: _scrollOffsetElement,\r\n scrollEventElement: _scrollEventElement,\r\n scrollbarHorizontal: translateScrollbarsSetupElement(_horizontal),\r\n scrollbarVertical: translateScrollbarsSetupElement(_vertical),\r\n }\r\n );\r\n },\r\n update: (_force?: boolean) => setupsUpdate({ _force, _takeRecords: true }),\r\n destroy: bind(destroy, false),\r\n plugin:

    (plugin: P) =>\r\n instancePluginModuleInstances[keys(plugin)[0]] as\r\n | InferInstancePluginModuleInstance

    \r\n | undefined,\r\n };\r\n\r\n push(destroyFns, [setupsCanceled]);\r\n\r\n // valid inside plugins\r\n addInstance(instanceTarget, instance);\r\n\r\n // init plugins\r\n registerPluginModuleInstances(pluginModules, OverlayScrollbars, [\r\n instance,\r\n addPluginEvent,\r\n instancePluginModuleInstances,\r\n ]);\r\n\r\n if (\r\n cancelInitialization(\r\n setupsElements._structureSetupElements._isBody,\r\n !targetIsElement && target.cancel\r\n )\r\n ) {\r\n destroy(true);\r\n return instance;\r\n }\r\n\r\n push(destroyFns, setupsConstruct());\r\n\r\n triggerEvent('initialized', [instance]);\r\n\r\n instance.update();\r\n\r\n return instance;\r\n }\r\n return potentialInstance!;\r\n};\r\n\r\nOverlayScrollbars.plugin = (plugins: Plugin | Plugin[]) => {\r\n const isArr = isArray(plugins);\r\n const pluginsToAdd: Plugin[] =\r\n isArr ? plugins : [plugins];\r\n const result = pluginsToAdd.map(\r\n (plugin) => registerPluginModuleInstances(plugin, OverlayScrollbars)[0]\r\n );\r\n addPlugins(pluginsToAdd);\r\n return isArr ? result : (result[0] as any);\r\n};\r\nOverlayScrollbars.valid = (osInstance: any): osInstance is OverlayScrollbars => {\r\n const hasElmsFn = osInstance && (osInstance as OverlayScrollbars).elements;\r\n const elements = isFunction(hasElmsFn) && hasElmsFn();\r\n return isPlainObject(elements) && !!getInstance(elements.target);\r\n};\r\nOverlayScrollbars.env = () => {\r\n const {\r\n _nativeScrollbarsSize,\r\n _nativeScrollbarsOverlaid,\r\n _nativeScrollbarsHiding,\r\n _scrollTimeline,\r\n _staticDefaultInitialization,\r\n _staticDefaultOptions,\r\n _getDefaultInitialization,\r\n _setDefaultInitialization,\r\n _getDefaultOptions,\r\n _setDefaultOptions,\r\n } = getEnvironment();\r\n return assignDeep(\r\n {},\r\n {\r\n scrollbarsSize: _nativeScrollbarsSize,\r\n scrollbarsOverlaid: _nativeScrollbarsOverlaid,\r\n scrollbarsHiding: _nativeScrollbarsHiding,\r\n scrollTimeline: _scrollTimeline,\r\n staticDefaultInitialization: _staticDefaultInitialization,\r\n staticDefaultOptions: _staticDefaultOptions,\r\n\r\n getDefaultInitialization: _getDefaultInitialization,\r\n setDefaultInitialization: _setDefaultInitialization,\r\n getDefaultOptions: _getDefaultOptions,\r\n setDefaultOptions: _setDefaultOptions,\r\n }\r\n );\r\n};\r\nOverlayScrollbars.nonce = setNonce;\r\n","import type {\r\n Options,\r\n PartialOptions,\r\n OverflowBehavior,\r\n ScrollbarsVisibilityBehavior,\r\n ScrollbarsAutoHideBehavior,\r\n} from '~/options';\r\nimport type { OptionsTemplate, OptionsTemplateValue } from './validation';\r\nimport type { StaticPlugin } from '~/plugins';\r\nimport { validateOptions, optionsTemplateTypes as oTypes } from './validation';\r\n\r\nexport const optionsValidationPluginModuleName = '__osOptionsValidationPlugin';\r\n\r\nexport const OptionsValidationPlugin = /* @__PURE__ */ (() => ({\r\n [optionsValidationPluginModuleName]: {\r\n static: () => {\r\n const numberAllowedValues: OptionsTemplateValue = oTypes.number;\r\n const booleanAllowedValues: OptionsTemplateValue = oTypes.boolean;\r\n const arrayNullValues: OptionsTemplateValue | null> = [\r\n oTypes.array,\r\n oTypes.null,\r\n ];\r\n const overflowAllowedValues: OptionsTemplateValue =\r\n 'hidden scroll visible visible-hidden';\r\n const scrollbarsVisibilityAllowedValues: OptionsTemplateValue =\r\n 'visible hidden auto';\r\n const scrollbarsAutoHideAllowedValues: OptionsTemplateValue =\r\n 'never scroll leavemove';\r\n\r\n const optionsTemplate: OptionsTemplate = {\r\n // resize: resizeAllowedValues, // none || both || horizontal || vertical || n || b ||\r\n paddingAbsolute: booleanAllowedValues, // true || false\r\n showNativeOverlaidScrollbars: booleanAllowedValues, // true || false\r\n update: {\r\n elementEvents: arrayNullValues, // array of tuples || null\r\n attributes: arrayNullValues,\r\n debounce: [oTypes.number, oTypes.array, oTypes.null], // number || number array || null\r\n ignoreMutation: [oTypes.function, oTypes.null], // function || null\r\n },\r\n overflow: {\r\n x: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n y: overflowAllowedValues, // visible-hidden || visible-scroll || hidden || scrol\r\n },\r\n scrollbars: {\r\n theme: [oTypes.string, oTypes.null], // string || null\r\n visibility: scrollbarsVisibilityAllowedValues, // visible || hidden || auto || v ||\r\n autoHide: scrollbarsAutoHideAllowedValues, // never || scroll || leave || move ||\r\n autoHideDelay: numberAllowedValues, // number\r\n autoHideSuspend: booleanAllowedValues, // true || false\r\n dragScroll: booleanAllowedValues, // true || false\r\n clickScroll: booleanAllowedValues, // true || false\r\n pointers: [oTypes.array, oTypes.null], // string array\r\n },\r\n /*\r\n textarea: {\r\n dynWidth: booleanAllowedValues, // true || false\r\n dynHeight: booleanAllowedValues, // true || false\r\n inheritedAttrs: stringArrayNullAllowedValues, // string || array || nul\r\n },\r\n */\r\n };\r\n return (options: PartialOptions, doWriteErrors?: boolean): PartialOptions => {\r\n const [validated, foreign] = validateOptions(optionsTemplate, options, doWriteErrors);\r\n return { ...foreign, ...validated };\r\n };\r\n },\r\n },\r\n}))() satisfies StaticPlugin;\r\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nimport React, { useEffect, useMemo, useRef } from 'react';\r\nimport { OverlayScrollbars } from 'overlayscrollbars';\r\nimport type { InitializationTarget } from 'overlayscrollbars';\r\nimport type {\r\n OverlayScrollbarsComponentProps,\r\n OverlayScrollbarsComponentRef,\r\n} from './OverlayScrollbarsComponent';\r\n\r\ntype Defer = [\r\n requestDefer: (callback: () => any, options?: OverlayScrollbarsComponentProps['defer']) => void,\r\n cancelDefer: () => void\r\n];\r\n\r\nexport interface UseOverlayScrollbarsParams {\r\n /** OverlayScrollbars options. */\r\n options?: OverlayScrollbarsComponentProps['options'];\r\n /** OverlayScrollbars events. */\r\n events?: OverlayScrollbarsComponentProps['events'];\r\n /** Whether to defer the initialization to a point in time when the browser is idle. (or to the next frame if `window.requestIdleCallback` is not supported) */\r\n defer?: OverlayScrollbarsComponentProps['defer'];\r\n}\r\n\r\nexport type UseOverlayScrollbarsInitialization = (target: InitializationTarget) => void;\r\n\r\nexport type UseOverlayScrollbarsInstance = () => ReturnType<\r\n OverlayScrollbarsComponentRef['osInstance']\r\n>;\r\n\r\nconst createDefer = (): Defer => {\r\n /* c8 ignore start */\r\n if (typeof window === 'undefined') {\r\n // mock ssr calls with \"noop\"\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n const noop = () => {};\r\n return [noop, noop];\r\n }\r\n /* c8 ignore end */\r\n\r\n let idleId: number;\r\n let rafId: number;\r\n const wnd = window;\r\n const idleSupported = typeof wnd.requestIdleCallback === 'function';\r\n const rAF = wnd.requestAnimationFrame;\r\n const cAF = wnd.cancelAnimationFrame;\r\n const rIdle = idleSupported ? wnd.requestIdleCallback : rAF;\r\n const cIdle = idleSupported ? wnd.cancelIdleCallback : cAF;\r\n const clear = () => {\r\n cIdle(idleId);\r\n cAF(rafId);\r\n };\r\n\r\n return [\r\n (callback, options) => {\r\n clear();\r\n idleId = rIdle(\r\n idleSupported\r\n ? () => {\r\n clear();\r\n // inside idle its best practice to use rAF to change DOM for best performance\r\n rafId = rAF(callback);\r\n }\r\n : callback,\r\n typeof options === 'object' ? options : { timeout: 2233 }\r\n );\r\n },\r\n clear,\r\n ];\r\n};\r\n\r\n/**\r\n * Hook for advanced usage of OverlayScrollbars. (When the OverlayScrollbarsComponent is not enough)\r\n * @param params Parameters for customization.\r\n * @returns A tuple with two values:\r\n * The first value is the initialization function, it takes one argument which is the `InitializationTarget`.\r\n * The second value is a function which returns the current OverlayScrollbars instance or `null` if not initialized.\r\n */\r\nexport const useOverlayScrollbars = (\r\n params?: UseOverlayScrollbarsParams\r\n): [UseOverlayScrollbarsInitialization, UseOverlayScrollbarsInstance] => {\r\n const { options, events, defer } = params || {};\r\n const [requestDefer, cancelDefer] = useMemo(createDefer, []);\r\n const instanceRef = useRef>(null);\r\n const deferRef = useRef(defer);\r\n const optionsRef = useRef(options);\r\n const eventsRef = useRef(events);\r\n\r\n useEffect(() => {\r\n deferRef.current = defer;\r\n }, [defer]);\r\n\r\n useEffect(() => {\r\n const { current: instance } = instanceRef;\r\n\r\n optionsRef.current = options;\r\n\r\n if (OverlayScrollbars.valid(instance)) {\r\n instance.options(options || {}, true);\r\n }\r\n }, [options]);\r\n\r\n useEffect(() => {\r\n const { current: instance } = instanceRef;\r\n\r\n eventsRef.current = events;\r\n\r\n if (OverlayScrollbars.valid(instance)) {\r\n instance.on(events || {}, true);\r\n }\r\n }, [events]);\r\n\r\n useEffect(\r\n () => () => {\r\n cancelDefer();\r\n instanceRef.current?.destroy();\r\n },\r\n []\r\n );\r\n\r\n return useMemo<[UseOverlayScrollbarsInitialization, UseOverlayScrollbarsInstance]>(\r\n () => [\r\n (target) => {\r\n // if already initialized do nothing\r\n const presentInstance = instanceRef.current;\r\n if (OverlayScrollbars.valid(presentInstance)) {\r\n return;\r\n }\r\n\r\n const currDefer = deferRef.current;\r\n const currOptions = optionsRef.current || {};\r\n const currEvents = eventsRef.current || {};\r\n const init = () =>\r\n (instanceRef.current = OverlayScrollbars(target, currOptions, currEvents));\r\n\r\n if (currDefer) {\r\n requestDefer(init, currDefer);\r\n } else {\r\n init();\r\n }\r\n },\r\n () => instanceRef.current,\r\n ],\r\n []\r\n );\r\n};\r\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nimport React, { forwardRef, useEffect, useRef, useImperativeHandle } from 'react';\r\nimport type { OverlayScrollbars } from 'overlayscrollbars';\r\nimport type { PartialOptions, EventListeners } from 'overlayscrollbars';\r\nimport type {\r\n ComponentPropsWithoutRef,\r\n ElementRef,\r\n ElementType,\r\n ForwardedRef,\r\n ReactElement,\r\n} from 'react';\r\nimport { useOverlayScrollbars } from './useOverlayScrollbars';\r\n\r\ntype OverlayScrollbarsComponentBaseProps =\r\n ComponentPropsWithoutRef & {\r\n /** Tag of the root element. */\r\n element?: T;\r\n /** OverlayScrollbars options. */\r\n options?: PartialOptions | false | null;\r\n /** OverlayScrollbars events. */\r\n events?: EventListeners | false | null;\r\n /** Whether to defer the initialization to a point in time when the browser is idle. (or to the next frame if `window.requestIdleCallback` is not supported) */\r\n defer?: boolean | IdleRequestOptions;\r\n };\r\n\r\nexport type OverlayScrollbarsComponentProps =\r\n OverlayScrollbarsComponentBaseProps & {\r\n ref?: ForwardedRef>;\r\n };\r\n\r\nexport interface OverlayScrollbarsComponentRef {\r\n /** Returns the OverlayScrollbars instance or null if not initialized. */\r\n osInstance(): OverlayScrollbars | null;\r\n /** Returns the root element. */\r\n getElement(): ElementRef | null;\r\n}\r\n\r\nconst OverlayScrollbarsComponent = (\r\n props: OverlayScrollbarsComponentBaseProps,\r\n ref: ForwardedRef>\r\n): ReactElement | null => {\r\n const { element = 'div', options, events, defer, children, ...other } = props;\r\n const Tag = element;\r\n const elementRef = useRef>(null);\r\n const childrenRef = useRef(null);\r\n const [initialize, osInstance] = useOverlayScrollbars({ options, events, defer });\r\n\r\n useEffect(() => {\r\n const { current: elm } = elementRef;\r\n const { current: contentsElm } = childrenRef;\r\n\r\n /* c8 ignore start */\r\n if (!elm) {\r\n return;\r\n }\r\n /* c8 ignore end */\r\n\r\n const target = elm as unknown as HTMLElement;\r\n\r\n initialize(\r\n element === 'body'\r\n ? {\r\n target,\r\n cancel: {\r\n body: null,\r\n },\r\n }\r\n : {\r\n target,\r\n elements: {\r\n viewport: contentsElm,\r\n content: contentsElm,\r\n },\r\n }\r\n );\r\n\r\n return () => osInstance()?.destroy();\r\n }, [initialize, element]);\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => {\r\n return {\r\n osInstance,\r\n getElement: () => elementRef.current,\r\n };\r\n },\r\n []\r\n );\r\n\r\n return (\r\n // @ts-ignore\r\n \r\n {element === 'body' ? (\r\n children\r\n ) : (\r\n

    \r\n {children}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst OverlayScrollbarsComponentForwardedRef = forwardRef(OverlayScrollbarsComponent) as <\r\n T extends ElementType = 'div'\r\n>(\r\n props: OverlayScrollbarsComponentProps\r\n) => ReturnType;\r\n\r\nexport { OverlayScrollbarsComponentForwardedRef as OverlayScrollbarsComponent };\r\n","import cn from 'classnames';\nimport { OverlayScrollbarsComponent } from 'overlayscrollbars-react';\nimport 'overlayscrollbars/overlayscrollbars.css';\n\ntype ScrollbarProps = {\n\n options?: any;\n children: React.ReactNode;\n style?: React.CSSProperties;\n className?: string;\n [key:string]: any;\n\n};\n\nfunction Scrollbar ( props:ScrollbarProps ) {\n\n return (\n \n {props.children}\n \n );\n\n};\n\nexport default Scrollbar;\n","import React, { useEffect, useState } from 'react'\nimport { connect, ConnectedProps } from \"react-redux\"\nimport Scrollbar from 'components/Scrollbar';\nimport Logo from 'components/Logo';\nimport { IoClose } from 'react-icons/io5';\nimport CMSAction from 'cms/actions/common/CMSAction';\nimport ContentMetricsServiceAction from \"cms/actions/components/Header/ContentMetricsServiceAction\";\nimport { Dispatch } from '@reduxjs/toolkit';\nimport IClientLanguage from 'core/interfaces/IClientLanguage';\nimport IClientSiteSettingDetail from 'cms/interfaces/IClientSiteSettingDetail';\nimport SocialMedia01 from 'components/SocialMedia/components/SocialMedia01';\nimport TMenu from 'cms/types/TMenu';\nimport IClientMenuItemList from 'cms/interfaces/IClientMenuItemList';\nimport TValidations from 'cms/types/TValidations';\nimport MenuComposer from 'cms/utilities/MenuComposer';\nimport { isEmpty } from 'lodash';\nimport { IoIosArrowDown } from 'react-icons/io';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\nimport { EContentType } from 'cms/enums/EContentType';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EView } from 'cms/enums/EView';\nimport RMDRNavLink from 'components/RMDRNavLink';\nimport CoreDefault from \"core/Defaults\";\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport ApplicationDocumentSelector from 'cms/utilities/ApplicationDocumentSelector';\nimport IApplicationDocument from 'cms/interfaces/IApplicationDocument';\nimport { EContentMetricsType } from 'core/enums/EContentMetricsType';\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MobileMenu.mapStateToProps: \", state);\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const clientMenuItemGet:IClientMenuItemList[]|null = state.HeaderStore.ClientMenuItemStore.get?.[\"MNGRP001\"];\n const clientMenuItemGetError:TValidations[]|null = state.HeaderStore.ClientMenuItemStore.get?.error;\n const clientMenuItemGetIsLoading:boolean = state.HeaderStore.ClientMenuItemStore.get?.isLoading;\n\n return {\n\n siteSettingDetailPayload,\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n clientMenuItemGet,\n clientMenuItemGetError,\n clientMenuItemGetIsLoading\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MobileMenu.mapDispatchToProps\");\n\n const cmsAction = new CMSAction(dispatch);\n const contentMetricsServiceAction = new ContentMetricsServiceAction(dispatch);\n\n return {\n \n _viewEvent: ( contentId:string, webApplicationLanguageCode:string ) => {\n contentMetricsServiceAction.post({ \n servicePayload: { \n body: {\n contentId: contentId,\n metricType: EContentMetricsType.VIEV\n }, \n language: webApplicationLanguageCode \n } \n });\n },\n\n _openMobileMenu: () => {\n cmsAction.openMobileMenu();\n },\n\n _closeMobileMenu: () => {\n cmsAction.closeMobileMenu();\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TMobileMenu = {\n \n} & T;\n\n\n/* component */\nfunction MobileMenuLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction MobileMenu ( props:TMobileMenu ) {\n console.log(\"MobileMenu.rendered: \", props);\n\n const [activeMenus, setActiveMenus] = useState([]);\n const [ navigation, setNavigation ] = useState(null);\n\n useEffect(\n () => {\n\n if ( !isEmpty(props.clientMenuItemGet) ) {\n let parentMenuItems = props.clientMenuItemGet?.filter((item:any) => item.parentId === null);\n let navigation = MenuComposer(props.clientMenuItemGet, parentMenuItems);\n setNavigation(navigation);\n }\n\n }, [ props.clientMenuItemGet ]\n )\n\n const handleArrowClick = (menuName: string) => {\n let newActiveMenus = [...activeMenus];\n\n if (newActiveMenus.includes(menuName)) {\n var index = newActiveMenus.indexOf(menuName);\n if (index > -1) {\n newActiveMenus.splice(index, 1);\n }\n } else {\n newActiveMenus.push(menuName);\n }\n\n setActiveMenus(newActiveMenus);\n };\n\n function ListMenu ({\n dept,\n data,\n hasSubMenu,\n menuName,\n menuIndex,\n className = '',\n }: any) {\n const languageVersion = LanguageVersionSelector({\n languageVersions: data.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n const redirectUrl = LanguageVersionSelector({\n languageVersions: data.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectURL\" }\n ],\n type: \"find\"\n });\n\n let layout = data.layouts?.[0];\n\n if ( layout && layout.layoutName === \"MN_001\" ) {\n const applicationDocument = ApplicationDocumentSelector({\n resources: data.resources,\n resourceType: EResourceType.DATA,\n type: \"find\"\n });\n\n return (\n
  • \n
    \n { props._viewEvent(data.id, props.webApplicationLanguageCode) }}\n variant=\"div\"\n />\n
    \n
  • \n )\n } else if ( layout && layout.layoutName === \"MN_002\" ) {\n const tagId = LanguageVersionSelector({\n languageVersions: data.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"tagId\" }\n ],\n type: \"find\"\n });\n\n const navigationURL = `/${props.webApplicationLanguageISOCode}/shop?t=${tagId?.value}`;\n\n return (\n
  • \n
    \n { props._viewEvent(data.id, props.webApplicationLanguageCode) }}\n variant=\"div\"\n />\n
    \n
  • \n )\n } else {\n return (\n
  • \n
    \n { props._closeMobileMenu(); }}\n variant=\"div\"\n />\n {\n hasSubMenu && (\n { handleArrowClick(menuName); }}\n >\n \n
    \n )\n }\n
  • \n {\n hasSubMenu && (\n \n )\n }\n \n )\n }\n\n \n }\n\n function SubMenu ( { dept, data, toggle, menuIndex }:any ) {\n if (!toggle) return null;\n\n dept = dept + 1;\n\n return (\n
      \n {\n data?.map((menu: any, index: number) => {\n const menuName: string = `sidebar-submenu-${dept}-${menuIndex}-${index}`;\n\n return (\n 1 && 'pl-4'}\n onClick={(event:any, contentId?:string) => { if (contentId) props._viewEvent(contentId, props.webApplicationLanguageCode) } }\n />\n );\n })\n }\n
    \n );\n };\n\n return (\n
    \n
    \n \n\n { props._closeMobileMenu() }}\n aria-label=\"close\"\n >\n \n \n
    \n\n \n
    \n
      \n {\n navigation?.map((menuItem, index:number) => {\n const dept: number = 1;\n const menuName: string = `sidebar-menu-${dept}-${index}`;\n\n return (\n { if (contentId) props._viewEvent(contentId, props.webApplicationLanguageCode) } }\n />\n );\n })\n }\n
    \n
    \n
    \n \n \n
    \n );\n}\n\n\n\n\nconst Component = React.memo(MobileMenu, ( prevProps:TMobileMenu, nextProps:TMobileMenu ) => {\n return !(\n prevProps.clientMenuItemGet !== nextProps.clientMenuItemGet\n );\n});\n\nexport default connector(Component);\n","import React, { useEffect, useRef, useState } from 'react'\nimport { connect, ConnectedProps } from \"react-redux\"\nimport Lodash from \"lodash\";\nimport { Dispatch } from '@reduxjs/toolkit';\n\nimport SearchIcon from 'components/Icons/search-icon';\nimport UserIcon from 'components/Icons/user-icon';\nimport MenuIcon from 'components/Icons/menu-icon';\nimport HomeIcon from 'components/Icons/home-icon';\nimport { Drawer } from 'components/Drawer/Drawer';\nimport motionProps from 'components/Drawer/Motion';\nimport CartButton from 'components/Cart/CartButton';\nimport MobileMenu from 'components/Header/components/MobileMenu';\nimport { Link } from 'react-router-dom';\nimport CMSAction from 'cms/actions/common/CMSAction';\n\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"MobileNavigation.mapStateToProps: \", state);\n\n const mobileMenuPayload = state.CMSStore.mobileMenu.isLoading;\n\n return {\n\n mobileMenuPayload\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"MobileNavigation.mapDispatchToProps\");\n\n const cmsAction = new CMSAction(dispatch);\n\n return {\n \n _openMobileMenu: () => {\n cmsAction.openMobileMenu();\n },\n\n _closeMobileMenu: () => {\n cmsAction.closeMobileMenu();\n },\n\n _openMobileSearch: () => {\n cmsAction.openMobileSearch();\n },\n\n _closeMobileSearch: () => {\n cmsAction.closeMobileSearch();\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TMobileNavigation = {\n\n} & T;\n\n\n/* component */\nfunction MobileNavigationLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction MobileNavigation ( props:TMobileNavigation ) {\n console.log(\"MobileNavigation.rendered: \", props)\n\n\treturn (\n\t\t<>\n\t\t\t
    \n\t\t\t\t { props._openMobileMenu() }}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t { props._openMobileSearch() }}\n\t\t\t\t\taria-label=\"search-button\"\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n
    \n
    \n
    \n\t\t\t
    \n\n\t\t\t { props._closeMobileMenu() }}\n\t\t\t\t{...motionProps}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nconst Component = React.memo(MobileNavigation, ( prevProps:TMobileNavigation, nextProps:TMobileNavigation ) => {\n console.log(\"MobileNavigation.memo\", { prevProps, nextProps });\n\n return !( \n prevProps.mobileMenuPayload !== nextProps.mobileMenuPayload\n );\n});\n\nexport default connector(Component);\n","import SearchIcon from 'components/Icons/search-icon';\nimport React from 'react';\nimport cn from 'classnames';\nimport { IoCloseOutline } from 'react-icons/io5';\n\ntype SearchProps = {\n className?: string;\n onSubmit: (e: React.SyntheticEvent) => void;\n onClear: (e: React.SyntheticEvent) => void;\n onChange: (e: React.FormEvent) => void;\n name: string;\n value: string;\n [key: string]: any;\n};\n\n\nfunction _SearchBox(props: SearchProps, ref: any) {\n\n return (\n \n \n {\n props.onClear && (\n \n \n \n )\n }\n \n \n );\n\n}\n\nconst SearchBox = React.forwardRef(_SearchBox);\n\nexport default SearchBox;\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPosition = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n var computedBodyPaddingRight = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'), 10);\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = computedBodyPaddingRight + scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\nvar setPositionFixed = function setPositionFixed() {\n return window.requestAnimationFrame(function () {\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === undefined) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left\n };\n\n // Update the dom inside an animation frame \n var _window = window,\n scrollY = _window.scrollY,\n scrollX = _window.scrollX,\n innerHeight = _window.innerHeight;\n\n document.body.style.position = 'fixed';\n document.body.style.top = -scrollY;\n document.body.style.left = -scrollX;\n\n setTimeout(function () {\n return window.requestAnimationFrame(function () {\n // Attempt to check if the bottom bar appeared due to the position change\n var bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollY >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = -(scrollY + bottomBarHeight);\n }\n });\n }, 300);\n }\n });\n};\n\nvar restorePositionSetting = function restorePositionSetting() {\n if (previousBodyPosition !== undefined) {\n // Convert the position from \"px\" to Int\n var y = -parseInt(document.body.style.top, 10);\n var x = -parseInt(document.body.style.left, 10);\n\n // Restore styles\n document.body.style.position = previousBodyPosition.position;\n document.body.style.top = previousBodyPosition.top;\n document.body.style.left = previousBodyPosition.left;\n\n // Restore scroll\n window.scrollTo(x, y);\n\n previousBodyPosition = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n setPositionFixed();\n } else {\n setOverflowHidden(options);\n }\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n};\n\n","import React, { useEffect, useRef, useState } from 'react'\nimport { connect, ConnectedProps } from \"react-redux\"\nimport Lodash, { isEmpty } from \"lodash\";\nimport { Dispatch } from '@reduxjs/toolkit';\n\nimport cn from \"classnames\";\nimport SearchResultLoader from \"./SearchResultLoader\";\nimport SearchBox from \"./SearchBox\";\nimport { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from \"body-scroll-lock\";\nimport Scrollbar from \"./Scrollbar\";\nimport SearchProduct from \"./SearchProduct\";\nimport CMSAction from 'cms/actions/common/CMSAction';\nimport SearchIcon from './Icons/search-icon';\nimport { useNavigate, useSearchParams } from 'react-router-dom';\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"Search.mapStateToProps: \", state);\n\n const mobileSearchPayload:boolean = state.CMSStore.mobileSearch.isLoading;\n const isLoading:boolean = false;\n const data: any[] = [];\n\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n return {\n\n mobileSearchPayload,\n isLoading,\n data,\n\n webApplicationLanguageISOCode,\n\n }\n\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"Search.mapDispatchToProps\");\n\n const cmsAction = new CMSAction(dispatch);\n\n return {\n\n _closeMobileSearch: () => {\n cmsAction.closeMobileSearch();\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TSearch = {\n\n} & T;\n\n\n/* component */\nfunction SearchLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction Search( props:TSearch ) {\n\n const [ searchParams ] = useSearchParams();\n const navigate = useNavigate();\n\n const stringSearchRef = React.createRef();\n const ref = useRef(null);\n\n useEffect(\n () => {\n\n if ( stringSearchRef?.current && isEmpty(stringSearchRef.current.value) ) {\n const searchString = searchParams.get(\"q\");\n if ( searchString && !isEmpty(searchString) )\n stringSearchRef.current.value = searchString;\n }\n\n }, [ searchParams ]\n )\n\n\tuseEffect(\n () => {\n \n if (ref.current) {\n if (props.mobileSearchPayload) {\n disableBodyScroll(ref.current);\n } else {\n enableBodyScroll(ref.current);\n }\n }\n\n return () => {\n clearAllBodyScrollLocks();\n };\n\n }, [props.mobileSearchPayload]\n );\n\n function onSubmit(event:React.SyntheticEvent) { \n event.preventDefault();\n\n const target = event.target as typeof event.target & {\n queryString: { value: string };\n };\n const queryString = target.queryString.value;\n\n navigate({\n pathname: `/${props.webApplicationLanguageISOCode}/shop`,\n search: `q=${queryString}`\n });\n\n props._closeMobileSearch();\n }\n\n\treturn (\n\t\t
    \n\t\t\t { \n props._closeMobileSearch() \n }\n }\n\t\t\t/>\n\t\t\t
    \n\t\t\t\n\t\t\n\t);\n}\n\nconst Component = React.memo(Search, (prevProps:TSearch, nextProps:TSearch) => {\n console.log(\"Search.memo\", { prevProps, nextProps });\n \n return !( \n prevProps.mobileSearchPayload !== nextProps.mobileSearchPayload\n )\n});\n\nexport default connector(Component);\n","import cn from 'classnames';\n\ninterface Props {\n className?: string;\n title: string;\n attributes: {\n id: number;\n value: string;\n meta: string;\n }[];\n active: string;\n onClick: any;\n}\n\nfunction ProductAttributes ( props: Props ) {\n\n return (\n
    \n

    \n {props.title}\n

    \n
      \n {\n props.attributes?.map(({ id, value, meta }) => (\n props.onClick({ [props.title]: value })}\n >\n {\n props.title === 'color' ? \n (\n \n ) : (\n value\n )\n }\n \n ))\n }\n
    \n
    \n );\n\n};\n\nProductAttributes.defaultProps = {\n\n className: 'mb-4'\n\n}\n\nexport default ProductAttributes;\n","\"use strict\";\n/**\n * @reach/utils v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/can-use-dom.ts\nfunction canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n}\n\n// src/clone-valid-element.ts\nimport { cloneElement, isValidElement } from \"react\";\nfunction cloneValidElement(element, props, ...children) {\n return isValidElement(element) ? cloneElement(element, props, ...children) : element;\n}\n\n// src/compose-event-handlers.ts\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return (event) => {\n theirHandler && theirHandler(event);\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\n// src/compose-refs.ts\nimport { useCallback } from \"react\";\n\n// src/type-check.ts\nfunction isBoolean(value) {\n return typeof value === \"boolean\";\n}\nfunction isFunction(value) {\n return !!(value && {}.toString.call(value) == \"[object Function]\");\n}\nfunction isNumber(value) {\n return typeof value === \"number\" && !isNaN(value);\n}\nfunction isString(value) {\n return typeof value === \"string\";\n}\n\n// src/compose-refs.ts\nfunction assignRef(ref, value) {\n if (ref == null)\n return;\n if (isFunction(ref)) {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(`Cannot assign value \"${value}\" to ref \"${ref}\"`);\n }\n }\n}\nfunction useComposedRefs(...refs) {\n return useCallback((node) => {\n for (let ref of refs) {\n assignRef(ref, node);\n }\n }, refs);\n}\n\n// src/owner-document.ts\nfunction getOwnerDocument(element) {\n return canUseDOM() ? element ? element.ownerDocument : document : null;\n}\nfunction getOwnerWindow(element) {\n let ownerDocument = getOwnerDocument(element);\n return ownerDocument ? ownerDocument.defaultView || window : null;\n}\n\n// src/computed-styles.ts\nfunction getComputedStyles(element) {\n let ownerWindow = getOwnerWindow(element);\n if (ownerWindow) {\n return ownerWindow.getComputedStyle(element, null);\n }\n return null;\n}\nfunction getComputedStyle(element, styleProp) {\n return getComputedStyles(element)?.getPropertyValue(styleProp) || null;\n}\n\n// src/context.tsx\nimport * as React from \"react\";\nfunction createNamedContext(name, defaultValue) {\n let Ctx = React.createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\nfunction createContext2(rootComponentName, defaultContext) {\n let Ctx = React.createContext(defaultContext);\n function Provider(props) {\n let { children, ...context } = props;\n let value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ React.createElement(Ctx.Provider, {\n value\n }, children);\n }\n function useContext2(callerComponentName) {\n let context = React.useContext(Ctx);\n if (context) {\n return context;\n }\n if (defaultContext) {\n return defaultContext;\n }\n throw Error(`${callerComponentName} must be rendered inside of a ${rootComponentName} component.`);\n }\n Ctx.displayName = `${rootComponentName}Context`;\n Provider.displayName = `${rootComponentName}Provider`;\n return [Provider, useContext2];\n}\n\n// src/dev-utils.ts\nimport { useRef, useEffect } from \"react\";\nfunction useControlledSwitchWarning(controlledValue, controlledPropName, componentName) {\n if (true) {\n let controlledRef = useRef(controlledValue != null);\n let nameCache = useRef({ componentName, controlledPropName });\n useEffect(() => {\n nameCache.current = { componentName, controlledPropName };\n }, [componentName, controlledPropName]);\n useEffect(() => {\n let { current: wasControlled } = controlledRef;\n let { componentName: componentName2, controlledPropName: controlledPropName2 } = nameCache.current;\n let isControlled = controlledValue != null;\n if (wasControlled !== isControlled) {\n console.error(`A component is changing an ${wasControlled ? \"\" : \"un\"}controlled \\`${controlledPropName2}\\` state of ${componentName2} to be ${wasControlled ? \"un\" : \"\"}controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled ${componentName2} element for the lifetime of the component.\n More info: https://fb.me/react-controlled-components`);\n }\n }, [controlledValue]);\n }\n}\n\n// src/get-document-dimensions.ts\nfunction getDocumentDimensions(element) {\n let ownerDocument = getOwnerDocument(element);\n let ownerWindow = ownerDocument.defaultView || window;\n if (!ownerDocument) {\n return {\n width: 0,\n height: 0\n };\n }\n return {\n width: ownerDocument.documentElement.clientWidth ?? ownerWindow.innerWidth,\n height: ownerDocument.documentElement.clientHeight ?? ownerWindow.innerHeight\n };\n}\n\n// src/get-scroll-position.ts\nfunction getScrollPosition(element) {\n let ownerWindow = getOwnerWindow(element);\n if (!ownerWindow) {\n return {\n scrollX: 0,\n scrollY: 0\n };\n }\n return {\n scrollX: ownerWindow.scrollX,\n scrollY: ownerWindow.scrollY\n };\n}\n\n// src/get-scrollbar-offset.ts\nfunction getScrollbarOffset() {\n try {\n if (window.innerWidth > document.documentElement.clientWidth) {\n return window.innerWidth - document.documentElement.clientWidth;\n }\n } catch (err) {\n }\n return 0;\n}\n\n// src/is-right-click.ts\nfunction isRightClick(nativeEvent) {\n return \"which\" in nativeEvent ? nativeEvent.which === 3 : \"button\" in nativeEvent ? nativeEvent.button === 2 : false;\n}\n\n// src/make-id.ts\nfunction makeId(...args) {\n return args.filter((val) => val != null).join(\"--\");\n}\n\n// src/noop.ts\nfunction noop() {\n}\n\n// src/use-constant.ts\nimport { useRef as useRef2 } from \"react\";\nfunction useConstant(fn) {\n const ref = useRef2();\n if (!ref.current) {\n ref.current = { v: fn() };\n }\n return ref.current.v;\n}\n\n// src/use-controlled-state.ts\nimport { useState, useRef as useRef3, useCallback as useCallback2 } from \"react\";\nfunction useControlledState({\n controlledValue,\n defaultValue,\n calledFrom = \"A component\"\n}) {\n let wasControlled = controlledValue !== void 0;\n let isControlledRef = useRef3(wasControlled);\n if (true) {\n if (!isControlledRef.current && wasControlled) {\n console.warn(`${calledFrom} is changing from controlled to uncontrolled. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`);\n }\n if (isControlledRef.current && !wasControlled) {\n console.warn(`${calledFrom} is changing from uncontrolled to controlled. Components should not switch from uncontrolled to controlled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`);\n }\n }\n let [valueState, setValue] = useState(isControlledRef.current ? controlledValue : defaultValue);\n let set = useCallback2((n) => {\n if (!isControlledRef.current) {\n setValue(n);\n }\n }, []);\n return [isControlledRef.current ? controlledValue : valueState, set];\n}\n\n// src/use-event-listener.ts\nimport { useRef as useRef4, useEffect as useEffect2 } from \"react\";\nfunction useEventListener(eventName, listener, element = window) {\n const savedHandler = useRef4(listener);\n useEffect2(() => {\n savedHandler.current = listener;\n }, [listener]);\n useEffect2(() => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) {\n if (true) {\n console.warn(\"Event listener not supported on the element provided\");\n }\n return;\n }\n function eventListener(event) {\n savedHandler.current(event);\n }\n element.addEventListener(eventName, eventListener);\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n}\n\n// src/use-focus-change.ts\nimport { useRef as useRef5, useEffect as useEffect3 } from \"react\";\nfunction useFocusChange(handleChange = console.log, when = \"focus\", ownerDocument = document) {\n let lastActiveElement = useRef5(ownerDocument.activeElement);\n useEffect3(() => {\n lastActiveElement.current = ownerDocument.activeElement;\n function onChange(event) {\n if (lastActiveElement.current !== ownerDocument.activeElement) {\n handleChange(ownerDocument.activeElement, lastActiveElement.current, event);\n lastActiveElement.current = ownerDocument.activeElement;\n }\n }\n ownerDocument.addEventListener(when, onChange, true);\n return () => {\n ownerDocument.removeEventListener(when, onChange);\n };\n }, [when, handleChange, ownerDocument]);\n}\n\n// src/use-force-update.ts\nimport { useState as useState2, useCallback as useCallback3 } from \"react\";\nfunction useForceUpdate() {\n let [, dispatch] = useState2(/* @__PURE__ */ Object.create(null));\n return useCallback3(() => {\n dispatch(/* @__PURE__ */ Object.create(null));\n }, []);\n}\n\n// src/use-isomorphic-layout-effect.ts\nimport { useEffect as useEffect4, useLayoutEffect } from \"react\";\nvar useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect4;\n\n// src/use-lazy-ref.ts\nimport { useRef as useRef6 } from \"react\";\nfunction useLazyRef(fn) {\n let isSet = useRef6(false);\n let ref = useRef6();\n if (!isSet.current) {\n isSet.current = true;\n ref.current = fn();\n }\n return ref;\n}\n\n// src/use-previous.ts\nimport { useRef as useRef7, useEffect as useEffect5 } from \"react\";\nfunction usePrevious(value) {\n const ref = useRef7(null);\n useEffect5(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\n// src/use-stable-callback.ts\nimport { useRef as useRef8, useEffect as useEffect6, useCallback as useCallback4 } from \"react\";\nfunction createStableCallbackHook(useEffectHook, callback) {\n let callbackRef = useRef8(callback);\n useEffectHook(() => {\n callbackRef.current = callback;\n });\n return useCallback4((...args) => {\n callbackRef.current && callbackRef.current(...args);\n }, []);\n}\nfunction useStableCallback(callback) {\n return createStableCallbackHook(useEffect6, callback);\n}\nfunction useStableLayoutCallback(callback) {\n return createStableCallbackHook(useIsomorphicLayoutEffect, callback);\n}\n\n// src/use-stateful-ref-value.ts\nimport { useState as useState3, useCallback as useCallback5 } from \"react\";\nfunction useStatefulRefValue(ref, initialState) {\n let [state, setState] = useState3(initialState);\n let callbackRef = useCallback5((refValue) => {\n ref.current = refValue;\n setState(refValue);\n }, []);\n return [state, callbackRef];\n}\n\n// src/use-update-effect.ts\nimport { useRef as useRef9, useEffect as useEffect7 } from \"react\";\nfunction useUpdateEffect(effect, deps) {\n const mounted = useRef9(false);\n useEffect7(() => {\n if (mounted.current) {\n effect();\n } else {\n mounted.current = true;\n }\n }, deps);\n}\nexport {\n assignRef,\n canUseDOM,\n cloneValidElement,\n composeEventHandlers,\n createContext2 as createContext,\n createNamedContext,\n getComputedStyle,\n getComputedStyles,\n getDocumentDimensions,\n getOwnerDocument,\n getOwnerWindow,\n getScrollPosition,\n getScrollbarOffset,\n isBoolean,\n isFunction,\n isNumber,\n isRightClick,\n isString,\n makeId,\n noop,\n useComposedRefs,\n useConstant,\n useControlledState,\n useControlledSwitchWarning,\n useEventListener,\n useFocusChange,\n useForceUpdate,\n useIsomorphicLayoutEffect,\n useLazyRef,\n usePrevious,\n useStableCallback,\n useStableLayoutCallback,\n useStatefulRefValue,\n useUpdateEffect\n};\n","\"use strict\";\n/**\n * @reach/portal v0.18.0\n *\n * Copyright (c) 2018-2022, React Training LLC\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n\n// src/reach-portal.tsx\nimport * as React from \"react\";\nimport {\n useForceUpdate,\n useIsomorphicLayoutEffect as useLayoutEffect\n} from \"@reach/utils\";\nimport { createPortal } from \"react-dom\";\nvar PortalImpl = ({\n children,\n type = \"reach-portal\",\n containerRef\n}) => {\n let mountNode = React.useRef(null);\n let portalNode = React.useRef(null);\n let forceUpdate = useForceUpdate();\n if (true) {\n React.useEffect(() => {\n if (containerRef != null) {\n if (typeof containerRef !== \"object\" || !(\"current\" in containerRef)) {\n console.warn(\"@reach/portal: Invalid value passed to the `containerRef` of a `Portal`. The portal will be appended to the document body, but if you want to attach it to another DOM node you must pass a valid React ref object to `containerRef`.\");\n } else if (containerRef.current == null) {\n console.warn(\"@reach/portal: A ref was passed to the `containerRef` prop of a `Portal`, but no DOM node was attached to it. Be sure to pass the ref to a DOM component.\\n\\nIf you are forwarding the ref from another component, be sure to use the React.forwardRef API. See https://reactjs.org/docs/forwarding-refs.html.\");\n }\n }\n }, [containerRef]);\n }\n useLayoutEffect(() => {\n if (!mountNode.current)\n return;\n let ownerDocument = mountNode.current.ownerDocument;\n let body = containerRef?.current || ownerDocument.body;\n portalNode.current = ownerDocument?.createElement(type);\n body.appendChild(portalNode.current);\n forceUpdate();\n return () => {\n if (portalNode.current && body) {\n body.removeChild(portalNode.current);\n }\n };\n }, [type, forceUpdate, containerRef]);\n return portalNode.current ? createPortal(children, portalNode.current) : /* @__PURE__ */ React.createElement(\"span\", {\n ref: mountNode\n });\n};\nvar Portal = ({\n unstable_skipInitialRender,\n ...props\n}) => {\n let [hydrated, setHydrated] = React.useState(false);\n React.useEffect(() => {\n if (unstable_skipInitialRender) {\n setHydrated(true);\n }\n }, [unstable_skipInitialRender]);\n if (unstable_skipInitialRender && !hydrated) {\n return null;\n }\n return /* @__PURE__ */ React.createElement(PortalImpl, {\n ...props\n });\n};\nPortal.displayName = \"Portal\";\nexport {\n Portal\n};\n","const isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","const noop = (any) => any;\n\nexport { noop };\n","const MotionGlobalConfig = {\n skipAnimations: false,\n useManualTiming: false,\n};\n\nexport { MotionGlobalConfig };\n","class Queue {\n constructor() {\n this.order = [];\n this.scheduled = new Set();\n }\n add(process) {\n if (!this.scheduled.has(process)) {\n this.scheduled.add(process);\n this.order.push(process);\n return true;\n }\n }\n remove(process) {\n const index = this.order.indexOf(process);\n if (index !== -1) {\n this.order.splice(index, 1);\n this.scheduled.delete(process);\n }\n }\n clear() {\n this.order.length = 0;\n this.scheduled.clear();\n }\n}\nfunction createRenderStep(runNextFrame) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Queue();\n let nextFrame = new Queue();\n let numToRun = 0;\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (queue.add(callback) && addToCurrentFrame && isProcessing) {\n // If we're adding it to the currently running queue, update its measured size\n numToRun = thisFrame.order.length;\n }\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.remove(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Clear the next frame queue\n nextFrame.clear();\n // Execute this frame\n numToRun = thisFrame.order.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = thisFrame.order[i];\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n callback(frameData);\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst stepsOrder = [\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0,\n timestamp: 0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(flagRunNextFrame);\n return acc;\n }, {});\n const { read, resolveKeyframes, update, preRender, render, postRender } = steps;\n const processBatch = () => {\n const timestamp = MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n read.process(state);\n resolveKeyframes.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < stepsOrder.length; i++) {\n steps[stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher, stepsOrder };\n","import { noop } from '../utils/noop.mjs';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps, } = createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, steps };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useRef, useContext, useInsertionEffect } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */\nclass PopChildMeasure extends React.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent) {\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */\n componentDidUpdate() { }\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent }) {\n const id = useId();\n const ref = useRef(null);\n const size = useRef({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n });\n const { nonce } = useContext(MotionConfigContext);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */\n useInsertionEffect(() => {\n const { width, height, top, left } = size.current;\n if (isPresent || !ref.current || !width || !height)\n return;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce)\n style.nonce = nonce;\n document.head.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n top: ${top}px !important;\n left: ${left}px !important;\n }\n `);\n }\n return () => {\n document.head.removeChild(style);\n };\n }, [isPresent]);\n return (jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: React.cloneElement(children, { ref }) }));\n}\n\nexport { PopChild };\n","import { jsx } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { useId, useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { PopChild } from './PopChild.mjs';\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, }) => {\n const presenceChildren = useConstant(newChildrenMap);\n const id = useId();\n const context = useMemo(() => ({\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: (childId) => {\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()) {\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n },\n register: (childId) => {\n presenceChildren.set(childId, false);\n return () => presenceChildren.delete(childId);\n },\n }), \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? [Math.random()] : [isPresent]);\n useMemo(() => {\n presenceChildren.forEach((_, key) => presenceChildren.set(key, false));\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(() => {\n !isPresent &&\n !presenceChildren.size &&\n onExitComplete &&\n onExitComplete();\n }, [isPresent]);\n if (mode === \"popLayout\") {\n children = jsx(PopChild, { isPresent: isPresent, children: children });\n }\n return (jsx(PresenceContext.Provider, { value: context, children: children }));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { noop } from './noop.mjs';\n\nlet warning = noop;\nlet invariant = noop;\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(message);\n }\n };\n invariant = (check, message) => {\n if (!check) {\n throw new Error(message);\n }\n };\n}\n\nexport { invariant, warning };\n","import { jsx, Fragment } from 'react/jsx-runtime';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { invariant } from '../../utils/errors.mjs';\n\nconst getChildKey = (child) => child.key || \"\";\nfunction updateChildLookup(children, allChildren) {\n children.forEach((child) => {\n const key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, (child) => {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nconst AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitBeforeEnter, presenceAffectsLayout = true, mode = \"sync\", }) => {\n invariant(!exitBeforeEnter, \"Replace exitBeforeEnter with mode='wait'\");\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n const forceRender = useContext(LayoutGroupContext).forceRender || useForceUpdate()[0];\n const isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n const filteredChildren = onlyElements(children);\n let childrenToRender = filteredChildren;\n const exitingChildren = useRef(new Map()).current;\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n const presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n const allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n const isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(() => {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(() => {\n isInitialRender.current = true;\n allChildren.clear();\n exitingChildren.clear();\n });\n if (isInitialRender.current) {\n return (jsx(Fragment, { children: childrenToRender.map((child) => (jsx(PresenceChild, { isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout, mode: mode, children: child }, getChildKey(child)))) }));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = [...childrenToRender];\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n const presentKeys = presentChildren.current.map(getChildKey);\n const targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n const numPresent = presentKeys.length;\n for (let i = 0; i < numPresent; i++) {\n const key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1 && !exitingChildren.has(key)) {\n exitingChildren.set(key, undefined);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (mode === \"wait\" && exitingChildren.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exitingChildren.forEach((component, key) => {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n const child = allChildren.get(key);\n if (!child)\n return;\n const insertionIndex = presentKeys.indexOf(key);\n let exitingComponent = component;\n if (!exitingComponent) {\n const onExit = () => {\n // clean up the exiting children map\n exitingChildren.delete(key);\n // compute the keys of children that were rendered once but are no longer present\n // this could happen in case of too many fast consequent renderings\n // @link https://github.com/framer/motion/issues/2023\n const leftOverKeys = Array.from(allChildren.keys()).filter((childKey) => !targetKeys.includes(childKey));\n // clean up the all children map\n leftOverKeys.forEach((leftOverKey) => allChildren.delete(leftOverKey));\n // make sure to render only the children that are actually visible\n presentChildren.current = filteredChildren.filter((presentChild) => {\n const presentChildKey = getChildKey(presentChild);\n return (\n // filter out the node exiting\n presentChildKey === key ||\n // filter out the leftover children\n leftOverKeys.includes(presentChildKey));\n });\n // Defer re-rendering until all exiting children have indeed left\n if (!exitingChildren.size) {\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n exitingComponent = (jsx(PresenceChild, { isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, children: child }, getChildKey(child)));\n exitingChildren.set(key, exitingComponent);\n }\n childrenToRender.splice(insertionIndex, 0, exitingComponent);\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map((child) => {\n const key = child.key;\n return exitingChildren.has(key) ? (child) : (jsx(PresenceChild, { isPresent: true, presenceAffectsLayout: presenceAffectsLayout, mode: mode, children: child }, getChildKey(child)));\n });\n if (process.env.NODE_ENV !== \"production\" &&\n mode === \"wait\" &&\n childrenToRender.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n return (jsx(Fragment, { children: exitingChildren.size\n ? childrenToRender\n : childrenToRender.map((child) => cloneElement(child)) }));\n};\n\nexport { AnimatePresence };\n","import { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction useForceUpdate() {\n const isMounted = useIsMounted();\n const [forcedRenderCount, setForcedRenderCount] = useState(0);\n const forceRender = useCallback(() => {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n const deferredForceRender = useCallback(() => frame.postRender(forceRender), [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n","import { createContext } from 'react';\n\nconst MotionContext = createContext({});\n\nexport { MotionContext };\n","import { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","import { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: microtask, cancel: cancelMicrotask } = createRenderBatcher(queueMicrotask, false);\n\nexport { cancelMicrotask, microtask };\n","function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\n\nlet scheduleHandoffComplete = false;\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef();\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (visualElement &&\n !visualElement.projection &&\n ProjectionNodeConstructor &&\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n useInsertionEffect(() => {\n visualElement && visualElement.update(props, presenceContext);\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const wantsHandoff = useRef(Boolean(props[optimizedAppearDataAttribute] &&\n !window.HandoffComplete));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n visualElement.updateFeatures();\n microtask.render(visualElement.render);\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n wantsHandoff.current = false;\n // This ensures all future calls to animateChanges() will run in useEffect\n if (!scheduleHandoffComplete) {\n scheduleHandoffComplete = true;\n queueMicrotask(completeHandoff);\n }\n }\n });\n return visualElement;\n}\nfunction completeHandoff() {\n window.HandoffComplete = true;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\n ? undefined\n : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement,\n scheduleRender: () => visualElement.scheduleRender(),\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n layoutScroll,\n layoutRoot,\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n\nexport { useVisualElement };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n instance && visualState.mount && visualState.mount(instance);\n if (visualElement) {\n if (instance) {\n visualElement.mount(instance);\n }\n else {\n visualElement.unmount();\n }\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\n","const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nexport { variantPriorityOrder, variantProps };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\nimport { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nconst featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n\nexport { featureDefinitions };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { forwardRef, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\nimport { warning, invariant } from '../utils/errors.mjs';\nimport { featureDefinitions } from './features/definitions.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent({ preloadedFeatures, createVisualElement, useRender, useVisualState, Component, }) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, context.visualElement)] }));\n }\n const ForwardRefComponent = forwardRef(MotionComponent);\n ForwardRefComponent[motionComponentSymbol] = Component;\n return ForwardRefComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = useContext(LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict\n ? warning(false, strictMessage)\n : invariant(false, strictMessage);\n }\n}\nfunction getProjectionFunctionality(props) {\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout)\n return {};\n const combined = { ...drag, ...layout };\n return {\n MeasureLayout: (drag === null || drag === void 0 ? void 0 : drag.isEnabled(props)) || (layout === null || layout === void 0 ? void 0 : layout.isEnabled(props))\n ? combined.MeasureLayout\n : undefined,\n ProjectionNode: combined.ProjectionNode,\n };\n}\n\nexport { createMotionComponent };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n}\n\nexport { loadFeatures };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
    \n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig = {}) {\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","const scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = new Set(transformPropOrder);\n\nexport { transformPropOrder, transformProps };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { transformProps } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","import { transformPropOrder } from './transform.mjs';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(transform, { enableHardwareAcceleration = true, allowTransformNone = true, }, transformIsDefault, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n if (transform[key] !== undefined) {\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${transform[key]}) `;\n }\n }\n if (enableHardwareAcceleration && !transform.z) {\n transformString += \"translateZ(0)\";\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = checkStringStartsWith(\"--\");\nconst startsAsVariableToken = checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n","import { clamp } from '../../../utils/clamp.mjs';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","/**\n * TODO: When we move from string as a source of truth to data models\n * everything in this folder should probably be referred to as models vs types\n */\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\nconst floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\nconst colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\nconst singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\nfunction isString(v) {\n return typeof v === \"string\";\n}\nfunction isNullish(v) {\n return v == null;\n}\n\nexport { colorRegex, floatRegex, isNullish, isString, sanitize, singleColorRegex };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType(\"deg\");\nconst percent = createUnitType(\"%\");\nconst px = createUnitType(\"px\");\nconst vh = createUnitType(\"vh\");\nconst vw = createUnitType(\"vw\");\nconst progressPercentage = {\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n};\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","import { number } from '../../../value/types/numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { scale, alpha } from '../../../value/types/numbers/index.mjs';\nimport { px, degrees, progressPercentage } from '../../../value/types/numbers/units.mjs';\nimport { int } from './type-int.mjs';\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n backgroundPositionX: px,\n backgroundPositionY: px,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { buildTransform } from './build-transform.mjs';\nimport { isCSSVariableName } from '../../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n const { style, vars, transform, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n let transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueType = numberValueTypes[key];\n const valueAsType = getValueAsType(value, valueType);\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== (valueType.default || 0))\n transformIsNone = false;\n }\n else if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] = valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(state.transform, options, transformIsNone, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","import { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState, isStatic) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n return style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState, isStatic);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n const pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n const pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return `${pxOriginX} ${pxOriginY}`;\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from '../../../value/types/numbers/units.mjs';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, options, isSVGTag, transformTemplate) {\n buildHTMLStyles(state, latest, options, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style, dimensions } = state;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\n","import { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, isSVGTag(Component), props.transformTemplate);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { Fragment, useMemo, createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction createUseRender(forwardMotionProps = false) {\n const useRender = (Component, props, ref, { latestValues }, isStatic) => {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== Fragment\n ? { ...filteredProps, ...visualProps, ref }\n : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n };\n return useRender;\n}\n\nexport { createUseRender };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (const key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n var _a;\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style &&\n isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n ((_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.getValue(key)) === null || _a === void 0 ? void 0 : _a.liveStyle) !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\nimport { transformPropOrder } from '../../html/utils/transform.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function getValueState(visualElement) {\n const state = [{}, {}];\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nconst isCustomValue = (v) => {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nconst resolveFinalValueInKeyframes = (v) => {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n const unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, onMount, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = (instance) => onMount(props, instance, state);\n }\n return state;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach((definition) => {\n const resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: (props, instance, { renderState, latestValues }) => {\n frame.read(() => {\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n });\n frame.render(() => {\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, isSVGTag(instance.tagName), props.transformTemplate);\n renderSVG(instance, renderState);\n });\n },\n }),\n};\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nconst htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\nexport { addDomEvent };\n","const isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\nexport { isPrimaryPointer };\n","import { isPrimaryPointer } from './utils/is-primary-pointer.mjs';\n\nfunction extractEventInfo(event, pointType = \"page\") {\n return {\n point: {\n x: event[`${pointType}X`],\n y: event[`${pointType}Y`],\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\nexport { addPointerInfo, extractEventInfo };\n","import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","function createLock(name) {\n let lock = null;\n return () => {\n const openLock = () => {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nconst globalHorizontalLock = createLock(\"dragHorizontal\");\nconst globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n let lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n const openHorizontal = globalHorizontalLock();\n const openVertical = globalVerticalLock();\n if (openHorizontal && openVertical) {\n lock = () => {\n openHorizontal();\n openVertical();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal)\n openHorizontal();\n if (openVertical)\n openVertical();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n const openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","class Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\nexport { Feature };\n","import { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction addHoverEvent(node, isActive) {\n const eventName = isActive ? \"pointerenter\" : \"pointerleave\";\n const callbackName = isActive ? \"onHoverStart\" : \"onHoverEnd\";\n const handleEvent = (event, info) => {\n if (event.pointerType === \"touch\" || isDragActive())\n return;\n const props = node.getProps();\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", isActive);\n }\n const callback = props[callbackName];\n if (callback) {\n frame.postRender(() => callback(event, info));\n }\n };\n return addPointerEvent(node.current, eventName, handleEvent, {\n passive: !node.getProps()[callbackName],\n });\n}\nclass HoverGesture extends Feature {\n mount() {\n this.unmount = pipe(addHoverEvent(this.node, true), addHoverEvent(this.node, false));\n }\n unmount() { }\n}\n\nexport { HoverGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","import { extractEventInfo } from '../events/event-info.mjs';\nimport { addDomEvent } from '../events/add-dom-event.mjs';\nimport { addPointerEvent } from '../events/add-pointer-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { noop } from '../utils/noop.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\nfunction fireSyntheticPointerEvent(name, handler) {\n if (!handler)\n return;\n const syntheticPointerEvent = new PointerEvent(\"pointer\" + name);\n handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent));\n}\nclass PressGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removeStartListeners = noop;\n this.removeEndListeners = noop;\n this.removeAccessibleListeners = noop;\n this.startPointerPress = (startEvent, startInfo) => {\n if (this.isPressing)\n return;\n this.removeEndListeners();\n const props = this.node.getProps();\n const endPointerPress = (endEvent, endInfo) => {\n if (!this.checkPressEnd())\n return;\n const { onTap, onTapCancel, globalTapTarget } = this.node.getProps();\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n const handler = !globalTapTarget &&\n !isNodeOrChild(this.node.current, endEvent.target)\n ? onTapCancel\n : onTap;\n if (handler) {\n frame.update(() => handler(endEvent, endInfo));\n }\n };\n const removePointerUpListener = addPointerEvent(window, \"pointerup\", endPointerPress, {\n passive: !(props.onTap || props[\"onPointerUp\"]),\n });\n const removePointerCancelListener = addPointerEvent(window, \"pointercancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo), {\n passive: !(props.onTapCancel ||\n props[\"onPointerCancel\"]),\n });\n this.removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n this.startPress(startEvent, startInfo);\n };\n this.startAccessiblePress = () => {\n const handleKeydown = (keydownEvent) => {\n if (keydownEvent.key !== \"Enter\" || this.isPressing)\n return;\n const handleKeyup = (keyupEvent) => {\n if (keyupEvent.key !== \"Enter\" || !this.checkPressEnd())\n return;\n fireSyntheticPointerEvent(\"up\", (event, info) => {\n const { onTap } = this.node.getProps();\n if (onTap) {\n frame.postRender(() => onTap(event, info));\n }\n });\n };\n this.removeEndListeners();\n this.removeEndListeners = addDomEvent(this.node.current, \"keyup\", handleKeyup);\n fireSyntheticPointerEvent(\"down\", (event, info) => {\n this.startPress(event, info);\n });\n };\n const removeKeydownListener = addDomEvent(this.node.current, \"keydown\", handleKeydown);\n const handleBlur = () => {\n if (!this.isPressing)\n return;\n fireSyntheticPointerEvent(\"cancel\", (cancelEvent, cancelInfo) => this.cancelPress(cancelEvent, cancelInfo));\n };\n const removeBlurListener = addDomEvent(this.node.current, \"blur\", handleBlur);\n this.removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n };\n }\n startPress(event, info) {\n this.isPressing = true;\n const { onTapStart, whileTap } = this.node.getProps();\n /**\n * Ensure we trigger animations before firing event callback\n */\n if (whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", true);\n }\n if (onTapStart) {\n frame.postRender(() => onTapStart(event, info));\n }\n }\n checkPressEnd() {\n this.removeEndListeners();\n this.isPressing = false;\n const props = this.node.getProps();\n if (props.whileTap && this.node.animationState) {\n this.node.animationState.setActive(\"whileTap\", false);\n }\n return !isDragActive();\n }\n cancelPress(event, info) {\n if (!this.checkPressEnd())\n return;\n const { onTapCancel } = this.node.getProps();\n if (onTapCancel) {\n frame.postRender(() => onTapCancel(event, info));\n }\n }\n mount() {\n const props = this.node.getProps();\n const removePointerListener = addPointerEvent(props.globalTapTarget ? window : this.node.current, \"pointerdown\", this.startPointerPress, {\n passive: !(props.onTapStart ||\n props[\"onPointerStart\"]),\n });\n const removeFocusListener = addDomEvent(this.node.current, \"focus\", this.startAccessiblePress);\n this.removeStartListeners = pipe(removePointerListener, removeFocusListener);\n }\n unmount() {\n this.removeStartListeners();\n this.removeEndListeners();\n this.removeAccessibleListeners();\n }\n}\n\nexport { PressGesture };\n","/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { Feature } from '../Feature.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\nexport { InViewFeature };\n","import { HoverGesture } from '../../gestures/hover.mjs';\nimport { FocusGesture } from '../../gestures/focus.mjs';\nimport { PressGesture } from '../../gestures/press.mjs';\nimport { InViewFeature } from './viewport/index.mjs';\n\nconst gestureAnimations = {\n inView: {\n Feature: InViewFeature,\n },\n tap: {\n Feature: PressGesture,\n },\n focus: {\n Feature: FocusGesture,\n },\n hover: {\n Feature: HoverGesture,\n },\n};\n\nexport { gestureAnimations };\n","import { addDomEvent } from '../events/add-dom-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\nimport { pipe } from '../utils/pipe.mjs';\n\nclass FocusGesture extends Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = pipe(addDomEvent(this.node.current, \"focus\", () => this.onFocus()), addDomEvent(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\nexport { FocusGesture };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, visualElement);\n}\n\nexport { resolveVariant };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\nexport { millisecondsToSeconds, secondsToMilliseconds };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\nexport { getDefaultTransition };\n","/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\nfunction getValueTransition(transition, key) {\n return (transition[key] ||\n transition[\"default\"] ||\n transition);\n}\n\nexport { getValueTransition, isTransitionDefined };\n","const instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\nexport { getFinalKeyframe };\n","import { MotionGlobalConfig } from '../utils/GlobalConfig.mjs';\nimport { frameData } from './frame.mjs';\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nexport { time };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\nexport { isZeroValueString };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\nexport { isNumericalString };\n","import { invariant } from '../../../utils/errors.mjs';\nimport { isNumericalString } from '../../../utils/is-numerical-string.mjs';\nimport { isCSSVariableToken } from './is-css-variable.mjs';\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 !== null && token1 !== void 0 ? token1 : token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`);\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return isCSSVariableToken(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\nexport { getVariableValue, parseCSSVariable };\n","import { transformPropOrder } from '../../html/utils/transform.mjs';\nimport { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n \"translateX\",\n \"translateY\",\n]);\nconst isNumOrPxType = (v) => v === number || v === px;\nconst getPosFromMatrix = (matrix, pos) => parseFloat(matrix.split(\", \")[pos]);\nconst getTranslateFromMatrix = (pos2, pos3) => (_bbox, { transform }) => {\n if (transform === \"none\" || !transform)\n return 0;\n const matrix3d = transform.match(/^matrix3d\\((.+)\\)$/u);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n const matrix = transform.match(/^matrix\\((.+)\\)$/u);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n};\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\nexport { isNumOrPxType, positionalKeys, positionalValues, removeNonTranslationalTransform };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","import { number } from '../../../value/types/numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from '../../../value/types/numbers/units.mjs';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","import { removeNonTranslationalTransform } from '../dom/utils/unit-conversion.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = removeNonTranslationalTransform(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n var _a;\n (_a = element.getValue(key)) === null || _a === void 0 ? void 0 : _a.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete());\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n readAllKeyframes();\n measureAllKeyframes();\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n /**\n * Track whether this resolver has completed. Once complete, it never\n * needs to attempt keyframe resolution again.\n */\n this.isComplete = false;\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n /**\n * Track whether this resolver is currently scheduled to resolve\n * to allow it to be cancelled and resumed externally.\n */\n this.isScheduled = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.isScheduled = true;\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n frame.read(readAllKeyframes);\n frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n /**\n * If a keyframe is null, we hydrate it either by reading it from\n * the instance, or propagating from previous keyframes.\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null) {\n /**\n * If the first keyframe is null, we need to find its value by sampling the element\n */\n if (i === 0) {\n const currentValue = motionValue === null || motionValue === void 0 ? void 0 : motionValue.get();\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n else {\n unresolvedKeyframes[i] = unresolvedKeyframes[i - 1];\n }\n }\n }\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete() {\n this.isComplete = true;\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe);\n toResolve.delete(this);\n }\n cancel() {\n if (!this.isComplete) {\n this.isScheduled = false;\n toResolve.delete(this);\n }\n }\n resume() {\n if (!this.isComplete)\n this.scheduleResolve();\n }\n}\n\nexport { KeyframeResolver, flushKeyframeResolvers };\n","import { isString, singleColorRegex, isNullish, floatRegex } from '../utils.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp &&\n !isNullish(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { clamp } from '../../../utils/clamp.mjs';\nimport { alpha, number } from '../numbers/index.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: isColorString(\"rgb\", \"red\"),\n parse: splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString(\"hsl\", \"hue\"),\n parse: splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { color } from '../color/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nfunction test(v) {\n var _a, _b;\n return (isNaN(v) &&\n isString(v) &&\n (((_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) || 0) +\n (((_b = v.match(colorRegex)) === null || _b === void 0 ? void 0 : _b.length) || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { complex } from '../../../value/types/complex/index.mjs';\nimport { filter } from '../../../value/types/complex/filter.mjs';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\nexport { getAnimatableNone };\n","import { analyseComplexValue } from '../../../value/types/complex/index.mjs';\nimport { getAnimatableNone } from '../../dom/value-types/animatable-none.mjs';\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n analyseComplexValue(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);\n }\n }\n}\n\nexport { makeNoneKeyframesAnimatable };\n","import { isNone } from '../../animation/utils/is-none.mjs';\nimport { getVariableValue } from './utils/css-variables-conversion.mjs';\nimport { isCSSVariableToken } from './utils/is-css-variable.mjs';\nimport { positionalKeys, isNumOrPxType, positionalValues } from './utils/unit-conversion.mjs';\nimport { findDimensionValueType } from './value-types/dimensions.mjs';\nimport { KeyframeResolver } from '../utils/KeyframesResolver.mjs';\nimport { makeNoneKeyframesAnimatable } from '../html/utils/make-none-animatable.mjs';\n\nclass DOMKeyframesResolver extends KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue) {\n super(unresolvedKeyframes, onComplete, name, motionValue, motionValue === null || motionValue === void 0 ? void 0 : motionValue.owner, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if (isCSSVariableToken(keyframe)) {\n const resolved = getVariableValue(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = findDimensionValueType(origin);\n const targetType = findDimensionValueType(target);\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (isNone(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n var _a;\n const { element, name, unresolvedKeyframes } = this;\n if (!element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if ((_a = this.removedTransforms) === null || _a === void 0 ? void 0 : _a.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\nexport { DOMKeyframesResolver };\n","import { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n else {\n return true;\n }\n}\n\nexport { isNone };\n","function memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n","import { complex } from '../../value/types/complex/index.mjs';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { flushKeyframeResolvers } from '../../render/utils/KeyframesResolver.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { canAnimate } from './utils/can-animate.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nclass BaseAnimation {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", ...options }) {\n // Track whether the animation has been stopped. Stopped animations won't restart.\n this.isStopped = false;\n this.hasAttemptedResolve = false;\n this.options = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n ...options,\n };\n this.updateFinishedPromise();\n }\n /**\n * A getter for resolved data. If keyframes are not yet resolved, accessing\n * this.resolved will synchronously flush all pending keyframe resolvers.\n * This is a deoptimisation, but at its worst still batches read/writes.\n */\n get resolved() {\n if (!this._resolved && !this.hasAttemptedResolve) {\n flushKeyframeResolvers();\n }\n return this._resolved;\n }\n /**\n * A method to be called when the keyframes resolver completes. This method\n * will check if its possible to run the animation and, if not, skip it.\n * Otherwise, it will call initPlayback on the implementing class.\n */\n onKeyframesResolved(keyframes, finalKeyframe) {\n this.hasAttemptedResolve = true;\n const { name, type, velocity, delay, onComplete, onUpdate, isGenerator, } = this.options;\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!isGenerator && !canAnimate(keyframes, name, type, velocity)) {\n // Finish immediately\n if (instantAnimationState.current || !delay) {\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete === null || onComplete === void 0 ? void 0 : onComplete();\n this.resolveFinishedPromise();\n return;\n }\n // Finish after a delay\n else {\n this.options.duration = 0;\n }\n }\n const resolvedAnimation = this.initPlayback(keyframes, finalKeyframe);\n if (resolvedAnimation === false)\n return;\n this._resolved = {\n keyframes,\n finalKeyframe,\n ...resolvedAnimation,\n };\n this.onPostResolved();\n }\n onPostResolved() { }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.currentFinishedPromise.then(resolve, reject);\n }\n updateFinishedPromise() {\n this.currentFinishedPromise = new Promise((resolve) => {\n this.resolveFinishedPromise = resolve;\n });\n }\n}\n\nexport { BaseAnimation };\n","import { warning } from '../../../utils/errors.mjs';\nimport { isAnimatable } from '../../utils/is-animatable.mjs';\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null)\n return false;\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(originKeyframe, name);\n const isTargetAnimatable = isAnimatable(targetKeyframe, name);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". ${originKeyframe} is not an animatable value - to enable this animation set ${originKeyframe} to a value animatable to ${targetKeyframe} via the \\`style\\` property.`);\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return hasKeyframesChanged(keyframes) || (type === \"spring\" && velocity);\n}\n\nexport { canAnimate };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { velocityPerSecond } from '../../../utils/velocity-per-second.mjs';\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nexport { calcGeneratorVelocity };\n","import { warning } from '../../../utils/errors.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= secondsToMilliseconds(maxDuration), \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = secondsToMilliseconds(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { millisecondsToSeconds } from '../../../utils/time-conversion.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { findSpring, calcAngularFreq } from './find.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: 0.0,\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: 1.0,\n };\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring({ keyframes, restDelta, restSpeed, ...options }) {\n const origin = keyframes[0];\n const target = keyframes[keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -millisecondsToSeconds(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale ? 0.01 : 2);\n restDelta || (restDelta = isGranularScale ? 0.005 : 0.5);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n return {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = initialVelocity;\n if (t !== 0) {\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity = calcGeneratorVelocity(resolveSpring, t, current);\n }\n else {\n currentVelocity = 0;\n }\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n };\n}\n\nexport { spring };\n","import { spring } from './spring/index.mjs';\nimport { calcGeneratorVelocity } from './utils/velocity.mjs';\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: calcGeneratorVelocity(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nexport { inertia };\n","import { noop } from '../utils/noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = cubicBezier(0.42, 0, 1, 1);\nconst easeOut = cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n","// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\n\nexport { circIn, circInOut, circOut };\n","import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = reverseEasing(backOut);\nconst backInOut = mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n","import { invariant } from '../../utils/errors.mjs';\nimport { cubicBezier } from '../cubic-bezier.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { easeIn, easeInOut, easeOut } from '../ease.mjs';\nimport { circIn, circInOut, circOut } from '../circ.mjs';\nimport { backIn, backInOut, backOut } from '../back.mjs';\nimport { anticipate } from '../anticipate.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst easingDefinitionToFunction = (definition) => {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`);\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`);\n return easingLookup[definition];\n }\n return definition;\n};\n\nexport { easingDefinitionToFunction };\n","import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","function mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\nexport { mixImmediate };\n","import { mixNumber } from './number.mjs';\nimport { warning } from '../errors.mjs';\nimport { hslaToRgba } from '../hsla-to-rgba.mjs';\nimport { hex } from '../../value/types/color/hex.mjs';\nimport { rgba } from '../../value/types/color/rgba.mjs';\nimport { hsla } from '../../value/types/color/hsla.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`);\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Framer Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return mixImmediate(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","const invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\nexport { invisibleValues, mixVisibility };\n","import { mixNumber as mixNumber$1 } from './number.mjs';\nimport { mixColor } from './color.mjs';\nimport { pipe } from '../pipe.mjs';\nimport { warning } from '../errors.mjs';\nimport { color } from '../../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../../value/types/complex/index.mjs';\nimport { isCSSVariableToken } from '../../render/dom/utils/is-css-variable.mjs';\nimport { invisibleValues, mixVisibility } from './visibility.mjs';\nimport { mixImmediate } from './immediate.mjs';\n\nfunction mixNumber(a, b) {\n return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject;\n }\n return mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n var _a;\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = (_a = origin.values[originIndex]) !== null && _a !== void 0 ? _a : 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (invisibleValues.has(target) &&\n !originStats.values.length)) {\n return mixVisibility(origin, target);\n }\n return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return mixImmediate(origin, target);\n }\n};\n\nexport { getMixer, mixArray, mixComplex, mixObject };\n","import { getMixer } from './complex.mjs';\nimport { mixNumber } from './number.mjs';\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return mixNumber(from, to, p);\n }\n const mixer = getMixer(from);\n return mixer(from, to);\n}\n\nexport { mix };\n","import { invariant } from './errors.mjs';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { progress } from './progress.mjs';\nimport { noop } from './noop.mjs';\nimport { mix } from './mix/index.mjs';\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revist this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && input[0] === input[1])\n return () => output[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n","import { mixNumber } from '../mix/number.mjs';\nimport { progress } from '../progress.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mixNumber(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n","import { easeInOut } from '../../easing/ease.mjs';\nimport { isEasingArray } from '../../easing/utils/is-easing-array.mjs';\nimport { easingDefinitionToFunction } from '../../easing/utils/map.mjs';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { defaultOffset } from '../../utils/offsets/default.mjs';\nimport { convertOffsetToTimes } from '../../utils/offsets/time.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nexport { defaultEasing, keyframes };\n","const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\n","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\n","import { time } from '../../../frameloop/sync-time.mjs';\nimport { frame, cancelFrame, frameData } from '../../../frameloop/frame.mjs';\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: () => frame.update(passTimestamp, true),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (frameData.isProcessing ? frameData.timestamp : time.now()),\n };\n};\n\nexport { frameloopDriver };\n","import { KeyframeResolver } from '../../render/utils/KeyframesResolver.mjs';\nimport { spring } from '../generators/spring/index.mjs';\nimport { inertia } from '../generators/inertia.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { mix } from '../../utils/mix/index.mjs';\nimport { calcGeneratorDuration } from '../generators/utils/calc-duration.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { invariant } from '../../utils/errors.mjs';\nimport { frameloopDriver } from './drivers/driver-frameloop.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nconst generators = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\nconst percentToProgress = (percent) => percent / 100;\n/**\n * Animation that runs on the main thread. Designed to be WAAPI-spec in the subset of\n * features we expose publically. Mostly the compatibility is to ensure visual identity\n * between both WAAPI and main thread animations.\n */\nclass MainThreadAnimation extends BaseAnimation {\n constructor({ KeyframeResolver: KeyframeResolver$1 = KeyframeResolver, ...options }) {\n super(options);\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * The time at which the animation was started.\n */\n this.startTime = null;\n /**\n * The time at which the animation was cancelled.\n */\n this.cancelTime = null;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * The state of the animation to apply when the animation is resolved. This\n * allows calls to the public API to control the animation before it is resolved,\n * without us having to resolve it first.\n */\n this.pendingPlayState = \"running\";\n this.state = \"idle\";\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n const { onStop } = this.options;\n onStop && onStop();\n };\n const { name, motionValue, keyframes } = this.options;\n const onResolved = (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe);\n if (name && motionValue && motionValue.owner) {\n this.resolver = motionValue.owner.resolveKeyframes(keyframes, onResolved, name, motionValue);\n }\n else {\n this.resolver = new KeyframeResolver$1(keyframes, onResolved, name, motionValue);\n }\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes$1) {\n const { type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = this.options;\n const generatorFactory = generators[type] || keyframes;\n /**\n * If our generator doesn't support mixing numbers, we need to replace keyframes with\n * [0, 100] and then make a function that maps that to the actual keyframes.\n *\n * 100 is chosen instead of 1 as it works nicer with spring animations.\n */\n let mapPercentToKeyframes;\n let mirroredGenerator;\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n if (process.env.NODE_ENV !== \"production\") {\n invariant(keyframes$1.length === 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`);\n }\n mapPercentToKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...this.options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n mirroredGenerator = generatorFactory({\n ...this.options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n const resolvedDuration = calculatedDuration + repeatDelay;\n const totalDuration = resolvedDuration * (repeat + 1) - repeatDelay;\n return {\n generator,\n mirroredGenerator,\n mapPercentToKeyframes,\n calculatedDuration,\n resolvedDuration,\n totalDuration,\n };\n }\n onPostResolved() {\n const { autoplay = true } = this.options;\n this.play();\n if (this.pendingPlayState === \"paused\" || !autoplay) {\n this.pause();\n }\n else {\n this.state = this.pendingPlayState;\n }\n }\n tick(timestamp, sample = false) {\n const { resolved } = this;\n // If the animations has failed to resolve, return the final keyframe.\n if (!resolved) {\n const { keyframes } = this.options;\n return { done: true, value: keyframes[keyframes.length - 1] };\n }\n const { finalKeyframe, generator, mirroredGenerator, mapPercentToKeyframes, keyframes, calculatedDuration, totalDuration, resolvedDuration, } = resolved;\n if (this.startTime === null)\n return generator.next(0);\n const { delay, repeat, repeatType, repeatDelay, onUpdate } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n // Update currentTime\n if (sample) {\n this.currentTime = timestamp;\n }\n else if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime =\n Math.round(timestamp - this.startTime) * this.speed;\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.speed >= 0 ? 1 : -1);\n const isInDelayPhase = this.speed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mapPercentToKeyframes) {\n state.value = mapPercentToKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.speed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n if (isAnimationFinished && finalKeyframe !== undefined) {\n state.value = getFinalKeyframe(keyframes, this.options, finalKeyframe);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n get duration() {\n const { resolved } = this;\n return resolved ? millisecondsToSeconds(resolved.calculatedDuration) : 0;\n }\n get time() {\n return millisecondsToSeconds(this.currentTime);\n }\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n this.currentTime = newTime;\n if (this.holdTime !== null || this.speed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.speed;\n }\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = millisecondsToSeconds(this.currentTime);\n }\n }\n play() {\n if (!this.resolver.isScheduled) {\n this.resolver.resume();\n }\n if (!this._resolved) {\n this.pendingPlayState = \"running\";\n return;\n }\n if (this.isStopped)\n return;\n const { driver = frameloopDriver, onPlay } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n onPlay && onPlay();\n const now = this.driver.now();\n if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime || this.state === \"finished\") {\n this.startTime = now;\n }\n if (this.state === \"finished\") {\n this.updateFinishedPromise();\n }\n this.cancelTime = this.startTime;\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n var _a;\n if (!this._resolved) {\n this.pendingPlayState = \"paused\";\n return;\n }\n this.state = \"paused\";\n this.holdTime = (_a = this.currentTime) !== null && _a !== void 0 ? _a : 0;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.pendingPlayState = this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.teardown();\n this.state = \"finished\";\n const { onComplete } = this.options;\n onComplete && onComplete();\n }\n cancel() {\n if (this.cancelTime !== null) {\n this.tick(this.cancelTime);\n }\n this.teardown();\n this.updateFinishedPromise();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.resolveFinishedPromise();\n this.updateFinishedPromise();\n this.startTime = this.cancelTime = null;\n this.resolver.cancel();\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(time) {\n this.startTime = 0;\n return this.tick(time, true);\n }\n}\n// Legacy interface\nfunction animateValue(options) {\n return new MainThreadAnimation(options);\n}\n\nexport { MainThreadAnimation, animateValue };\n","/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\nexport { calcGeneratorDuration, maxGeneratorDuration };\n","const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nexport { isBezierDefinition };\n","import { isBezierDefinition } from '../../../easing/utils/is-bezier-definition.mjs';\n\nfunction isWaapiSupportedEasing(easing) {\n return Boolean(!easing ||\n (typeof easing === \"string\" && easing in supportedWaapiEasing) ||\n isBezierDefinition(easing) ||\n (Array.isArray(easing) && easing.every(isWaapiSupportedEasing)));\n}\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\nfunction mapEasingToNativeEasingWithDefault(easing) {\n return (mapEasingToNativeEasing(easing) ||\n supportedWaapiEasing.easeOut);\n}\nfunction mapEasingToNativeEasing(easing) {\n if (!easing) {\n return undefined;\n }\n else if (isBezierDefinition(easing)) {\n return cubicBezierAsString(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map(mapEasingToNativeEasingWithDefault);\n }\n else {\n return supportedWaapiEasing[easing];\n }\n}\n\nexport { cubicBezierAsString, isWaapiSupportedEasing, mapEasingToNativeEasing, supportedWaapiEasing };\n","import { time } from '../../frameloop/sync-time.mjs';\nimport { DOMKeyframesResolver } from '../../render/dom/DOMKeyframesResolver.mjs';\nimport { memo } from '../../utils/memo.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { millisecondsToSeconds, secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { BaseAnimation } from './BaseAnimation.mjs';\nimport { MainThreadAnimation } from './MainThreadAnimation.mjs';\nimport { animateStyle } from './waapi/index.mjs';\nimport { isWaapiSupportedEasing } from './waapi/easing.mjs';\nimport { getFinalKeyframe } from './waapi/utils/get-final-keyframe.mjs';\n\nconst supportsWaapi = memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxDuration = 20000;\n/**\n * Check if an animation can run natively via WAAPI or requires pregenerated keyframes.\n * WAAPI doesn't support spring or function easings so we run these as JS animation before\n * handing off.\n */\nfunction requiresPregeneratedKeyframes(options) {\n return (options.type === \"spring\" ||\n options.name === \"backgroundColor\" ||\n !isWaapiSupportedEasing(options.ease));\n}\nfunction pregenerateKeyframes(keyframes, options) {\n /**\n * Create a main-thread animation to pregenerate keyframes.\n * We sample this at regular intervals to generate keyframes that we then\n * linearly interpolate between.\n */\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n repeat: 0,\n delay: 0,\n isGenerator: true,\n });\n let state = { done: false, value: keyframes[0] };\n const pregeneratedKeyframes = [];\n /**\n * Bail after 20 seconds of pre-generated keyframes as it's likely\n * we're heading for an infinite loop.\n */\n let t = 0;\n while (!state.done && t < maxDuration) {\n state = sampleAnimation.sample(t);\n pregeneratedKeyframes.push(state.value);\n t += sampleDelta;\n }\n return {\n times: undefined,\n keyframes: pregeneratedKeyframes,\n duration: t - sampleDelta,\n ease: \"linear\",\n };\n}\nclass AcceleratedAnimation extends BaseAnimation {\n constructor(options) {\n super(options);\n const { name, motionValue, keyframes } = this.options;\n this.resolver = new DOMKeyframesResolver(keyframes, (resolvedKeyframes, finalKeyframe) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe), name, motionValue);\n this.resolver.scheduleResolve();\n }\n initPlayback(keyframes, finalKeyframe) {\n var _a;\n let { duration = 300, times, ease, type, motionValue, name, } = this.options;\n /**\n * If element has since been unmounted, return false to indicate\n * the animation failed to initialised.\n */\n if (!((_a = motionValue.owner) === null || _a === void 0 ? void 0 : _a.current)) {\n return false;\n }\n /**\n * If this animation needs pre-generated keyframes then generate.\n */\n if (requiresPregeneratedKeyframes(this.options)) {\n const { onComplete, onUpdate, motionValue, ...options } = this.options;\n const pregeneratedAnimation = pregenerateKeyframes(keyframes, options);\n keyframes = pregeneratedAnimation.keyframes;\n // If this is a very short animation, ensure we have\n // at least two keyframes to animate between as older browsers\n // can't animate between a single keyframe.\n if (keyframes.length === 1) {\n keyframes[1] = keyframes[0];\n }\n duration = pregeneratedAnimation.duration;\n times = pregeneratedAnimation.times;\n ease = pregeneratedAnimation.ease;\n type = \"keyframes\";\n }\n const animation = animateStyle(motionValue.owner.current, name, keyframes, { ...this.options, duration, times, ease });\n // Override the browser calculated startTime with one synchronised to other JS\n // and WAAPI animations starting this event loop.\n animation.startTime = time.now();\n if (this.pendingTimeline) {\n animation.timeline = this.pendingTimeline;\n this.pendingTimeline = undefined;\n }\n else {\n /**\n * Prefer the `onfinish` prop as it's more widely supported than\n * the `finished` promise.\n *\n * Here, we synchronously set the provided MotionValue to the end\n * keyframe. If we didn't, when the WAAPI animation is finished it would\n * be removed from the element which would then revert to its old styles.\n */\n animation.onfinish = () => {\n const { onComplete } = this.options;\n motionValue.set(getFinalKeyframe(keyframes, this.options, finalKeyframe));\n onComplete && onComplete();\n this.cancel();\n this.resolveFinishedPromise();\n };\n }\n return {\n animation,\n duration,\n times,\n type,\n ease,\n keyframes: keyframes,\n };\n }\n get duration() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { duration } = resolved;\n return millisecondsToSeconds(duration);\n }\n get time() {\n const { resolved } = this;\n if (!resolved)\n return 0;\n const { animation } = resolved;\n return millisecondsToSeconds(animation.currentTime || 0);\n }\n set time(newTime) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.currentTime = secondsToMilliseconds(newTime);\n }\n get speed() {\n const { resolved } = this;\n if (!resolved)\n return 1;\n const { animation } = resolved;\n return animation.playbackRate;\n }\n set speed(newSpeed) {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.playbackRate = newSpeed;\n }\n get state() {\n const { resolved } = this;\n if (!resolved)\n return \"idle\";\n const { animation } = resolved;\n return animation.playState;\n }\n /**\n * Replace the default DocumentTimeline with another AnimationTimeline.\n * Currently used for scroll animations.\n */\n attachTimeline(timeline) {\n if (!this._resolved) {\n this.pendingTimeline = timeline;\n }\n else {\n const { resolved } = this;\n if (!resolved)\n return noop;\n const { animation } = resolved;\n animation.timeline = timeline;\n animation.onfinish = null;\n }\n return noop;\n }\n play() {\n if (this.isStopped)\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n if (animation.playState === \"finished\") {\n this.updateFinishedPromise();\n }\n animation.play();\n }\n pause() {\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation } = resolved;\n animation.pause();\n }\n stop() {\n this.resolver.cancel();\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n const { resolved } = this;\n if (!resolved)\n return;\n const { animation, keyframes, duration, type, ease, times } = resolved;\n if (animation.playState === \"idle\" ||\n animation.playState === \"finished\") {\n return;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n if (this.time) {\n const { motionValue, onUpdate, onComplete, ...options } = this.options;\n const sampleAnimation = new MainThreadAnimation({\n ...options,\n keyframes,\n duration,\n type,\n ease,\n times,\n isGenerator: true,\n });\n const sampleTime = secondsToMilliseconds(this.time);\n motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);\n }\n this.cancel();\n }\n complete() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.finish();\n }\n cancel() {\n const { resolved } = this;\n if (!resolved)\n return;\n resolved.animation.cancel();\n }\n static supports(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n motionValue &&\n motionValue.owner &&\n motionValue.owner.current instanceof HTMLElement &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !motionValue.owner.getProps().onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n }\n}\n\nexport { AcceleratedAnimation };\n","import { mapEasingToNativeEasing } from './easing.mjs';\n\nfunction animateStyle(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease, times, } = {}) {\n const keyframeOptions = { [valueName]: keyframes };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n return element.animate(keyframeOptions, {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n });\n}\n\nexport { animateStyle };\n","import { memo } from '../../../utils/memo.mjs';\n\nconst supportsScrollTimeline = memo(() => window.ScrollTimeline !== undefined);\n\nexport { supportsScrollTimeline };\n","import { observeTimeline } from '../render/dom/scroll/observe.mjs';\nimport { supportsScrollTimeline } from '../render/dom/scroll/supports.mjs';\n\nclass GroupPlaybackControls {\n constructor(animations) {\n // Bound to accomodate common `return animation.stop` pattern\n this.stop = () => this.runAll(\"stop\");\n this.animations = animations.filter(Boolean);\n }\n then(onResolve, onReject) {\n return Promise.all(this.animations).then(onResolve).catch(onReject);\n }\n /**\n * TODO: Filter out cancelled or stopped animations before returning\n */\n getAll(propName) {\n return this.animations[0][propName];\n }\n setAll(propName, newValue) {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i][propName] = newValue;\n }\n }\n attachTimeline(timeline) {\n const cancelAll = this.animations.map((animation) => {\n if (supportsScrollTimeline() && animation.attachTimeline) {\n animation.attachTimeline(timeline);\n }\n else {\n animation.pause();\n return observeTimeline((progress) => {\n animation.time = animation.duration * progress;\n }, timeline);\n }\n });\n return () => {\n cancelAll.forEach((cancelTimeline, i) => {\n if (cancelTimeline)\n cancelTimeline();\n this.animations[i].stop();\n });\n };\n }\n get time() {\n return this.getAll(\"time\");\n }\n set time(time) {\n this.setAll(\"time\", time);\n }\n get speed() {\n return this.getAll(\"speed\");\n }\n set speed(speed) {\n this.setAll(\"speed\", speed);\n }\n get duration() {\n let max = 0;\n for (let i = 0; i < this.animations.length; i++) {\n max = Math.max(max, this.animations[i].duration);\n }\n return max;\n }\n runAll(methodName) {\n this.animations.forEach((controls) => controls[methodName]());\n }\n play() {\n this.runAll(\"play\");\n }\n pause() {\n this.runAll(\"pause\");\n }\n cancel() {\n this.runAll(\"cancel\");\n }\n complete() {\n this.runAll(\"complete\");\n }\n}\n\nexport { GroupPlaybackControls };\n","import { frame, cancelFrame } from '../../../frameloop/frame.mjs';\n\nfunction observeTimeline(update, timeline) {\n let prevProgress;\n const onFrame = () => {\n const { currentTime } = timeline;\n const percentage = currentTime === null ? 0 : currentTime.value;\n const progress = percentage / 100;\n if (prevProgress !== progress) {\n update(progress);\n }\n prevProgress = progress;\n };\n frame.update(onFrame, true);\n return () => cancelFrame(onFrame);\n}\n\nexport { observeTimeline };\n","import { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { getValueTransition, isTransitionDefined } from '../utils/transitions.mjs';\nimport { MotionGlobalConfig } from '../../utils/GlobalConfig.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { getFinalKeyframe } from '../animators/waapi/utils/get-final-keyframe.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\nimport { AcceleratedAnimation } from '../animators/AcceleratedAnimation.mjs';\nimport { MainThreadAnimation } from '../animators/MainThreadAnimation.mjs';\nimport { GroupPlaybackControls } from '../GroupPlaybackControls.mjs';\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = getValueTransition(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n let options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unqiue transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n options = {\n ...options,\n ...getDefaultTransition(name, options),\n };\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n if (options.duration) {\n options.duration = secondsToMilliseconds(options.duration);\n }\n if (options.repeatDelay) {\n options.repeatDelay = secondsToMilliseconds(options.repeatDelay);\n }\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n options.duration = 0;\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (instantAnimationState.current ||\n MotionGlobalConfig.skipAnimations) {\n shouldSkip = true;\n options.duration = 0;\n options.delay = 0;\n }\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n // We still want to return some animation controls here rather\n // than returning undefined\n return new GroupPlaybackControls([]);\n }\n }\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n if (!isHandoff && AcceleratedAnimation.supports(options)) {\n return new AcceleratedAnimation(options);\n }\n else {\n return new MainThreadAnimation(options);\n }\n};\n\nexport { animateMotionValue };\n","import { isMotionValue } from '../utils/is-motion-value.mjs';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","import { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n constructor(init, options = {}) {\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"11.2.14\";\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n const currentTime = time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev && this.events.change) {\n this.events.change.notify(this.current);\n }\n // Update render subscribers\n if (render && this.events.renderRequest) {\n this.events.renderRequest.notify(this.current);\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\n","import { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\nexport { setTarget };\n","import { optimizedAppearDataAttribute } from './data-id.mjs';\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.getProps()[optimizedAppearDataAttribute];\n}\n\nexport { getOptimisedAppearId };\n","import { transformProps } from '../../render/html/utils/transform.mjs';\nimport { animateMotionValue } from './motion-value.mjs';\nimport { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { getValueTransition } from '../utils/transitions.mjs';\nimport { getOptimisedAppearId } from '../optimized-appear/get-appear-id.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n var _a;\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition;\n const willChange = visualElement.getValue(\"willChange\");\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, (_a = visualElement.latestValues[key]) !== null && _a !== void 0 ? _a : null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n elapsed: 0,\n ...getValueTransition(transition || {}, key),\n };\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.HandoffAppearAnimations) {\n const appearId = getOptimisedAppearId(visualElement);\n if (appearId) {\n const elapsed = window.HandoffAppearAnimations(appearId, key, value, frame);\n if (elapsed !== null) {\n valueTransition.elapsed = elapsed;\n isHandoff = true;\n }\n }\n }\n value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && transformProps.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n animation.then(() => willChange.remove(key));\n }\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n Promise.all(animations).then(() => {\n frame.update(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n });\n }\n return animations;\n}\n\nexport { animateTarget };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\n\nfunction animateVariant(visualElement, variant, options = {}) {\n var _a;\n const resolved = resolveVariant(visualElement, variant, options.type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all(animateTarget(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n const generateStaggerDuration = staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delayChildren + generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n\nexport { animateVariant, sortByTreeOrder };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { variantPriorityOrder } from './variant-props.mjs';\nimport { animateVisualElement } from '../../animation/interfaces/visual-element.mjs';\n\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n let state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (type) => (acc, definition) => {\n var _a;\n const resolved = resolveVariant(visualElement, definition, type === \"exit\"\n ? (_a = visualElement.presenceContext) === null || _a === void 0 ? void 0 : _a.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(changedActiveType) {\n const props = visualElement.getProps();\n const context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined\n ? props[type]\n : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] &&\n prop !== props[type] &&\n propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n valueHasChanged = !shallowCompare(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n */\n if (shouldAnimateType && (!isInherited || handledRemovedValues)) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type },\n })));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget !== null && fallbackTarget !== void 0 ? fallbackTarget : null;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach((child) => { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n reset: () => {\n state = createState();\n isInitialRender = true;\n },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\nimport { animateVariant } from './visual-element-variant.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n frame.postRender(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n });\n}\n\nexport { animateVisualElement };\n","import { Feature } from '../Feature.mjs';\n\nlet id = 0;\nclass ExitAnimationFeature extends Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => onExitComplete(this.id));\n }\n }\n mount() {\n const { register } = this.node.presenceContext || {};\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\nexport { ExitAnimationFeature };\n","import { AnimationFeature } from './animation/index.mjs';\nimport { ExitAnimationFeature } from './animation/exit.mjs';\n\nconst animations = {\n animation: {\n Feature: AnimationFeature,\n },\n exit: {\n Feature: ExitAnimationFeature,\n },\n};\n\nexport { animations };\n","import { isAnimationControls } from '../../../animation/utils/is-animation-controls.mjs';\nimport { createAnimationState } from '../../../render/utils/animation-state.mjs';\nimport { Feature } from '../Feature.mjs';\n\nclass AnimationFeature extends Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = createAnimationState(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n if (isAnimationControls(animate)) {\n this.unmountControls = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() {\n var _a;\n this.node.animationState.reset();\n (_a = this.unmountControls) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n}\n\nexport { AnimationFeature };\n","const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\nexport { distance, distance2D };\n","import { extractEventInfo } from '../../events/event-info.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { distance2D } from '../../utils/distance.mjs';\nimport { isPrimaryPointer } from '../../events/utils/is-primary-pointer.mjs';\nimport { frame, cancelFrame, frameData } from '../../frameloop/frame.mjs';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow, dragSnapToOrigin = false } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n if (this.dragSnapToOrigin)\n resumeAnimation && resumeAnimation();\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!isPrimaryPointer(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.contextWindow = contextWindow || window;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(this.contextWindow, \"pointermove\", this.handlePointerMove), addPointerEvent(this.contextWindow, \"pointerup\", this.handlePointerUp), addPointerEvent(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n cancelFrame(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n","import { mixNumber } from '../../utils/mix/number.mjs';\n\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target = 0, maxDistance = 0.01) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = mixNumber(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n if (isNear(delta.scale, 1, 0.0001) || isNaN(delta.scale))\n delta.scale = 1;\n delta.translate =\n mixNumber(target.min, target.max, delta.origin) - delta.originPoint;\n if (isNear(delta.translate) || isNaN(delta.translate))\n delta.translate = 0;\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\nexport { calcAxisDelta, calcBoxDelta, calcLength, calcRelativeAxis, calcRelativeAxisPosition, calcRelativeBox, calcRelativePosition, isNear };\n","import { progress } from '../../../utils/progress.mjs';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const instance = node.instance;\n if (instance &&\n instance.style &&\n instance.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n treeScale.x = snapToDefault(treeScale.x);\n treeScale.y = snapToDefault(treeScale.y);\n}\nfunction snapToDefault(scale) {\n if (Number.isInteger(scale))\n return scale;\n return scale > 1.0000000000001 || scale < 0.999999999999 ? scale : 1;\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, transforms, [key, scaleKey, originKey]) {\n const axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n const originPoint = mixNumber(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform, xKeys);\n transformAxis(box.y, transform, yKeys);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","// Fixes https://github.com/framer/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\nexport { getContextWindow };\n","import { invariant } from '../../utils/errors.mjs';\nimport { PanSession } from '../pan/PanSession.mjs';\nimport { getGlobalLock } from './utils/lock.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, rebaseAxisConstraints, calcViewportConstraints, calcOrigin, defaultElastic } from './utils/constraints.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { animateMotionValue } from '../../animation/interfaces/motion-value.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: PointerEvent\nclass VisualElementDragControls {\n constructor(visualElement) {\n // This is a reference to the global drag gesture lock, ensuring only one component\n // can \"capture\" the drag of one or both axes.\n // TODO: Look into moving this into pansession?\n this.openGlobalLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n const { dragSnapToOrigin } = this.getProps();\n // Stop or pause any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n dragSnapToOrigin ? this.pauseAnimation() : this.stopAnimation();\n if (snapToCursor) {\n this.snapToCursor(extractEventInfo(event, \"page\").point);\n }\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openGlobalLock)\n this.openGlobalLock();\n this.openGlobalLock = getGlobalLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openGlobalLock)\n return;\n }\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n frame.postRender(() => onDragStart(event, info));\n }\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n // latestPointerEvent = event\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openGlobalLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag && onDrag(event, info);\n };\n const onSessionEnd = (event, info) => this.stop(event, info);\n const resumeAnimation = () => eachAxis((axis) => {\n var _a;\n return this.getAnimationState(axis) === \"paused\" &&\n ((_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.play());\n });\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n contextWindow: getContextWindow(this.visualElement),\n });\n }\n stop(event, info) {\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n const { velocity } = info;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n frame.postRender(() => onDragEnd(event, info));\n }\n }\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n var _a;\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : (_a = this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.constraints !== false &&\n this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !isRefObject(constraints))\n return false;\n const constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n return axisValue.start(animateMotionValue(axis, axisValue, 0, transition, this.visualElement));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n pauseAnimation() {\n eachAxis((axis) => { var _a; return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.pause(); });\n }\n getAnimationState(axis) {\n var _a;\n return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.state;\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = `_drag${axis.toUpperCase()}`;\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial\n ? props.initial[axis]\n : undefined) || 0);\n }\n snapToCursor(point) {\n eachAxis((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n axisValue.set(point[axis] - mixNumber(min, max, 0.5));\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue && this.constraints !== false) {\n const latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set(mixNumber(min, max, boxProgress[axis]));\n });\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n drag && dragListener && this.start(event);\n });\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if (isRefObject(dragConstraints) && dragConstraints.current) {\n this.constraints = this.resolveRefConstraints();\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n frame.read(measureDragConstraints);\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","import { PanSession } from './PanSession.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n frame.postRender(() => handler(event, info));\n }\n};\nclass PanGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: getContextWindow(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: onPan,\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n frame.postRender(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = addPointerEvent(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\nexport { PanGesture };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { px } from '../../value/types/numbers/units.mjs';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mixNumber(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\nexport { correctBoxShadow };\n","import { jsx } from 'react/jsx-runtime';\nimport { useContext, Component } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/state.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\nimport { microtask } from '../../../frameloop/microtask.mjs';\nimport { frame } from '../../../frameloop/frame.mjs';\n\nclass MeasureLayoutWithContext extends Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup.group)\n layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", () => {\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n onExitComplete: () => this.safeToRemove(),\n });\n }\n globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n frame.postRender(() => {\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n microtask.postRender(() => {\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\n const { projection } = visualElement;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = usePresence();\n const layoutGroup = useContext(LayoutGroupContext);\n return (jsx(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\n}\nconst defaultScaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","import { useContext, useId, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
    \n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => register(id), []);\n const safeToRemove = () => onExitComplete && onExitComplete(id);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
    \n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","import { circOut } from '../../easing/circ.mjs';\nimport { progress } from '../../utils/progress.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mixNumber(0, \n // TODO Reinstate this if only child\n lead.opacity !== undefined ? lead.opacity : 1, easeCrossfadeIn(progress));\n target.opacityExit = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, lead.opacity !== undefined ? lead.opacity : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = mixNumber(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nconst easeCrossfadeIn = compress(0, 0.5, circOut);\nconst easeCrossfadeOut = compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n","/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n\nexport { copyAxisInto, copyBoxInto };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { scalePoint } from './delta-apply.mjs';\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = mixNumber(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = mixNumber(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","import { calcLength } from './delta-calc.mjs';\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction boxEquals(a, b) {\n return (a.x.min === b.x.min &&\n a.x.max === b.x.max &&\n a.y.min === b.y.min &&\n a.y.max === b.y.max);\n}\nfunction boxEqualsRounded(a, b) {\n return (Math.round(a.x.min) === Math.round(b.x.min) &&\n Math.round(a.x.max) === Math.round(b.x.max) &&\n Math.round(a.y.min) === Math.round(b.y.min) &&\n Math.round(a.y.max) === Math.round(b.y.max));\n}\nfunction aspectRatio(box) {\n return calcLength(box.x) / calcLength(box.y);\n}\n\nexport { aspectRatio, boxEquals, boxEqualsRounded, isDeltaZero };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n }\n remove(node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\nexport { NodeStack };\n","function buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n const zTranslate = (latestTransform === null || latestTransform === void 0 ? void 0 : latestTransform.z) || 0;\n if (xTranslate || yTranslate || zTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n if (transformPerspective)\n transform = `perspective(${transformPerspective}px) ${transform}`;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n if (skewX)\n transform += `skewX(${skewX}deg) `;\n if (skewY)\n transform += `skewY(${skewY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\nexport { buildProjectionTransform };\n","const compareByDepth = (a, b) => a.depth - b.depth;\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n removeItem(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\nexport { FlatTree };\n","import { SubscriptionManager } from '../../utils/subscription-manager.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcRelativePosition, calcRelativeBox, calcBoxDelta, calcLength, isNear } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\nimport { getValueTransition } from '../../animation/utils/transitions.mjs';\nimport { boxEqualsRounded, isDeltaZero, aspectRatio, boxEquals } from '../geometry/utils.mjs';\nimport { NodeStack } from '../shared/stack.mjs';\nimport { scaleCorrectors } from '../styles/scale-correction.mjs';\nimport { buildProjectionTransform } from '../styles/transform.mjs';\nimport { eachAxis } from '../utils/each-axis.mjs';\nimport { hasTransform, hasScale, has2DTranslate } from '../utils/has-transform.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { globalProjectionState } from './state.mjs';\nimport { delay } from '../../utils/delay.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { record } from '../../debug/record.mjs';\nimport { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';\nimport { animateSingleValue } from '../../animation/interfaces/single-value.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { cancelFrame, frameData, steps, frame } from '../../frameloop/frame.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { time } from '../../frameloop/sync-time.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\nimport { getOptimisedAppearId } from '../../animation/optimized-appear/get-appear-id.mjs';\n\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\nconst hiddenVisibility = { visibility: \"hidden\" };\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\n/**\n * Use a mutable data object for debug data so as to not create a new\n * object every frame.\n */\nconst projectionFrameData = {\n type: \"projectionFrame\",\n totalNodes: 0,\n resolvedTargetDeltas: 0,\n recalculatedProjection: 0,\n};\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n const { latestValues } = visualElement;\n // Record the distorting transform and then temporarily set it to 0\n if (latestValues[key]) {\n values[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n if (sharedAnimationValues) {\n sharedAnimationValues[key] = 0;\n }\n }\n}\nfunction isOptimisedAppearTree(projectionNode) {\n projectionNode.hasCheckedOptimisedAppear = true;\n if (projectionNode.root === projectionNode)\n return false;\n const { visualElement } = projectionNode.options;\n if (!visualElement) {\n return false;\n }\n else if (getOptimisedAppearId(visualElement)) {\n return true;\n }\n else if (projectionNode.parent &&\n !projectionNode.parent.hasCheckedOptimisedAppear) {\n return isOptimisedAppearTree(projectionNode.parent);\n }\n else {\n return false;\n }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * Store whether this node has been checked for optimised appear animations. As\n * effects fire bottom-up, and we want to look up the tree for appear animations,\n * this makes sure we only check each path once, stopping at nodes that\n * have already been checked.\n */\n this.hasCheckedOptimisedAppear = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.scheduleUpdate = () => this.update();\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n projectionFrameData.totalNodes =\n projectionFrameData.resolvedTargetDeltas =\n projectionFrameData.recalculatedProjection =\n 0;\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n record(projectionFrameData);\n };\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance, isLayoutDirty = this.root.hasTreeAnimated) {\n if (this.instance)\n return;\n this.isSVG = isSVGElement(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n attachResizeListener(instance, () => {\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = delay(resizeUnblockUpdate, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const targetChanged = !this.targetLayout ||\n !boxEqualsRounded(this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (this.options.layoutRoot ||\n (this.resumeFrom && this.resumeFrom.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n const animationOptions = {\n ...getValueTransition(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n cancelFrame(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n /**\n * If we're running optimised appear animations then these must be\n * cancelled before measuring the DOM. This is so we can measure\n * the true layout of the element rather than the WAAPI animation\n * which will be unaffected by the resetSkewAndRotate step.\n *\n * Note: This is a DOM write. Worst case scenario is this is sandwiched\n * between other snapshot reads which will cause unnecessary style recalculations.\n * This has to happen here though, as we don't yet know which nodes will need\n * snapshots in startUpdate(), but we only want to cancel optimised animations\n * if a layout animation measurement is actually going to be affected by them.\n */\n if (window.HandoffCancelAllAnimations &&\n isOptimisedAppearTree(this)) {\n window.HandoffCancelAllAnimations();\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = time.now();\n frameData.delta = clamp(0, 1000 / 60, now - frameData.timestamp);\n frameData.timestamp = now;\n frameData.isProcessing = true;\n steps.update.process(frameData);\n steps.preRender.process(frameData);\n steps.render.process(frameData);\n frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n microtask.read(this.scheduleUpdate);\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n }\n updateLayout() {\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement) {\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot: checkIsScrollRoot(this.instance),\n offset: measureScroll(this.instance),\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty ||\n this.shouldResetTransform ||\n this.options.alwaysMeasureLayout;\n const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return createBox();\n const box = visualElement.measureViewportBox();\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n translateAxis(box.x, scroll.offset.x);\n translateAxis(box.y, scroll.offset.y);\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.isRoot) {\n copyBoxInto(boxWithoutScroll, box);\n const { scroll: rootScroll } = this.root;\n /**\n * Undo the application of page scroll that was originally added\n * to the measured bounding box.\n */\n if (rootScroll) {\n translateAxis(boxWithoutScroll.x, -rootScroll.offset.x);\n translateAxis(boxWithoutScroll.y, -rootScroll.offset.y);\n }\n }\n translateAxis(boxWithoutScroll.x, scroll.offset.x);\n translateAxis(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n const sourceBox = createBox();\n const nodeBox = node.measurePageBox();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n var _a;\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty) ||\n this.attemptToResolveRelativeTarget);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = frameData.timestamp;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n if (!this.targetDelta && !this.relativeTarget) {\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n relativeParent.layout &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n projectionFrameData.resolvedTargetDeltas++;\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n hasScale(this.parent.latestValues) ||\n has2DTranslate(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n calcProjection() {\n var _a;\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty)) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n lead.targetWithTransforms = createBox();\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.projectionTransform) {\n this.projectionDelta = createDelta();\n this.projectionTransform = \"none\";\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta) {\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n const prevProjectionTransform = this.projectionTransform;\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n this.projectionTransform = buildProjectionTransform(this.projectionDelta, this.treeScale);\n if (this.projectionTransform !== prevProjectionTransform ||\n this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n projectionFrameData.recalculatedProjection++;\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n this.options.scheduleRender && this.options.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot\n ? snapshot.latestValues\n : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = createDelta();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = createBox();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n boxEquals(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = createBox();\n copyBoxInto(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation && this.currentAnimation.stop();\n if (this.resumingFrom && this.resumingFrom.currentAnimation) {\n this.resumingFrom.currentAnimation.stop();\n }\n if (this.pendingAnimation) {\n cancelFrame(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = frame.update(() => {\n globalProjectionState.hasAnimatedSinceResize = true;\n this.currentAnimation = animateSingleValue(0, animationTarget, {\n ...options,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onComplete: () => {\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || createBox();\n const xLength = calcLength(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = calcLength(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n }\n getPrevLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetSkewAndRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected skew or rotation values, we can early return without a forced render.\n let hasDistortingTransform = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.z ||\n latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ ||\n latestValues.skewX ||\n latestValues.skewY) {\n hasDistortingTransform = true;\n }\n // If there's no distorting values, we don't need to do any more.\n if (!hasDistortingTransform)\n return;\n const resetValues = {};\n if (latestValues.z) {\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n }\n // Check the skew and rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n }\n // Force a render of this element to apply the transform with all skews and rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n if (this.animationValues) {\n this.animationValues[key] = resetValues[key];\n }\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n getProjectionStyles(styleProp) {\n var _a, _b;\n if (!this.instance || this.isSVG)\n return undefined;\n if (!this.isVisible) {\n return hiddenVisibility;\n }\n const styles = {\n visibility: \"\",\n };\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n const emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n const { x, y } = this.projectionDelta;\n styles.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo } = scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = styles.transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a;\n const snapshot = ((_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = createDelta();\n if (isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !isDeltaZero(layoutDelta);\n let hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n projectionFrameData.totalNodes++;\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mixNumber(delta.translate, 0, p);\n output.scale = mixNumber(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mixNumber(from.min, to.min, p);\n output.max = mixNumber(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2)));\n}\n\nexport { cleanDirtyNodes, createProjectionNode, mixAxis, mixAxisDelta, mixBox, propagateDirtyNodes };\n","function record(data) {\n if (window.MotionDebug) {\n window.MotionDebug.record(data);\n }\n}\n\nexport { record };\n","function isSVGElement(element) {\n return element instanceof SVGElement && element.tagName !== \"svg\";\n}\n\nexport { isSVGElement };\n","import { time } from '../frameloop/sync-time.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = time.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelFrame(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n frame.read(checkElapsed, true);\n return () => cancelFrame(checkElapsed);\n}\n\nexport { delay };\n","import { animateMotionValue } from './motion-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nexport { animateSingleValue };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\n\nconst DocumentProjectionNode = createProjectionNode({\n attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }),\n checkIsScrollRoot: () => true,\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = createProjectionNode({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { DragGesture } from '../../gestures/drag/index.mjs';\nimport { PanGesture } from '../../gestures/pan/index.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nconst drag = {\n pan: {\n Feature: PanGesture,\n },\n drag: {\n Feature: DragGesture,\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { drag };\n","import { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\n\nclass DragGesture extends Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = noop;\n this.removeListeners = noop;\n this.controls = new VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || noop;\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n }\n}\n\nexport { DragGesture };\n","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n","const visualElementStore = new WeakMap();\n\nexport { visualElementStore };\n","import { color } from '../../../value/types/color/index.mjs';\nimport { complex } from '../../../value/types/complex/index.mjs';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","import { createBox } from '../projection/geometry/models.mjs';\nimport { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\nimport { motionValue } from '../value/index.mjs';\nimport { isWillChangeMotionValue } from '../value/use-will-change/is.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { transformProps } from './html/utils/transform.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { isVariantLabel } from './utils/is-variant-label.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\nimport { warnOnce } from '../utils/warn-once.mjs';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { variantProps } from './utils/variant-props.mjs';\nimport { visualElementStore } from './store.mjs';\nimport { KeyframeResolver } from './utils/KeyframesResolver.mjs';\nimport { isNumericalString } from '../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../utils/is-zero-value-string.mjs';\nimport { findValueType } from './dom/value-types/find.mjs';\nimport { complex } from '../value/types/complex/index.mjs';\nimport { getAnimatableNone } from './dom/value-types/animatable-none.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\nconst numVariantProps = variantProps.length;\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState, }, options = {}) {\n this.resolveKeyframes = (keyframes, \n // We use an onComplete callback here rather than a Promise as a Promise\n // resolution is a microtask and we want to retain the ability to force\n // the resolution of keyframes synchronously.\n onComplete, name, value) => {\n return new this.KeyframeResolver(keyframes, onComplete, name, value, this);\n };\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.scheduleRender = () => frame.render(this.render, false, true);\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't neccessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n }\n }\n }\n mount(instance) {\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\");\n }\n if (this.parent)\n this.parent.children.add(this);\n this.update(this.props, this.presenceContext);\n }\n unmount() {\n visualElementStore.delete(this.current);\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent && this.parent.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n const valueIsTransform = transformProps.has(key);\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.options, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n getVariantContext(startAtParent = false) {\n if (startAtParent) {\n return this.parent ? this.parent.getVariantContext() : undefined;\n }\n if (!this.isControllingVariants) {\n const context = this.parent\n ? this.parent.getVariantContext() || {}\n : {};\n if (this.props.initial !== undefined) {\n context.initial = this.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = this.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n var _a;\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : (_a = this.getBaseTargetFromProps(this.props, key)) !== null && _a !== void 0 ? _a : this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(target)) {\n value = getAnimatableNone(key, target);\n }\n this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);\n }\n return isMotionValue(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n var _a;\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = resolveVariantFromProps(this.props, initial, (_a = this.presenceContext) === null || _a === void 0 ? void 0 : _a.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n}\n\nexport { VisualElement };\n","import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n","import { isWillChangeMotionValue } from '../../value/use-will-change/is.mjs';\nimport { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n const { willChange } = next;\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n if (isWillChangeMotionValue(willChange)) {\n willChange.add(key);\n }\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"11.2.14\", `Attempting to mix Framer Motion versions ${nextValue.version} with 11.2.14 may not work as expected.`);\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n if (isWillChangeMotionValue(willChange)) {\n willChange.remove(key);\n }\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { VisualElement } from '../VisualElement.mjs';\nimport { DOMKeyframesResolver } from './DOMKeyframesResolver.mjs';\n\nclass DOMVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n return props.style\n ? props.style[key]\n : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n}\n\nexport { DOMVisualElement };\n","import { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariableName } from '../dom/utils/is-css-variable.mjs';\nimport { transformProps } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, options, props) {\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current)\n this.current.textContent = `${latest}`;\n });\n }\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderHTML(instance, renderState, styleProp, projection);\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n","import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { transformProps } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n measureInstanceViewportBox() {\n return createBox();\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n build(renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, this.isSVGTag, props.transformTemplate);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n","import { Fragment } from 'react';\nimport { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options, { enableHardwareAcceleration: false })\n : new HTMLVisualElement(options, {\n allowProjection: Component !== Fragment,\n enableHardwareAcceleration: true,\n });\n};\n\nexport { createDomVisualElement };\n","import { createMotionComponent } from '../../motion/index.mjs';\nimport { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { animations } from '../../motion/features/animations.mjs';\nimport { drag } from '../../motion/features/drag.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\nimport { layout } from '../../motion/features/layout.mjs';\n\nconst preloadedFeatures = {\n ...animations,\n ...gestureAnimations,\n ...drag,\n ...layout,\n};\n/**\n * HTML & SVG components, optimised for use with gestures and animation. These can be used as\n * drop-in replacements for any HTML & SVG component, all CSS & SVG properties are supported.\n *\n * @public\n */\nconst motion = /*@__PURE__*/ createMotionProxy((Component, config) => createDomMotionConfig(Component, config, preloadedFeatures, createDomVisualElement));\n/**\n * Create a DOM `motion` component with the provided string. This is primarily intended\n * as a full alternative to `motion` for consumers who have to support environments that don't\n * support `Proxy`.\n *\n * ```javascript\n * import { createDomMotionComponent } from \"framer-motion\"\n *\n * const motion = {\n * div: createDomMotionComponent('div')\n * }\n * ```\n *\n * @public\n */\nfunction createDomMotionComponent(key) {\n return createMotionComponent(createDomMotionConfig(key, { forwardMotionProps: false }, preloadedFeatures, createDomVisualElement));\n}\n\nexport { createDomMotionComponent, motion };\n","import { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\n\nconst layout = {\n layout: {\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { layout };\n","import { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, { forwardMotionProps = false }, preloadedFeatures, createVisualElement) {\n const baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return {\n ...baseConfig,\n preloadedFeatures,\n useRender: createUseRender(forwardMotionProps),\n createVisualElement,\n Component,\n };\n}\n\nexport { createDomMotionConfig };\n","function fadeInOut(duration: number = 0.2) {\n return {\n from: {\n opacity: 0,\n transition: {\n type: 'easeInOut',\n duration: duration,\n }\n },\n to: {\n opacity: 1,\n transition: {\n type: 'easeInOut',\n duration: duration,\n }\n },\n }\n}\n\nexport default fadeInOut;\n","function zoomOutIn(duration: number = 0.2) {\n return {\n from: {\n scale: 1.1,\n transition: {\n type: 'easeOut',\n duration: duration,\n }\n },\n to: {\n scale: 1,\n transition: {\n type: 'easeOut',\n duration: duration,\n }\n },\n }\n}\n\nexport default zoomOutIn;\n","import { useEffect, RefObject } from 'react'\n\ntype Event = MouseEvent | TouchEvent\n\n\nfunction useOnClickOutside( ref: RefObject, handler: (event: Event) => void ) {\n \n useEffect(\n () => {\n \n const listener = (event: Event) => {\n const el = ref?.current\n if (!el || el.contains((event?.target as Node) || null)) {\n return\n }\n handler(event);\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n \n }, [ref, handler]\n )\n\n}\n\nexport default useOnClickOutside;\n","import { useRef, useEffect } from 'react';\nimport { Portal } from '@reach/portal';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport {\n disableBodyScroll,\n enableBodyScroll,\n clearAllBodyScrollLocks,\n} from 'body-scroll-lock';\nimport cn from 'classnames';\nimport { IoClose } from 'react-icons/io5';\nimport fadeInOut from 'cms/utilities/motion/FadeInOut';\nimport zoomOutIn from 'cms/utilities/motion/zoom-out-in';\nimport useOnClickOutside from 'cms/utilities/UseClickOutside';\n\n\ntype ModalProps = {\n open?: boolean;\n onClose: () => void;\n rootClassName?: string;\n useBlurBackdrop?: boolean;\n containerClassName?: string;\n variant?: 'center' | 'bottom';\n};\ntype DivElementRef = React.MutableRefObject;\ntype Props = React.PropsWithChildren;\n\n\n// variant based classes for modal root, container & close btn\nconst rootClasses = {\n center: 'p-4 md:p-5',\n bottom: 'p-5 pb-0',\n};\n\nconst containerClasses = {\n center: 'h-auto max-h-full top-1/2 -translate-y-1/2 rounded-lg',\n bottom: 'h-full max-h-70vh bottom-0 rounded-tr-2xl rounded-tl-2xl',\n};\n\nconst closeBtnClasses = {\n center: '-top-3 md:-top-4 -right-3 md:-right-4',\n bottom: 'top-1/4 left-1/2 transform -translate-y-1/2 -translate-x-1/2',\n};\n\nfunction Modal ( props: Props ) {\n\n const modalRootRef = useRef() as DivElementRef;\n const modalInnerRef = useRef() as DivElementRef;\n\n useOnClickOutside(modalInnerRef, () => props.onClose());\n\n useEffect(() => {\n if (modalInnerRef.current) {\n if (props.open) {\n disableBodyScroll(modalInnerRef.current);\n } else {\n enableBodyScroll(modalInnerRef.current);\n }\n }\n return () => {\n clearAllBodyScrollLocks();\n };\n }, [props.open]);\n\n return (\n \n \n {\n props.open && \n (\n \n \n \n \n \n \n \n {props.children}\n
    \n
    \n
    \n \n )\n }\n \n \n );\n}\n\nModal.defaultProps = {\n\n variant: 'center'\n\n}\n\nexport default Modal;\n","import React, { useState } from 'react'\nimport { connect, ConnectedProps } from \"react-redux\"\nimport ProductAttributes from 'components/ProductAttributes';\nimport ECommerceAction from 'ecommerce/actions/common/ECommerceAction';\nimport Modal from 'components/Modal';\nimport { Dispatch } from '@reduxjs/toolkit';\nimport RMDRImage from 'components/RMDRImage';\nimport IClientProductList from 'ecommerce/interfaces/IClientProductList';\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EContentType } from 'cms/enums/EContentType';\nimport SanitizeHTMLString from 'cms/utilities/SanitizeHTMLString';\nimport RMDRLink from 'components/RMDRLink';\nimport IClientSiteSettingDetail from 'cms/interfaces/IClientSiteSettingDetail';\nimport ERedirectType from 'cms/enums/ERedirectType';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport { MdKeyboardDoubleArrowDown } from \"react-icons/md\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"ProductPopup.mapStateToProps: \", state);\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details.payload;\n\n const productDetailPopupIsOpen:boolean = state.ECommerceStore.productDetailPopup.isLoading;\n const productDetailPopupPayload:IClientProductList = state.ECommerceStore.productDetailPopup.payload;\n\n return {\n\n siteSettingDetailPayload,\n\n productDetailPopupPayload,\n productDetailPopupIsOpen\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch:Dispatch ) {\n console.log(\"ProductPopup.mapDispatchToProps\");\n\n const ecommerceAction = new ECommerceAction(dispatch);\n\n return {\n\n _closeProductDetailPopup: () => {\n ecommerceAction.closeProductDetailPopup();\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TProductPopup = {\n\n data?: {\n image: {\n original:any\n },\n name:string,\n description:string,\n };\n variations: {\n id: number;\n value: string;\n meta: string;\n }[];\n \n} & T;\n\n\n/* component */\nfunction ProductPopupLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction ProductPopup ( props:TProductPopup ) {\n console.log(\"ProductPopup.rendered: \", props);\n \n const languageVersion = LanguageVersionSelector({\n languageVersions: props.productDetailPopupPayload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const redirectUrl = LanguageVersionSelector({\n languageVersions: props.productDetailPopupPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"redirectUrl\" }\n ],\n type: \"find\"\n });\n\n const variant = props.productDetailPopupPayload?.variants?.[0];\n\n const viewDetailsString = LanguageVersionSelector({\n languageVersions: props.siteSettingDetailPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"viewDetailsString\" }\n ],\n type: \"find\"\n });\n\n const viewCartString = LanguageVersionSelector({\n languageVersions: props.siteSettingDetailPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"viewCartString\" }\n ],\n type: \"find\"\n });\n\n const [attributes, setAttributes] = useState<{ [key: string]: string }>({});\n const [viewCartBtn ] = useState(false);\n\n function navigateToProductPage() {\n \n }\n\n function handleAttribute(attribute: any) {\n setAttributes((prev) => ({\n ...prev,\n ...attribute,\n }));\n }\n\n function navigateToCartPage() {\n \n }\n\n return (\n { props._closeProductDetailPopup(); }} >\n
    \n
    \n
    \n \n
    \n\n
    \n
    \n \n

    \n {languageVersion?.name}\n

    \n \n

    \n { props.productDetailPopupPayload?.catalogCategoryName }\n {/* */}\n

    \n
    \n {\n variant?.discountedPercentage &&\n
    \n \n {variant?.discountedPercentage}%\n
    \n }\n {\n variant?.discountedPercentage ? (\n
    \n {variant?.currencySign||\"$\"}{variant?.discountedPrice}\n
    \n ) : (\n
    \n {\n variant?.price ? `${variant?.currencySign||\"$\"}${variant?.price}` : \"\"\n }\n
    \n )\n }\n\n {\n variant?.discountedPercentage && \n (\n \n {\n variant?.price ? `${variant?.currencySign||\"$\"}${variant?.price}` : \"\"\n }\n \n )\n }\n
    \n\n

    \n

    \n\n {\n props?.variations && Object.keys(props?.variations).map(( variation, index) => {\n return (\n \n );\n })\n }\n\n
    \n {/*
    \n setQuantity((prev) => prev + 1)}\n onDecrement={() =>\n setQuantity((prev) => (prev !== 1 ? prev - 1 : 1))\n }\n disableDecrement={quantity === 1}\n />\n \n {t('text-add-to-cart')}\n \n
    */}\n\n {\n viewCartBtn && \n (\n \n {viewCartString?.value}\n \n )\n }\n\n \n
    \n
    \n
    \n
    \n
    \n );\n}\n\nconst Component = React.memo(ProductPopup, ( prevProps:TProductPopup, nextProps:TProductPopup ) => {\n return !( \n prevProps.productDetailPopupPayload !== nextProps.productDetailPopupPayload\n || prevProps.productDetailPopupIsOpen !== nextProps.productDetailPopupIsOpen\n )\n});\n\nexport default connector(Component);\n","import React, { useEffect } from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\"\nimport Lodash from 'lodash';\nimport { Outlet } from \"react-router-dom\";\n// components\nimport Footer from 'components/Footer';\nimport Header from \"components/Header\";\n//\nimport SiteSettingServiceAction from \"cms/actions/common/SiteSettingServiceAction\";\nimport ClientCatalogCategoriesServiceAction from \"ecommerce/actions/common/ClientCatalogCategoriesServiceAction\";\nimport PutManifestFileDynamic from \"cms/utilities/PutManifestFileDynamic\";\nimport MobileNavigation from 'components/MobileNavigation';\nimport Search from \"components/Search\";\nimport CookieBar from \"components/CookieBar\";\nimport Button from \"components/Button\";\nimport ProductPopup from \"components/ProductPopup\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport IClientSiteSettingList from \"cms/interfaces/IClientSiteSettingList\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport TValidations from \"cms/types/TValidations\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"WebApplicationWrapperLayout.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingListPayload:IClientSiteSettingList[]|null = state.SiteSettingStore.list?.payload;\n const siteSettingListError:TValidations[]|null = state.SiteSettingStore.list?.error;\n const siteSettingListIsLoading:boolean = state.SiteSettingStore.list?.isLoading;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail|null = state.SiteSettingStore.details?.payload;\n const siteSettingDetailError:TValidations[]|null = state.SiteSettingStore.details?.error;\n const siteSettingDetailIsLoading:boolean = state.SiteSettingStore.details?.isLoading;\n\n const error:TValidations[]|null|undefined = Lodash.reject( [siteSettingListError, siteSettingDetailError], Lodash.isEmpty )[0] || [];\n const isLoading:boolean = [siteSettingListIsLoading, siteSettingDetailIsLoading].includes(true);\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingListPayload,\n siteSettingDetailPayload,\n\n error,\n isLoading\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"WebApplicationWrapperLayout.mapDispatchToProps\");\n\n const siteSettingServiceAction = new SiteSettingServiceAction(dispatch);\n const clientCatalogCategoriesServiceAction = new ClientCatalogCategoriesServiceAction(dispatch);\n\n return {\n\n // list\n _listSiteSetting: ( webApplicationLanguageCode:string ) => {\n siteSettingServiceAction.list({ servicePayload: { language: webApplicationLanguageCode } });\n },\n \n _listCatalogCategory: ( webApplicationLanguageCode:string ) => { \n clientCatalogCategoriesServiceAction.list({ servicePayload: { queryOptions: { top: 1000 }, language: webApplicationLanguageCode } });\n },\n\n\n\n // details\n _detailsSiteSetting: ( id:string, webApplicationLanguageCode:string ) => {\n siteSettingServiceAction.details({ servicePayload: { key: id, language: webApplicationLanguageCode } });\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TWebApplicationWrapperLayout = {\n \n} & T;\n\n\n/* component */\nfunction WebApplicationWrapperLayoutLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction WebApplicationWrapperLayout ( props:TWebApplicationWrapperLayout ) {\n console.log(\"WebApplicationWrapperLayout.rendered: \", props);\n\n const acceptedCookies = false;\n\n useEffect(\n () => {\n if ( !Lodash.isEmpty(props.webApplicationLanguageCode)) {\n props._listSiteSetting(props.webApplicationLanguageCode);\n props._listCatalogCategory(props.webApplicationLanguageCode);\n }\n }, [ props.webApplicationLanguageCode ]\n )\n\n useEffect (\n () => {\n if ( !Lodash.isEmpty(props.siteSettingListPayload) && props.siteSettingListPayload && props.siteSettingListPayload.length > 0 ) {\n props._detailsSiteSetting(props.siteSettingListPayload[0].id, props.webApplicationLanguageCode)\n }\n }, [ props.siteSettingListPayload ]\n )\n\n if ( !Lodash.isEmpty(props.siteSettingListPayload) && !Lodash.isEmpty(props.siteSettingDetailPayload) ) {\n\n PutManifestFileDynamic(document, props.siteSettingDetailPayload);\n\n return (\n
    \n
    \n \n \n \n \n\n
    \n \n \n \n {/* Mobil de search açmak için kullanılıyor */}\n \n \n {/* Ürünlerin detaylarını göstermek için kullanılıyor */}\n \n\n {/* { \n // onAcceptCookies()\n }} variant=\"type1-slim\">\n {t['text-accept-cookies']}\n \n }\n /> */}\n
    \n )\n\n }\n \n return null;\n\n};\n\nconst Component = React.memo(WebApplicationWrapperLayout, ( prevProps:TWebApplicationWrapperLayout, nextProps:TWebApplicationWrapperLayout ) => {\n console.log(\"WebApplicationWrapperLayout.memo\", { prevProps, nextProps });\n\n return !(\n prevProps.isLoading !== nextProps.isLoading\n || prevProps.webApplicationLanguageCode !== nextProps.webApplicationLanguageCode\n || prevProps.siteSettingDetailPayload !== nextProps.siteSettingDetailPayload\n )\n});\n\nexport default connector(Component);\n","import _ContentMetricsServiceAction from \"core/actions/services/metrics/ContentMetricsServiceAction\";\n\n\nconst screenCode = \"20B\";\nclass ContentMetricsServiceAction extends _ContentMetricsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ContentMetricsServiceAction;\n","import React, { Suspense, useEffect } from \"react\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport { Dispatch } from \"@reduxjs/toolkit\";\r\n// components\r\nimport SEO from \"components/SEO\";\r\n// import CookieModal from \"cms/components/CookieModal\";\r\n// actions\r\nimport CoreAction from \"core/actions/common/CoreAction\";\r\nimport ContentMetricsServiceAction from \"cms/actions/screens/Content/ContentMetricsServiceAction\";\r\n// styles\r\nimport 'react-tabs/style/react-tabs.css';\r\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\r\nimport { EContentMetricsType } from \"core/enums/EContentMetricsType\";\r\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\r\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\";\r\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\r\nimport { isEmpty } from \"lodash\";\r\n// lazy element\r\nconst SliderLazy = React.lazy(() => import(\"components/Slider\"));\r\nconst MainPageItemsLazy = React.lazy(() => import(\"components/MainPageItems\"));\r\nconst MainPagePopupLazy = React.lazy(() => import(\"components/MainPagePopup\"));\r\n\r\n\r\nfunction mapStateToProps ( state: any ) {\r\n console.log(\"Home.mapStateToProps: \", state);\r\n\r\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\r\n const webApplicationLanguageCode:string = webApplicationLanguage?.code;\r\n\r\n const siteSettingDetailPayload:IClientSiteSettingDetail|null = state.SiteSettingStore.details?.payload;\r\n \r\n return {\r\n \r\n webApplicationLanguage,\r\n webApplicationLanguageCode,\r\n\r\n siteSettingDetailPayload\r\n\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\r\n console.log(\"Home.mapDispatchToProps\");\r\n\r\n const coreAction = new CoreAction(dispatch);\r\n const contentMetricsServiceAction = new ContentMetricsServiceAction(dispatch);\r\n\r\n return {\r\n\r\n _viewEvent: ( contentId:string, webApplicationLanguageCode:string ) => {\r\n contentMetricsServiceAction.post({ \r\n servicePayload: { \r\n body: {\r\n contentId: contentId,\r\n metricType: EContentMetricsType.VIEV\r\n }, \r\n language: webApplicationLanguageCode \r\n } \r\n });\r\n },\r\n\r\n // others\r\n _hideLoader: () => {\r\n coreAction.hideLoader();\r\n },\r\n\r\n _showLoader: () => {\r\n coreAction.showLoader();\r\n },\r\n\r\n }\r\n}\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\n\r\n\r\n/* types */\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype THome = {\r\n\r\n} & T;\r\n\r\n\r\n/* component */\r\nfunction WebApplicationStarterLoader () {\r\n\r\n return (\r\n <>\r\n )\r\n\r\n}\r\n\r\nfunction Home ( props:THome ) {\r\n console.log(\"Home.rendered: \", props);\r\n \r\n useEffect(\r\n () => {\r\n\r\n const contentId:string|null = LanguageVersionSelector({\r\n languageVersions: props.siteSettingDetailPayload?.languageVersions,\r\n filters: [{\r\n name: \"contentMetricsMainPageId\"\r\n }],\r\n type: \"find\"\r\n })?.value;\r\n\r\n if ( !isEmpty(contentId) && contentId ) props._viewEvent( contentId, props.webApplicationLanguageCode );\r\n\r\n }, []\r\n )\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    }>\r\n \r\n \r\n\r\n }>\r\n \r\n \r\n\r\n }>\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\n\r\nconst Component = React.memo(Home, ( prevProps:THome, nextProps:THome ) => {\r\n console.log(\"Home.memo\", { prevProps, nextProps });\r\n return true;\r\n});\r\n\r\nexport default connector(Component);\r\n","import _ClientProductsServiceAction from \"ecommerce/actions/services/ClientProductsServiceAction\";\n\n\nconst screenCode = \"400\";\nclass ClientProductsServiceAction extends _ClientProductsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ClientProductsServiceAction;\n","import _ClientCatalogCategoriesServiceAction from \"ecommerce/actions/services/ClientCatalogCategoriesServiceAction\";\n\n\nconst screenCode = \"400\";\nclass ClientCatalogCategoriesServiceAction extends _ClientCatalogCategoriesServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ClientCatalogCategoriesServiceAction;\n","import _StockStatusServiceAction from \"ecommerce/actions/services/enum/StockStatusServiceAction\";\n\n\nconst screenCode = \"400\";\nclass StockStatusServiceAction extends _StockStatusServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default StockStatusServiceAction;\n","import ActionCore from 'core/actions/ActionCore';\n// enum\nimport EActionStatus from \"core/enums/EActionStatus\";\n\n\nconst screenCode = \"400\";\nclass MarketPlacePageAction extends ActionCore {\n\n constructor( dispatch:any ) {\n super( dispatch, null, screenCode );\n }\n\n async modify ( payload: any ) {\n\n super.modify(\"MP\", payload);\n\n }\n\n clean () {\n \n this.dispatch({ type: `${this.screenCode}MP${EActionStatus.CLEAN}` });\n\n }\n\n}\n\nexport default MarketPlacePageAction;\n","import React from \"react\";\n\n\ntype CheckBoxProps = {\n\n label:string;\n className?: string;\n\n} & React.InputHTMLAttributes;;\n\n\nfunction _CheckBox(props: CheckBoxProps, ref: any) {\n\n return (\n \n );\n\n}\n\nconst RMDRCheckBox = React.forwardRef(_CheckBox);\n\nRMDRCheckBox.defaultProps = {\n\n className: \"form-checkbox w-5 h-5 border border-gray-300 rounded cursor-pointer transition duration-500 ease-in-out focus:ring-offset-0 hover:border-heading focus:outline-none focus:ring-0 focus-visible:outline-none checked:bg-floorsAndExtras-600 checked:hover:bg-floorsAndExtras-700 checked:focus:bg-floorsAndExtras-600\"\n\n}\n\nexport default RMDRCheckBox;\n","import _ClientCatalogCategoriesServiceAction from \"ecommerce/actions/services/ClientCatalogCategoriesServiceAction\";\n\n\nconst screenCode = \"401\";\nclass ClientCatalogCategoriesServiceAction extends _ClientCatalogCategoriesServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ClientCatalogCategoriesServiceAction;\n","import React, { useEffect, useState } from \"react\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport TValidations from \"cms/types/TValidations\";\nimport IClientCatalogCategoryList from \"ecommerce/interfaces/IClientCatalogCategoryList\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport RMDRCheckBox from \"components/RMDRCheckbox\";\nimport { EContentStatus } from \"cms/enums/EContentStatus\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { isEmpty } from \"lodash\";\nimport ClientCatalogCategoriesServiceAction from \"ecommerce/actions/components/filters/CategoryFilter/ClientCatalogCategoriesServiceAction\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport CatalogCategoryComposer from \"ecommerce/utilities/CatalogCategoryComposer\";\nimport TCatalogCategories from \"ecommerce/types/TCatalogCategories\";\nimport cn from 'classnames';\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"CategoryFilter.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail|null = state.SiteSettingStore.details.payload;\n\n const clientCatalogCategoriesListPayload:IClientCatalogCategoryList[] = state.CategoryFilterStore.ClientCatalogCategoriesStore.list.payload;\n const clientCatalogCategoriesListError:TValidations[]|null = state.CategoryFilterStore.ClientCatalogCategoriesStore.list.error;\n const clientCatalogCategoriesListIsLoading:boolean = state.CategoryFilterStore.ClientCatalogCategoriesStore.list.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n \n siteSettingDetailPayload,\n clientCatalogCategoriesListPayload,\n\n errors: clientCatalogCategoriesListError,\n isLoading: clientCatalogCategoriesListIsLoading\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"CategoryFilter.mapDispatchToProps\");\n\n const clientCatalogCategoriesServiceAction = new ClientCatalogCategoriesServiceAction(dispatch);\n\n return {\n\n _getCatalogCategories: ( webApplicationLanguageCode:string ) => {\n\n clientCatalogCategoriesServiceAction.list({\n servicePayload: {\n queryOptions: {\n filter: [`status eq ${EContentStatus.ACTIVE}`],\n top: 1000,\n orderBy: [\"order asc\"]\n },\n language: webApplicationLanguageCode \n }\n })\n\n },\n\n _clean: () => {\n\n clientCatalogCategoriesServiceAction.listClean();\n\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TCategoryFilter = {\n\n} & T;\n\n\n/* component */\nfunction CategoryFilterLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction CategoryFilter ( props:TCategoryFilter ) {\n console.log(\"CategoryFilter.rendered:\", props);\n\n const [ searchParams, setSearchParams ] = useSearchParams();\n const [ selectedItems, setSelectedItems ] = useState([]);\n const [ didMount, setDidMount ] = useState(false);\n\n const category = LanguageVersionSelector({\n languageVersions: props.siteSettingDetailPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"category\" }\n ],\n type: \"find\"\n });\n\n useEffect(\n () => {\n \n props._getCatalogCategories(props.webApplicationLanguageCode);\n\n return function cleanup () {\n props._clean();\n }\n\n }, []\n )\n\n useEffect(\n () => {\n\n if ( !isEmpty(props.clientCatalogCategoriesListPayload) ) {\n const categories = searchParams.get(\"c\")?.split(\",\")?.map((item) => parseInt(item));\n if ( categories?.length !== selectedItems.length ) {\n setSelectedItems(categories||[]);\n }\n setDidMount(true);\n }\n\n }, [ props.clientCatalogCategoriesListPayload, searchParams ]\n )\n\n useEffect(\n () => {\n\n if ( !isEmpty(selectedItems) ) {\n const categoryParams:string = selectedItems.join(\",\")\n searchParams.set(\"c\", categoryParams );\n searchParams.set(\"cp\", \"1\" );\n setSearchParams(searchParams, { replace:true });\n }\n else {\n if ( searchParams.has('c') && didMount ) {\n searchParams.delete('c');\n setSearchParams(searchParams, { replace:true });\n }\n }\n\n }, [ selectedItems ]\n )\n\n function onChange( event:React.ChangeEvent, value:IClientCatalogCategoryList ) {\n\n if ( event.target.checked ) {\n setSelectedItems((prevState) => Array.from(new Set([...prevState, value.hierarchyId])));\n } \n else {\n setSelectedItems((prevState) => prevState.filter((item) => item !== value.hierarchyId));\n }\n \n }\n\n function createFilterItems ( values:IClientCatalogCategoryList[]|null, parentItems:IClientCatalogCategoryList[]|undefined|null = null, depth:number=0) {\n\n let _value:any[] = [];\n \n if ( values && parentItems && !isEmpty(values) && !isEmpty(parentItems) ) {\n \n for ( let parentItem of parentItems ) {\n let _parentItem:TCatalogCategories = {...parentItem};\n \n let childItems = values.filter((item:any) => item.parentId === parentItem.id);\n if ( childItems.length > 0 ) {\n let response = createFilterItems( values, childItems, depth+1 );\n if ( response.length > 0 ) {\n const languageVersion = LanguageVersionSelector({\n languageVersions: _parentItem.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n \n _value.push([ \n { onChange(event, _parentItem) }}\n className=\"form-checkbox w-5 h-5 border border-gray-300 rounded cursor-pointer transition duration-500 ease-in-out focus:ring-offset-0 hover:border-heading focus:outline-none focus:ring-0 focus-visible:outline-none checked:bg-floorsAndExtras-600 checked:hover:bg-floorsAndExtras-700 checked:focus:bg-floorsAndExtras-600\"\n style={{\"marginLeft\": `${5*depth*4}px`}}\n />,\n ...response\n ]);\n }\n }\n else {\n const languageVersion = LanguageVersionSelector({\n languageVersions: _parentItem.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n _value.push(\n { onChange(event, _parentItem) }}\n className=\"form-checkbox w-5 h-5 border border-gray-300 rounded cursor-pointer transition duration-500 ease-in-out focus:ring-offset-0 hover:border-heading focus:outline-none focus:ring-0 focus-visible:outline-none checked:bg-floorsAndExtras-600 checked:hover:bg-floorsAndExtras-700 checked:focus:bg-floorsAndExtras-600\"\n style={{\"marginLeft\": `${5*depth*4}px`}}\n />\n );\n }\n }\n \n } else {\n \n const _parentItems = values?.filter((x) => x.level === \"0.1\");\n return createFilterItems( values, _parentItems )\n \n }\n \n return _value;\n \n }\n\n if ( props.isLoading ) {\n \n return \n\n }\n\n return (\n
    \n

    \n {category?.value}\n

    \n
    \n {\n !isEmpty(props.clientCatalogCategoriesListPayload) ? createFilterItems(props.clientCatalogCategoriesListPayload) : null\n }\n {/* {\n catalogCategories?.map((item, index) => {\n const languageVersion = LanguageVersionSelector({\n languageVersions: item.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n return (\n { onChange(event, item) }}\n />\n )}\n )\n } */}\n
    \n
    \n );\n}\n\nexport default connector(CategoryFilter);\n","import React, { useEffect } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { isEmpty, isNaN } from \"lodash\";\nimport { FaMagnifyingGlass } from \"react-icons/fa6\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EView } from \"cms/enums/EView\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\n\n\ntype TPriceFilter = {\n\n siteSettingDetailPayload:IClientSiteSettingDetail;\n\n}\n\nfunction PriceFilter ( props:TPriceFilter ) {\n console.log(\"BrandFilter: \");\n\n\tconst [ searchParams, setSearchParams ] = useSearchParams();\n\n const minRef = React.createRef();\n const maxRef = React.createRef();\n\n const min = LanguageVersionSelector({\n languageVersions: props.siteSettingDetailPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"min\" }\n ],\n type: \"find\"\n });\n\n const max = LanguageVersionSelector({\n languageVersions: props.siteSettingDetailPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"max\" }\n ],\n type: \"find\"\n });\n\n const price = LanguageVersionSelector({\n languageVersions: props.siteSettingDetailPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"price\" }\n ],\n type: \"find\"\n });\n\n useEffect (\n () => {\n \n let pricePayload:any = searchParams.get(\"p\");\n if ( !isEmpty(pricePayload) && pricePayload ) {\n pricePayload = pricePayload?.split(\"-\");\n }\n\n if ( minRef?.current && !isNaN(parseInt(pricePayload?.[0])) ) minRef.current.value = pricePayload[0];\n if ( maxRef?.current && !isNaN(parseInt(pricePayload?.[1])) ) maxRef.current.value = pricePayload[1];\n\n }, []\n )\n\n function onSubmit(event:React.SyntheticEvent) { \n event.preventDefault();\n\n const target = event.target as typeof event.target & {\n min: { value: string },\n max: { value: string },\n };\n\n let min = target.min.value\n let max = target.max.value\n\n if ( !isEmpty(min) || !isEmpty(max) ) {\n searchParams.set(\"p\", `${min||\"min\"}-${max||\"max\"}`);\n searchParams.set(\"cp\", \"1\" );\n setSearchParams(searchParams, { replace:true });\n }\n }\n\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\t{price?.value}\n\t\t\t

    \n\t\t\t
    \n
    \n \n - \n \n \n
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n\nexport default PriceFilter;\n\n","// action \nimport OdataReadOnlyActionBase from \"core/actions/OdataReadOnlyActionBase\";\n// service\nimport ClientTagsService from \"ecommerce/services/ClientTagsService\";\n\n\nclass ClientTagsServiceAction extends OdataReadOnlyActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, ClientTagsService, screenCode);\n }\n\n}\n\nexport default ClientTagsServiceAction;\n","import _ClientTagsServiceAction from \"ecommerce/actions/services/ClientTagsServiceAction\";\n\n\nconst screenCode = \"403\";\nclass ClientTagsServiceAction extends _ClientTagsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ClientTagsServiceAction;\n","import React, { useEffect, useState } from \"react\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport TValidations from \"cms/types/TValidations\";\nimport IClientTagList from \"ecommerce/interfaces/IClientTagList\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport RMDRCheckBox from \"components/RMDRCheckbox\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { isEmpty } from \"lodash\";\nimport ClientTagsServiceAction from \"ecommerce/actions/components/filters/TagFilter/ClientTagsServiceAction\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EView } from \"cms/enums/EView\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"TagFilter.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail|null = state.SiteSettingStore.details.payload;\n\n const clientTagsListPayload:IClientTagList[] = state.TagFilterStore.ClientTagsStore.list.payload;\n const clientTagsListError:TValidations[]|null = state.TagFilterStore.ClientTagsStore.list.error;\n const clientTagsListIsLoading:boolean = state.TagFilterStore.ClientTagsStore.list.isLoading;\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n \n siteSettingDetailPayload,\n clientTagsListPayload,\n\n errors: clientTagsListError,\n isLoading: clientTagsListIsLoading\n \n }\n}\n\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\n console.log(\"TagFilter.mapDispatchToProps\");\n\n const clientTagsServiceAction = new ClientTagsServiceAction(dispatch);\n\n return {\n\n _getTags: ( webApplicationLanguageCode:string ) => {\n\n clientTagsServiceAction.list({\n servicePayload: {\n queryOptions: {\n filter: [`isActive eq true`],\n orderBy:[\"name asc\"],\n top: 1000\n },\n language: webApplicationLanguageCode \n }\n })\n\n },\n\n _clean: () => {\n\n clientTagsServiceAction.listClean();\n\n }\n\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\ntype TTagFilter = {\n\n} & T;\n\n\n/* component */\nfunction TagFilterLoader () {\n\n return (\n <>\n )\n\n}\n\nfunction TagFilter ( props:TTagFilter ) {\n console.log(\"TagFilter: \", props);\n\n const [ searchParams, setSearchParams ] = useSearchParams();\n const [ selectedItems, setSelectedItems ] = useState([]);\n const [ didMount, setDidMount ] = useState(false);\n\n const tag = LanguageVersionSelector({\n languageVersions: props.siteSettingDetailPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"tag\" }\n ],\n type: \"find\"\n });\n\n useEffect(\n () => {\n \n props._getTags(props.webApplicationLanguageCode);\n\n return function cleanup () {\n props._clean();\n }\n\n }, []\n )\n\n useEffect(\n () => {\n\n if ( !isEmpty(props.clientTagsListPayload) ) {\n const tags = searchParams.get(\"t\")?.split(\",\")?.map((item) => parseInt(item));\n if ( tags?.length !== selectedItems.length ) {\n setSelectedItems(tags||[]);\n }\n setDidMount(true);\n }\n\n }, [ props.clientTagsListPayload, searchParams ]\n )\n\n useEffect(\n () => {\n\n if ( !isEmpty(selectedItems) ) {\n const categoryParams:string = selectedItems.join(\",\")\n searchParams.set(\"t\", categoryParams );\n searchParams.set(\"cp\", \"1\" );\n setSearchParams(searchParams, { replace:true });\n }\n else {\n if ( searchParams.has('t') && didMount ) {\n searchParams.delete('t');\n setSearchParams(searchParams, { replace:true });\n }\n }\n\n }, [ selectedItems ]\n )\n\n function onChange( event:React.ChangeEvent, value:IClientTagList ) {\n\n if ( event.target.checked ) {\n setSelectedItems((prevState) => Array.from(new Set([...prevState, value.id])));\n } \n else {\n setSelectedItems((prevState) => prevState.filter((item) => item !== value.id));\n }\n \n }\n\n if ( props.isLoading ) {\n \n return \n\n }\n\n return (\n
    \n

    \n {tag?.value}\n

    \n
    \n {\n props.clientTagsListPayload?.map((item, index) => {\n\n return (\n { onChange(event, item) }}\n />\n )\n })\n }\n
    \n
    \n );\n}\n\nexport default connector(TagFilter);\n","import CategoryFilter from \"./CategoryFilter\";\nimport BrandFilter from \"./BrandFilter\";\nimport PriceFilter from \"./PriceFilter\";\nimport TagFilter from \"./TagFilter\";\nimport { useSearchParams } from \"react-router-dom\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\n\n\ntype TShopFilters = {\n\n siteSettingPayload:IClientSiteSettingDetail;\n\n}\n\nfunction ShopFilters ( props:TShopFilters ) {\n\t\n const [ searchParams, setSearchParams ] = useSearchParams();\n\n const clearAll = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"clearAll\" }\n ],\n type: \"find\"\n });\n\n const filters = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"filters\" }\n ],\n type: \"find\"\n });\n\n return (\n\t\t
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t{filters?.value}\n\t\t\t\t\t

    \n\t\t\t\t\t {\n setSearchParams({ o: searchParams.get(\"o\")||\"\" }, { replace:true });\n }}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ clearAll?.value }\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{/*
    \n\t\t\t\t\t{!isEmpty(query) &&\n\t\t\t\t\t\tObject.values(query)\n\t\t\t\t\t\t\t.join(\",\")\n\t\t\t\t\t\t\t.split(\",\")\n\t\t\t\t\t\t\t.map((v, idx) => (\n\t\t\t\t\t\t\t\t query[k]?.includes(v))!\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\titemValue={v}\n\t\t\t\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t
    */}\n\t\t\t
    \n\n\t\t\t\n\t\t\t{/* */}\n \n\t\t\t\n\t\t
    \n\t)\n\n}\n\nexport default ShopFilters;\n","// import ProductCard from \"@components/product/product-card\";\n// import Button from \"@components/ui/button\";\n// import type { FC } from \"react\";\n// import { useProductsQuery } from \"@framework/product/get-all-products\";\n// import { useRouter } from \"next/router\";\n// import ProductFeedLoader from \"@components/ui/loaders/product-feed-loader\";\n// import { useTranslation } from \"next-i18next\";\n// import { Product } from \"@framework/types\";\nimport IClientProductList from \"ecommerce/interfaces/IClientProductList\";\nimport ProductCard from \"./ProductCard\";\nimport IEnum from \"core/interfaces/IEnum\";\nimport NoData from \"components/NoData\";\nimport { HiOutlineNewspaper } from \"react-icons/hi2\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\nimport { isEmpty } from \"lodash\";\n\n\ntype TProductGrid = {\n\n siteSettingPayload:IClientSiteSettingDetail;\n payload:IClientProductList[];\n stockStatusDataSource?:IEnum[];\n isLoading:boolean;\n className?:string;\n // onClick: ( event: React.MouseEvent, value:IClientProductList ) => void;\n}\n\n\n/* component */\nfunction ProductGridLoader ( props:TProductGrid ) {\n\n return (\n <>\n {\n Array.from({ length:8 }).map(() => (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n ))\n }\n \n )\n\n}\n\nfunction ProductGrid ( props:TProductGrid ) {\n\n if ( !props.isLoading && isEmpty(props.payload) ) {\n \n return (\n }\n className=\"flex flex-col items-center justify-center py-60\"\n textClassName=\"text-center text-2xl\"\n siteSettingPayload={props.siteSettingPayload}\n />\n )\n\n }\n\n return (\n <>\n \n {\n props.isLoading ?\n (\n \n ) : \n (\n props.payload?.map((item, index) => props.onClick(event, item)}\n />\n )\n )}\n
    \n \n \n \n \n );\n}\n\nexport default ProductGrid;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\ntype TPaginationItem = {\n\n value:number;\n currentPage:number;\n disabled:boolean;\n onClick:(event:React.MouseEvent, value:number) => void;\n\n className?:string \n activeClassName?:string;\n\n}\n\nfunction PaginationItem ( props:TPaginationItem ) {\n\n if (props.value === props.currentPage) {\n return (\n
    {props.value}
    \n );\n }\n\n return (\n
    { if(!props.disabled) props.onClick(event, props.value); }} className={props.className} key={props.value}>{props.value}
    \n );\n\n};\n\n\nexport default PaginationItem;\n","function calculatePageNumbers ( currentPage:number, pageSize:number ) {\n \n const first_page_numbers = [];\n const middle_page_numbers = [];\n const last_page_numbers = [];\n\n if(currentPage-1 < 2) {\n // 1,2,3,4,5,6,7,8,9,10,...,100\n if (pageSize < 4) {\n for (let i=1;i<=pageSize;i++) middle_page_numbers.push(i);\n }\n else {\n for (let i=1;i<=3;i++) middle_page_numbers.push(i);\n if ( (middle_page_numbers[middle_page_numbers.length-1] - pageSize) > 1 ) last_page_numbers.push(pageSize);\n else middle_page_numbers.push(pageSize);\n }\n }\n else if(pageSize-currentPage-1 < 6) {\n // 1,...,91,92,93,94,95,96,97,98,99,100\n for (let i=pageSize-9;i<=pageSize;i++) if (i>0) middle_page_numbers.push(i);\n if ( !middle_page_numbers.includes(1) ) first_page_numbers.push(1);\n }\n else {\n // 1...,11,12,13,14,15,16,17,18,19,...,100\n first_page_numbers.push(1);\n for (let i=currentPage-1;i<=currentPage+1;i++) if (i>0) middle_page_numbers.push(i);\n last_page_numbers.push(pageSize);\n }\n\n return [\n first_page_numbers,\n middle_page_numbers,\n last_page_numbers\n ]\n\n}\n\nexport default calculatePageNumbers;\n","import React, { useEffect, useState } from \"react\";\n// componenet\nimport PaginationItem from \"./PaginationItem\";\n// utilities\nimport calculatePageNumbers from \"cms/utilities/CalculatePageNumber\";\nimport { useSearchParams } from \"react-router-dom\";\n\n\ntype TPagination = {\n\n currentPage?: number;\n pageSize: number;\n className?: string;\n\n onClick?: (event:React.MouseEvent, value:number) => void;\n\n disabled: boolean;\n\n}\n\n\nfunction Pagination ( props:TPagination ) {\n\n const [ searchParams, setSearchParams ] = useSearchParams();\n const [ currentPage, setCurrentPage ] = useState(0);\n\n useEffect(\n () => {\n\n if ( !props.currentPage ) {\n let _currentPage = parseInt(searchParams.get(\"cp\")?.trim()||\"1\");\n if ( isNaN(_currentPage) ) _currentPage = 1;\n if ( _currentPage !== currentPage ) setCurrentPage(_currentPage);\n }\n\n }, [ searchParams ]\n )\n\n useEffect(\n () => {\n\n if ( currentPage > 0 ) {\n searchParams.set(\"cp\", currentPage.toString() );\n setSearchParams(searchParams, { replace:true });\n }\n\n }, [ currentPage ]\n )\n \n \n function onClick(event:React.MouseEvent, value:number) {\n\n if ( props.onClick ) props.onClick(event, value);\n else setCurrentPage(value);\n\n }\n\n if ( currentPage > 0 || (props.currentPage && props.currentPage > 0) ) {\n\n const [first_page_numbers, middle_page_numbers, last_page_numbers] = calculatePageNumbers( currentPage, props.pageSize );\n return (\n <>\n
    \n { \n first_page_numbers?.length > 0 && first_page_numbers.map(\n (item, index) => \n )\n }\n { \n first_page_numbers?.length > 0 && \n ...\n }\n \n { \n middle_page_numbers?.length > 0 && middle_page_numbers.map(\n (item, index) => \n )\n }\n\n { \n last_page_numbers?.length > 0 && \n ... \n }\n\n { \n last_page_numbers?.length > 0 && last_page_numbers.map(\n (item, index) => \n )\n }\n
    \n \n {/*
    \n { \n first_page_numbers?.length > 0 && first_page_numbers.map(\n (item, index) => \n )\n }\n { \n first_page_numbers?.length > 0 && \n ...\n }\n \n { \n middle_page_numbers?.length > 0 && middle_page_numbers.map(\n (item, index) => \n )\n }\n\n { \n last_page_numbers?.length > 0 && \n ... \n }\n\n { \n last_page_numbers?.length > 0 && last_page_numbers.map(\n (item, index) => \n )\n }\n
    */}\n \n );\n\n }\n\n return null;\n\n}\n\nconst Component = React.memo(Pagination, ( prevProps:TPagination, nextProps:TPagination ) => {\n console.log(\"Pagination.memo\", { prevProps, nextProps });\n return !(\n prevProps.currentPage !== nextProps.currentPage\n || prevProps.pageSize !== nextProps.pageSize\n || prevProps.disabled !== nextProps.disabled\n )\n});\n\nexport default Component;\n","const FilterIcon = ({\n color = \"currentColor\",\n width = \"18px\",\n height = \"14px\",\n}) => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default FilterIcon;\n","import ShopFilters from './Filters/ShopFilters';\nimport Scrollbar from 'components/Scrollbar';\nimport { IoArrowBack } from 'react-icons/io5';\n// interfaces\nimport IClientSiteSettingDetail from 'cms/interfaces/IClientSiteSettingDetail';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\n// utilities\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\n// enums\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EView } from 'cms/enums/EView';\n\n\ntype TFilterSidebar = {\n\n siteSettingPayload:IClientSiteSettingDetail;\n\n totalItemCount: number;\n onClose: () => void;\n\n}\n\nfunction FilterSidebar(props: TFilterSidebar) {\n\n const filters = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"filters\" }\n ],\n type: \"find\"\n });\n\n return (\n
    \n
    \n { props.onClose() }}\n aria-label=\"close\"\n >\n \n \n

    \n {filters?.value}\n

    \n
    \n\n \n
    \n \n
    \n
    \n\n
    \n {props.totalItemCount} products\n
    \n
    \n );\n};\n\nexport default FilterSidebar;\n","\nimport FilterIcon from 'components/Icons/filter-icon';\nimport FilterSidebar from 'components/FilterSidebar';\nimport ListBox from 'components/ListBox';\n\nimport { Drawer } from 'components/Drawer/Drawer';\nimport motionProps from 'components/Drawer/Motion';\nimport { useEffect, useState } from 'react';\nimport { isEmpty } from 'lodash';\nimport { useSearchParams } from 'react-router-dom';\nimport IClientSiteSettingDetail from 'cms/interfaces/IClientSiteSettingDetail';\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport ILanguageVersionList from 'cms/interfaces/ILanguageVersionList';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EView } from 'cms/enums/EView';\n\n\ntype TOrderBy = {\n\n siteSettingPayload:IClientSiteSettingDetail;\n totalItemCount:number;\n isLoading:boolean;\n\n}\n\nfunction OrderBy ( props:TOrderBy ) {\n\n const [ searchParams, setSearchParams ] = useSearchParams();\n const [ isOpen, setIsOpen ] = useState(false);\n\n const priceLowHigh = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"priceLowHigh\" }\n ],\n type: \"find\"\n });\n\n const priceHighLow = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"priceHighLow\" }\n ],\n type: \"find\"\n });\n\n const orderList = [\n { name: priceLowHigh?.value, value: 'price asc' },\n { name: priceHighLow?.value, value: 'price desc' },\n ];\n const [ selectedItem, setSelectedItem ] = useState<{name:string|null|undefined, value:string}|null>(orderList[0]);\n\n const filters = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"filters\" }\n ],\n type: \"find\"\n });\n\n const products = LanguageVersionSelector({\n languageVersions: props.siteSettingPayload?.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"products\" }\n ],\n type: \"find\"\n });\n\n useEffect(\n () => {\n\n if ( !isEmpty(selectedItem) ) {\n let _defaultOrder = orderList[0];\n let _orderFromUrl = orderList.find((item) => item.value === searchParams.get(\"o\"));\n \n let _order = _orderFromUrl || _defaultOrder;\n searchParams.set(\"o\", _order.value );\n \n if ( !searchParams.has('cp') ) {\n searchParams.set(\"cp\", \"1\" );\n }\n\n setSearchParams(searchParams, { replace: true });\n }\n else {\n if ( searchParams.has('o') ) {\n searchParams.delete('o');\n setSearchParams(searchParams, { replace: true });\n }\n }\n\n }, [ selectedItem ]\n )\n\n function sidebarOnClose () {\n\n setIsOpen(false);\n \n }\n\n \n function onChange ( value:{name:string, value:string} ) {\n\n setSelectedItem(value);\n\n }\n\n return (\n
    \n

    \n { setIsOpen((prevProps) => !prevProps) }}\n >\n \n {filters?.value}\n \n
    \n \n \n
    \n\n { setIsOpen(false) }}\n // contentWrapperStyle={{ left: 0 }}\n {...motionProps}\n >\n \n \n

    \n );\n}\n\nOrderBy.defaultProps = {\n\n isLoading: false,\n\n}\n\nexport default OrderBy;\n","import React, { useEffect, useState } from \"react\";\r\nimport Lodash, { isEmpty } from \"lodash\";\r\nimport { useLocation, useSearchParams } from \"react-router-dom\"\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\n// components\r\nimport SEO from \"components/SEO\";\r\n// actions\r\nimport CoreAction from \"core/actions/common/CoreAction\";\r\nimport ClientProductsServiceAction from \"ecommerce/actions/screens/MarketPlace/ClientProductsServiceAction\";\r\nimport ClientCatalogCategoriesServiceAction from \"ecommerce/actions/screens/MarketPlace/ClientCatalogCategoriesServiceAction\";\r\nimport StockStatusServiceAction from \"ecommerce/actions/screens/MarketPlace/StockStatusServiceAction\";\r\nimport MarketPlacePageAction from \"ecommerce/actions/screens/MarketPlace/MarketPlacePageAction\";\r\nimport ECommerceAction from 'ecommerce/actions/common/ECommerceAction';\r\n// enums\r\nimport { EContentStatus } from \"cms/enums/EContentStatus\";\r\n// interfaces\r\nimport IOdataQueryOptions from \"core/interfaces/IOdataQueryOptions\";\r\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\r\nimport IClientProductList from \"ecommerce/interfaces/IClientProductList\";\r\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\r\n// types\r\nimport TValidations from \"cms/types/TValidations\";\r\nimport { Dispatch } from \"@reduxjs/toolkit\";\r\nimport ContainerV2 from \"components/ContainerV2\";\r\nimport StickyBox from 'react-sticky-box';\r\nimport ShopFilters from \"components/Filters/ShopFilters\";\r\nimport ProductGrid from \"components/ProductGrid\";\r\nimport Pagination from \"components/Pagination\";\r\nimport IEnum from \"core/interfaces/IEnum\";\r\nimport OrderBy from \"components/Filters/OrderBy\";\r\nimport Divider from \"components/Divider\";\r\n\r\n\r\nfunction mapStateToProps ( state: any ) {\r\n console.log(\"MarketPlace.mapStateToProps: \", state);\r\n\r\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language.payload;\r\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\r\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode.payload;\r\n\r\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details.payload;\r\n const siteSettingDetailError:TValidations[]|null = state.SiteSettingStore.details.error;\r\n const siteSettingDetailIsLoading:boolean = state.SiteSettingStore.details.isLoading;\r\n\r\n const clientProductsListPayload:IClientProductList[] = state.MarketPlaceStore.ClientProductsStore.list.payload;\r\n const clientProductsListCount:number = state.MarketPlaceStore.ClientProductsStore.list.count;\r\n const clientProductsListError:TValidations[]|null = state.MarketPlaceStore.ClientProductsStore.list.error;\r\n const clientProductsListIsLoading:boolean = state.MarketPlaceStore.ClientProductsStore.list.isLoading;\r\n\r\n const marketPlacePagePayload = state.MarketPlaceStore.MarketPlacePageStore.payload;\r\n const stockStatusPayload:IEnum[] = state.MarketPlaceStore.StockStatusStore.list.payload;\r\n\r\n const errors:TValidations[]|null|undefined = Lodash.reject( [clientProductsListError, siteSettingDetailError], Lodash.isEmpty )[0] || [];\r\n const isLoading:boolean = [clientProductsListIsLoading, siteSettingDetailIsLoading].includes(true);\r\n\r\n return {\r\n\r\n webApplicationLanguage,\r\n webApplicationLanguageCode,\r\n webApplicationLanguageISOCode,\r\n \r\n siteSettingDetailPayload,\r\n\r\n clientProductsListPayload,\r\n clientProductsListCount,\r\n clientProductsListIsLoading,\r\n\r\n marketPlacePagePayload,\r\n stockStatusPayload,\r\n\r\n errors,\r\n isLoading\r\n \r\n }\r\n}\r\n\r\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\r\n console.log(\"MarketPlace.mapDispatchToProps\");\r\n\r\n const coreAction = new CoreAction(dispatch);\r\n const clientProductsServiceAction = new ClientProductsServiceAction(dispatch);\r\n const marketPlacePageAction = new MarketPlacePageAction(dispatch);\r\n const clientCatalogCategoriesServiceAction = new ClientCatalogCategoriesServiceAction(dispatch);\r\n const stockStatusServiceAction = new StockStatusServiceAction(dispatch);\r\n const ecommerceAction = new ECommerceAction(dispatch);\r\n\r\n return {\r\n\r\n _modifyMarketPlaceStore: ( payload:any ) => {\r\n marketPlacePageAction.modify(payload);\r\n },\r\n _setSearchString: ( value:string ) => {\r\n console.log(\"This is it._setSearchString: \", value);\r\n marketPlacePageAction.modify([\r\n {key:\"searchString\", value: value},\r\n {key:\"hasSearch\", value: true},\r\n ]);\r\n },\r\n _setHasSearch: ( value:boolean = true, isNewSearch:boolean = false ) => {\r\n console.log(\"This is it._setSearchString: \", value, isNewSearch);\r\n let _payload:any = [\r\n {key:\"hasSearch\", value},\r\n ]\r\n if (isNewSearch) {\r\n _payload = [\r\n {key:\"orderBy\", value: \"catalogCategoryName\"},\r\n {key:\"currentPage\", value: 1},\r\n {key:\"isFirstSearch\", value: true},\r\n {key:\"scrollTo\", value: true},\r\n ..._payload\r\n ]\r\n }\r\n \r\n marketPlacePageAction.modify(_payload);\r\n },\r\n _setFirstSearch: ( value:boolean ) => {\r\n console.log(\"This is it._setSearchString: \", value);\r\n marketPlacePageAction.modify([\r\n {key:\"isFirstSearch\", value}\r\n ]);\r\n },\r\n _setScrollTo: ( value:boolean ) => {\r\n console.log(\"This is it._setSearchString: \", value);\r\n marketPlacePageAction.modify([\r\n {key:\"scrollTo\", value},\r\n ]);\r\n },\r\n _setLastPage: ( lastPage:number ) => {\r\n console.log(\"This is it._setSearchString: \", lastPage);\r\n marketPlacePageAction.modify([\r\n {key:\"lastPage\", value: lastPage},\r\n ]);\r\n },\r\n _setCurrentPage: ( currentPage:number ) => {\r\n console.log(\"This is it._setSearchString: \", currentPage);\r\n marketPlacePageAction.modify([\r\n {key:\"currentPage\", value: currentPage},\r\n // {key:\"hasSearch\", value: true},\r\n // {key:\"scrollTo\", value: true},\r\n ]);\r\n },\r\n _setOrderBy: ( value:string ) => {\r\n console.log(\"This is it._setSearchString: \", value);\r\n marketPlacePageAction.modify([\r\n {key:\"orderBy\", value},\r\n {key:\"currentPage\", value: 1},\r\n {key:\"hasSearch\", value: true},\r\n {key:\"scrollTo\", value: true},\r\n ]);\r\n },\r\n\r\n _search: ( payload:any, webApplicationLanguageCode:string ) => {\r\n console.log(\"This is it._setSearchString: \", payload, webApplicationLanguageCode);\r\n\r\n let queryOptions:IOdataQueryOptions = {\r\n filter: [`status eq ${EContentStatus.ACTIVE}`],\r\n count: true,\r\n top: payload.itemsPerPage,\r\n skip: (payload.currentPage-1) * payload.itemsPerPage\r\n };\r\n \r\n if(!isEmpty(payload.filters) && payload.filters) {\r\n queryOptions.filter?.push(\"and\");\r\n queryOptions.filter = [...queryOptions?.filter||[], ...payload.filters];\r\n }\r\n\r\n if ( payload.orderBy && !isEmpty(payload.orderBy) ) {\r\n queryOptions[\"orderBy\"] = [payload.orderBy]\r\n }\r\n\r\n console.log(\"queryOptions:\", payload.filters, queryOptions);\r\n\r\n clientProductsServiceAction.search({ servicePayload: { queryOptions, language: webApplicationLanguageCode } });\r\n \r\n },\r\n\r\n _getCatalogCategories: ( webApplicationLanguageCode:string ) => {\r\n\r\n clientCatalogCategoriesServiceAction.list({\r\n servicePayload: {\r\n queryOptions: {\r\n filter: [`status eq ${EContentStatus.ACTIVE}`, \"and\", \"level eq '0.1'\"],\r\n count: true,\r\n top: 1000\r\n },\r\n language: webApplicationLanguageCode \r\n }\r\n })\r\n\r\n },\r\n\r\n _getStockStatus: ( webApplicationLanguageCode:string ) => {\r\n\r\n stockStatusServiceAction.list({\r\n servicePayload: {\r\n queryOptions: {\r\n top: 1000\r\n },\r\n language: webApplicationLanguageCode \r\n }\r\n })\r\n\r\n },\r\n\r\n _openProductDetailPopup: ( value:IClientProductList ) => {\r\n\r\n ecommerceAction.openProductDetailPopup(value);\r\n \r\n },\r\n\r\n _detailProduct: ( productId:string, webApplicationLanguageCode:string ) => {\r\n\r\n clientProductsServiceAction.details({ servicePayload: { key: productId, language: webApplicationLanguageCode } });\r\n\r\n },\r\n _cleanProductDetail: () => {\r\n\r\n clientProductsServiceAction.detailsClean();\r\n\r\n },\r\n\r\n _cleanSearch: () => {\r\n\r\n marketPlacePageAction.clean();\r\n clientProductsServiceAction.listClean();\r\n },\r\n \r\n // others\r\n _hideLoader: () => { \r\n coreAction.hideLoader();\r\n },\r\n _showLoader: () => { \r\n coreAction.showLoader();\r\n }\r\n\r\n }\r\n}\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\n\r\n\r\n/* types */\r\ntype PropsFromRedux = ConnectedProps\r\n\r\ntype TMarketPlace = {\r\n\r\n} & T;\r\n\r\n\r\n/* component */\r\nfunction MarketPlaceLoader () {\r\n\r\n return (\r\n <>\r\n )\r\n\r\n}\r\n\r\nfunction MarketPlace ( props:TMarketPlace ) {\r\n console.log(\"MarketPlace.rendered: \", props, window);\r\n\r\n const [ searchParams ] = useSearchParams();\r\n const location = useLocation();\r\n\r\n const [ init ] = useState([\r\n {key:\"orderBy\", value: \"price asc\"},\r\n {key:\"itemsPerPage\", value: 20},\r\n {key:\"currentPage\", value: 1},\r\n {key:\"scrollTo\", value: true},\r\n {key:\"hasSearch\", value: true},\r\n ]);\r\n\r\n const [ seoDisabled, setSeoDisabled ] = useState(null);\r\n\r\n useEffect(\r\n () => {\r\n if ( Lodash.isEmpty(props.marketPlacePagePayload) ) {\r\n props._getCatalogCategories(props.webApplicationLanguageCode);\r\n props._getStockStatus(props.webApplicationLanguageCode);\r\n }\r\n\r\n if ( seoDisabled === null ) {\r\n const _seoDisabled = location.state?.seoDisabled === null || location.state?.seoDisabled === undefined ? false : true;\r\n setSeoDisabled(_seoDisabled);\r\n }\r\n\r\n return function cleanup () {\r\n props._showLoader();\r\n props._cleanSearch();\r\n }\r\n }, []\r\n )\r\n\r\n useEffect(\r\n () => {\r\n\r\n let filters: string[] = [];\r\n\r\n const _searchString = searchParams.get(\"q\")?.trim();\r\n const _categories = searchParams.get(\"c\")?.trim();\r\n const _tags = searchParams.get(\"t\")?.trim();\r\n const _brands = searchParams.get(\"b\")?.trim();\r\n const _price = searchParams.get(\"p\")?.trim();\r\n const _orderBy = searchParams.get(\"o\")?.trim();\r\n let _currentPage = parseInt(searchParams.get(\"cp\")?.trim()||\"1\");\r\n if ( isNaN(_currentPage) ) {\r\n _currentPage = 1;\r\n }\r\n\r\n console.log(\"This is it.searchParams: \", {_searchString, _categories, _tags, _brands, _price, _orderBy, _currentPage, window, aaa: searchParams.get(\"cp\")?.trim()} )\r\n\r\n // string filter\r\n if ( _searchString && !isEmpty(_searchString) ) {\r\n if ( filters.length > 0 ) filters.push(\"and\");\r\n filters.push(`(contains(name, '${_searchString}') or contains(catalogCategoryName, '${_searchString}'))`);\r\n }\r\n\r\n // categories filter\r\n if ( _categories && !isEmpty(_categories) ) {\r\n let filterItems = [];\r\n let _categoriesSplit = _categories.split(\",\");\r\n for ( let item of _categoriesSplit ) {\r\n filterItems.push(`catalogCategoryRelationHierarchy eq '${item}'`);\r\n }\r\n if ( filterItems && !isEmpty(filterItems) ) {\r\n if ( filters.length > 0 ) filters.push(\"and\");\r\n filters.push(`(${filterItems.join(\" or \")})`);\r\n }\r\n }\r\n\r\n // tags filter\r\n if ( _tags && !isEmpty(_tags) ) {\r\n let filterItems = [];\r\n let _tagsSplit = _tags.split(\",\");\r\n for ( let item of _tagsSplit ) {\r\n filterItems.push(`tags/any(d: d/id eq ${item})`);\r\n }\r\n if ( filterItems && !isEmpty(filterItems) ) {\r\n if ( filters.length > 0 ) filters.push(\"and\");\r\n filters.push(`(${filterItems.join(\" or \")})`);\r\n }\r\n }\r\n\r\n // brand filter\r\n if ( _brands && !isEmpty(_brands) ) {\r\n let filterItems = [];\r\n let _brandsSplit = _brands.split(\",\");\r\n for ( let item of _brandsSplit ) {\r\n filterItems.push(`contentId eq ${item}`);\r\n }\r\n if ( filterItems && !isEmpty(filterItems) ) {\r\n if ( filters.length > 0 ) filters.push(\"and\");\r\n filters.push(`(${filterItems.join(\" or \")})`);\r\n }\r\n }\r\n\r\n // price filter\r\n if ( _price && !isEmpty(_price) ) {\r\n let filterItems = [];\r\n let _priceSplit = _price.split(\"-\");\r\n \r\n let priceMin = parseInt(_priceSplit[0]);\r\n let priceMax = parseInt(_priceSplit[1]);\r\n \r\n if ( priceMin > -1 ) { filterItems.push(`price ge ${priceMin}`) }\r\n if ( priceMax > -1 ) { filterItems.push(`price le ${priceMax}`) }\r\n \r\n if ( filterItems && !isEmpty(filterItems) ) {\r\n if ( filters.length > 0 ) filters.push(\"and\");\r\n filters.push(`(${filterItems.join(\" and \")})`);\r\n }\r\n }\r\n\r\n if ( Lodash.isEmpty(props.marketPlacePagePayload) ) {\r\n let _init = [\r\n ...init,\r\n { key:\"filters\", value: filters },\r\n { key:\"orderBy\", value: _orderBy },\r\n { key:\"currentPage\", value: _currentPage },\r\n ];\r\n props._modifyMarketPlaceStore(_init);\r\n }\r\n else {\r\n props._modifyMarketPlaceStore([\r\n { key:\"hasSearch\", value: true },\r\n { key:\"filters\", value: filters },\r\n { key:\"orderBy\", value: _orderBy },\r\n { key:\"currentPage\", value: _currentPage },\r\n ]);\r\n }\r\n\r\n }, [ searchParams ]\r\n ) \r\n\r\n useEffect(\r\n () => {\r\n if (props.marketPlacePagePayload?.hasSearch) {\r\n console.log(\"This is it: \", props.marketPlacePagePayload);\r\n props._setHasSearch(false);\r\n props._search(props.marketPlacePagePayload, props.webApplicationLanguageCode);\r\n window.scrollTo({ top: 0, left: 0, behavior: \"smooth\" });\r\n }\r\n }, [props.marketPlacePagePayload]\r\n )\r\n \r\n useEffect(\r\n () => {\r\n // if (props.marketPlacePagePayload?.scrollTo) {\r\n // setTimeout(\r\n // () => {\r\n // window.scrollTo({ top: 0, left: 0, behavior: \"smooth\" });\r\n // }, 200\r\n // );\r\n props._setFirstSearch(false);\r\n // props._setScrollTo(false);\r\n\r\n setTimeout(() => { props._hideLoader() }, 100);\r\n // }\r\n }, [props.clientProductsListPayload]\r\n )\r\n\r\n useEffect(\r\n () => {\r\n try {\r\n let _lastPage = Math.ceil(props.clientProductsListCount/props.marketPlacePagePayload.itemsPerPage);\r\n props._setLastPage(_lastPage);\r\n }\r\n catch(ex) {}\r\n }, [props.clientProductsListCount]\r\n )\r\n\r\n // function onClick ( event: React.MouseEvent, value:IClientProductList ) {\r\n\r\n // props._openProductDetailPopup(value);\r\n\r\n // }\r\n\r\n return (\r\n <>\r\n {\r\n seoDisabled === false && ( )\r\n }\r\n\r\n \r\n\r\n \r\n
    \r\n \r\n\r\n
    \r\n \r\n \r\n\r\n {\r\n props.marketPlacePagePayload.lastPage > 1 &&\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n )\r\n}\r\n\r\nconst Component = React.memo(MarketPlace, ( prevProps:TMarketPlace, nextProps:TMarketPlace ) => {\r\n console.log(\"MarketPlace.memo\", { prevProps, nextProps });\r\n return !(\r\n prevProps.isLoading !== nextProps.isLoading\r\n || prevProps.marketPlacePagePayload !== nextProps.marketPlacePagePayload\r\n || prevProps.clientProductsListPayload?.[0]?.id !== nextProps.clientProductsListPayload?.[0]?.id\r\n )\r\n});\r\n\r\nexport default connector(Component);\r\n","// action \nimport OdataReadOnlyActionBase from \"core/actions/OdataReadOnlyActionBase\";\n// service\nimport ClientContentsService from \"cms/services/ClientContentsService\";\n\n\nclass ClientContentsServiceAction extends OdataReadOnlyActionBase {\n\n constructor( dispatch: any, screenCode:string ) {\n super(dispatch, ClientContentsService, screenCode);\n }\n\n}\n\nexport default ClientContentsServiceAction;\n","import _ClientContentsServiceAction from \"cms/actions/services/ClientContentsServiceAction\";\n\n\nconst screenCode = \"20B\";\nclass ClientContentsServiceAction extends _ClientContentsServiceAction {\n\n constructor( dispatch: any ) {\n super(dispatch, screenCode);\n }\n \n}\n\nexport default ClientContentsServiceAction;\n","import cn from \"classnames\";\n\n\ninterface Props {\n\tclassName?: string;\n\tchildren?: any;\n\tel?: HTMLElement;\n\tclean?: boolean;\n}\n\nfunction Container ( props:Props ) {\n\tconst rootClassName = cn(props.className, {\n\t\t\"mx-auto max-w-[1920px] px-4 md:px-8 2xl:px-16\": !props.clean,\n\t});\n\n\tlet Component: React.ComponentType<\n\t\tReact.HTMLAttributes\n\t> = props.el as any;\n\n\treturn {props.children};\n};\n\nContainer.defaultProps = {\n el: \"div\",\n};\n\nexport default Container;\n","import { isEmpty } from \"lodash\";\nimport { useEffect, useState } from \"react\";\n\ntype TUseProgressiveImage = {\n\n src:string|null;\n\n}\n\nconst useProgressiveImage = (props:TUseProgressiveImage) => { \n const [sourceLoaded, setSourceLoaded] = useState(null);\n \n useEffect(\n () => {\n if ( props.src && !isEmpty(props.src) ) {\n const img = new Image();\n img.src = props.src;\n img.onload = () => setSourceLoaded(props.src);\n }\n }, [props.src]\n )\n \n return sourceLoaded \n}\n\nexport default useProgressiveImage;\n","import React from 'react';\nimport CoreDefault from 'core/Defaults';\n// utilities\nimport SanitizeHTMLString from 'cms/utilities/SanitizeHTMLString';\n// types\nimport ApplicationDocumentSelector, { TApplicationDocumentSelector } from 'cms/utilities/ApplicationDocumentSelector';\nimport { isEmpty, reject } from 'lodash';\nimport RenderText from './RenderText';\nimport IApplicationDocument from 'cms/interfaces/IApplicationDocument';\nimport useProgressiveImage from 'core/hooks/useProgressiveImage';\n\n\ntype TContentHeaderRow = {\n\n title?: string|null;\n description?: string|null;\n imagePath?: string|null;\n \n} & TApplicationDocumentSelector;\n\nfunction ContentHeaderRow(props: TContentHeaderRow) {\n console.log(\"ContentHeaderRow: \", props);\n\n const applicationDocument = ApplicationDocumentSelector({\n resources: props.resources,\n resourceType: props.resourceType,\n sizeType: props.sizeType,\n type: \"find\"\n });\n\n const image = reject([\n props.imagePath ? `${CoreDefault.cdn}/${props.imagePath.replace(\"\\\\\", \"/\")}` : null,\n applicationDocument.filePath ? `${CoreDefault.cdn}/${applicationDocument.filePath.replace(\"\\\\\", \"/\")}` : null\n ], isEmpty)?.[0];\n\n const loaded = useProgressiveImage({ src:image ? `${image}` : null });\n\n return (\n \n
    \n
    \n

    \n \n {\n props.description &&\n (\n \n )\n }\n

    \n
    \n
    \n )\n\n}\n\nexport default ContentHeaderRow;\nexport type {\n TContentHeaderRow\n};\n\n","import React from \"react\";\nimport { isEmpty } from \"lodash\";\n// enums\nimport { EViewType } from \"cms/enums/EViewType\";\n// utilities\nimport SanitizeHTMLString from \"cms/utilities/SanitizeHTMLString\";\n// interfaces\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\n\n\ntype TRMDRTextContent = {\n\n languageVersion?: ILanguageVersionList|ILanguageVersionDetail|null;\n languageVersions?: ILanguageVersionList[]|ILanguageVersionDetail[]|null;\n\n isLoading?:boolean;\n showNameField?:boolean;\n\n titleClassName?:string;\n contentClassName?:string;\n\n}\n\nconst RMDRTextContent = ( props:TRMDRTextContent ) => {\n console.log(\"RMDRTextContent.rendered\", props)\n\n if ( props.languageVersion && !isEmpty(props.languageVersion) && props.languageVersion?.viewType === EViewType.TEXT ) {\n \n return (\n <>\n { props.showNameField ?

    {props.languageVersion.name}

    : (null)}\n
    \n \n \n );\n\n }\n\n return null;\n}\n\nconst Component = React.memo(RMDRTextContent, (prevProps:TRMDRTextContent, nextProps:TRMDRTextContent) => {\n console.log(\"RMDRTextContent.memo\", { prevProps, nextProps });\n\n return !( \n prevProps.isLoading !== nextProps.isLoading \n || prevProps.languageVersion !== nextProps.languageVersion\n )\n});\n\nexport default Component;\nexport type {\n TRMDRTextContent\n};\n","import React, { useState } from \"react\";\nimport Lodash, { isEmpty } from \"lodash\";\n// components\n// enums\nimport { EViewType } from \"cms/enums/EViewType\";\n// types\nimport { TRMDRAccordion } from \"../type\";\n//\nimport cn from 'classnames';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport RenderText from \"../../RenderText\";\n\n\nfunction heightCollapse() {\n return {\n from: {\n opacity: 0,\n height: 0,\n transition: {\n ease: [0.04, 0.62, 0.23, 0.98],\n },\n },\n to: {\n opacity: 1,\n height: \"auto\",\n transition: {\n ease: [0.04, 0.62, 0.23, 0.98],\n },\n },\n };\n}\n\n\nfunction Item({\n i,\n expanded,\n setExpanded,\n title,\n content,\n}: any) {\n\n const isOpen = i === expanded;\n\n return (\n \n setExpanded(isOpen ? false : i)}\n className='cursor-pointer flex items-center justify-between transition-colors py-5 md:py-6 px-6 md:px-8 lg:px-10'\n >\n \n {title}\n \n
    \n
    \n \n
    \n \n\n \n {isOpen && (\n \n \n {content}\n
    \n \n )}\n \n
    \n );\n};\n\nconst RMDRAccordion01 = ( props:TRMDRAccordion ) => {\n console.log(\"RMDRAccordion01.rendered\", props);\n\n const [expanded, setExpanded] = useState(0);\n\n if ( props.languageVersion && !isEmpty(props.languageVersion) && props.languageVersions && !isEmpty(props.languageVersions) && props.languageVersion.viewType === EViewType.ACCORDION ) {\n\n let payloadChild = props.languageVersions.filter((item) => item.parentId === props.languageVersion?.id);\n payloadChild = Lodash.orderBy(payloadChild, ['order'],['asc']);\n\n if ( !isEmpty(payloadChild) ) {\n return (\n
    \n {\n payloadChild?.map((item, index) => (\n }\n expanded={expanded}\n setExpanded={setExpanded}\n />\n ))}\n
    \n );\n } \n\n }\n\n return null;\n}\n\nconst Component = React.memo(RMDRAccordion01, ( prevProps:TRMDRAccordion, nextProps:TRMDRAccordion ) => {\n console.log(\"RMDRAccordion01.memo\", { prevProps, nextProps });\n\n return !( \n prevProps.isLoading !== nextProps.isLoading\n || prevProps.languageVersion !== nextProps.languageVersion\n )\n});\n\nexport default Component;","import React from \"react\";\nimport Lodash, { isEmpty } from \"lodash\";\n// types\nimport { TRMDRTab } from \"../type\";\nimport { Tab, TabGroup, TabList, TabPanel, TabPanels } from '@headlessui/react'\nimport RenderText from \"../../RenderText\";\nimport { EViewType } from \"cms/enums/EViewType\";\n\n\nconst RMDRTab01 = ( props:TRMDRTab ) => {\n\n if ( props.languageVersion && !isEmpty(props.languageVersion) && props.languageVersion?.viewType === EViewType.TAB ) {\n let payloadChild = props.languageVersions?.filter((item) => item.parentId === props.languageVersion?.id);\n payloadChild = Lodash.orderBy(payloadChild, ['order'],['asc']);\n\n if ( payloadChild && !isEmpty(payloadChild) ) {\n return (\n
    \n \n \n {\n payloadChild.map((item) => (\n \n selected ? 'tab-li-selected' : 'tab-li'\n }\n >\n {item.name}\n \n ))\n }\n \n\n \n {\n payloadChild.map((item) => (\n \n \n \n ))\n }\n \n \n
    \n );\n }\n }\n\n return null;\n \n}\n\nconst Component = React.memo(RMDRTab01, (prevProps:TRMDRTab, nextProps:TRMDRTab) => {\n console.log(\"RMDRTab01.memo\", { prevProps, nextProps });\n\n return !( \n prevProps.isLoading !== nextProps.isLoading \n || prevProps.languageVersion !== nextProps.languageVersion\n ) \n});\n\nexport default Component;\n","import React from 'react';\nimport { isEmpty, orderBy } from \"lodash\";\n// components\nimport RMDRTextContent from \"components/RMDRTextContent\";\nimport RMDRAccordion01 from \"components/RMDRAccordions/components/RMDRAccordion01\";\nimport RMDRTab01 from \"components/RMDRTabs/components/RMDRTab01\";\n// enums\nimport { EView } from 'cms/enums/EView';\nimport { EContentType } from 'cms/enums/EContentType';\n// interfaces\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\"\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\"\n\ntype TContentRenderer = {\n \n languageVersions?: ILanguageVersionList[] | ILanguageVersionDetail[];\n\n showNameField?:boolean;\n\n titleClassName?:string;\n contentClassName?:string;\n\n}\n\nfunction ContentRenderer ( props: Readonly ) {\n\n if ( props.languageVersions && !isEmpty(props.languageVersions) ) {\n\n let parentLanguageVersions = props.languageVersions.filter((item) => item.parentId === null && item.view === EView.INNER && item.contentType === EContentType.DEFAULT);\n parentLanguageVersions = orderBy(parentLanguageVersions, ['order'],['asc']);\n\n return (\n <>\n {\n parentLanguageVersions.map(\n (item) => <>\n \n \n \n \n )\n }\n \n )\n\n }\n\n return null;\n\n}\n\nContentRenderer.defaultProps = {\n\n showNameField: false,\n\n}\n\nexport default ContentRenderer;\nexport type {\n TContentRenderer\n};\n","import React from 'react';\nimport Moment from \"moment\";\n// types\nimport { EResourceType } from 'cms/enums/EResourceType';\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\nimport { EContentType } from 'cms/enums/EContentType';\nimport RMDRImage from './RMDRImage';\nimport IClientContentDetail from \"cms/interfaces/IClientContentDetail\";\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\nimport ILanguageVersionDetail from 'cms/interfaces/ILanguageVersionDetail';\n\n\ntype TContentInnerHeader = {\n\n payload?: IClientContentDetail;\n metaInformationEnabled?: boolean;\n\n}\n\nfunction ContentInnerHeader(props: TContentInnerHeader) {\n \n const languageVersion = LanguageVersionSelector({\n languageVersions: props.payload?.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n const datetime = \"\";\n // const datetime = Moment(props.payload?.creationDateTime).format('MM-DD-YYYY HH:mm'); \n // TODO: önceden modelin içinde \"creationDateTime\" geliyordu şuan gelmiyor. \n // Sayfada gösterilmek isteniyorse gelmesi gerekiyor\n\n return (\n <>\n
    \n \n
    \n \n {\n props.metaInformationEnabled &&\n
    \n
    \n \n {datetime}\n
    \n {/*
    \n \n {item?.author}\n
    */}\n {/*
    \n \n \n {item?.comment > 1\n ? `${item?.comment} comments`\n : `${item?.comment} comment`}\n \n
    */}\n
    \n }\n \n )\n}\n\nexport default ContentInnerHeader;\nexport type {\n TContentInnerHeader\n};\n","import React, { useEffect } from \"react\";\nimport Lodash from \"lodash\";\nimport { connect, ConnectedProps } from \"react-redux\";\n// actions\nimport CoreAction from \"core/actions/common/CoreAction\";\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\nimport TValidations from \"cms/types/TValidations\";\nimport { Dispatch } from \"@reduxjs/toolkit\";\nimport Container from \"components/Container\";\nimport ContentHeaderRow from \"components/ContentHeaderRow\";\nimport { TINNRLayout } from \"../type\";\nimport ContentRenderer from \"components/ContentRenderer\";\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\nimport { EView } from \"cms/enums/EView\";\nimport { EViewType } from \"cms/enums/EViewType\";\nimport { EContentType } from \"cms/enums/EContentType\";\nimport { EResourceType } from \"cms/enums/EResourceType\";\nimport ContentInnerHeader from \"components/ContentInnerHeader\";\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\";\nimport SEO from \"components/SEO\";\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\n\n\nfunction mapStateToProps ( state: any ) {\n console.log(\"INNR001.mapStateToProps: \", state);\n\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\n\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\n\n const errors:TValidations[]|null|undefined = Lodash.reject( [], Lodash.isEmpty )[0] || [];\n const isLoading:boolean = [false].includes(true);\n\n return {\n\n webApplicationLanguage,\n webApplicationLanguageCode,\n webApplicationLanguageISOCode,\n\n siteSettingDetailPayload,\n\n errors,\n isLoading\n\n }\n}\n\nfunction mapDispatchToProps ( dispatch:Dispatch ) {\n console.log(\"INNR001.mapDispatchToProps\");\n\n const coreAction = new CoreAction(dispatch);\n\n return {\n // others\n _hideLoader: () => {\n coreAction.hideLoader()\n },\n\n _showLoader: () => {\n coreAction.showLoader()\n },\n\n _clean: () => {\n\n }\n }\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\n\n/* types */\ntype PropsFromRedux = ConnectedProps\n\n\n/* component */\nfunction INNR001Loader () {\n\n return (\n <>\n )\n\n}\n\nfunction INNR001 ( props:TINNRLayout ) {\n console.log(\"INNR001.rendered: \", props);\n\n const languageVersion = LanguageVersionSelector({\n languageVersions: props.contentDetailPayload.languageVersions,\n filters: [\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\n ],\n type: \"find\"\n });\n\n useEffect(\n () => {\n\n setTimeout(() => { props._hideLoader(); }, 100);\n\n return function cleanup() {\n props._showLoader();\n }\n\n }, [ ]\n )\n\n return (\n <>\n \n\n \n\n \n \n \n \n \n )\n \n}\n\nconst Component = React.memo(INNR001, ( prevProps: TINNRLayout, nextProps: TINNRLayout ) => {\n console.log(\"INNR001.memo\", { prevProps, nextProps });\n return !(\n prevProps.isLoading !== nextProps.isLoading \n );\n});\n\nexport default connector(Component);","import React, { useEffect } from \"react\";\r\nimport Lodash from \"lodash\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\n// actions\r\nimport CoreAction from \"core/actions/common/CoreAction\";\r\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\r\nimport TValidations from \"cms/types/TValidations\";\r\nimport { Dispatch } from \"@reduxjs/toolkit\";\r\nimport { TINNRLayout } from \"../type\";\r\nimport Container from \"components/Container\";\r\nimport ContentRenderer from \"components/ContentRenderer\";\r\nimport ContentInnerHeader from \"components/ContentInnerHeader\";\r\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\r\nimport SEO from \"components/SEO\";\r\n\r\n\r\nfunction mapStateToProps ( state: any ) {\r\n console.log(\"INNR002.mapStateToProps: \", state);\r\n\r\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\r\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\r\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\r\n\r\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\r\n\r\n const errors:TValidations[]|null|undefined = Lodash.reject( [], Lodash.isEmpty )[0] || [];\r\n const isLoading:boolean = [false].includes(true);\r\n\r\n return {\r\n\r\n webApplicationLanguage,\r\n webApplicationLanguageCode,\r\n webApplicationLanguageISOCode,\r\n\r\n siteSettingDetailPayload,\r\n\r\n errors,\r\n isLoading\r\n\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps ( dispatch:Dispatch ) {\r\n console.log(\"INNR002.mapDispatchToProps\");\r\n\r\n const coreAction = new CoreAction(dispatch);\r\n\r\n return {\r\n // others\r\n _hideLoader: () => {\r\n coreAction.hideLoader()\r\n },\r\n\r\n _showLoader: () => {\r\n coreAction.showLoader()\r\n },\r\n\r\n _clean: () => {\r\n\r\n }\r\n }\r\n}\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\n\r\n\r\n/* types */\r\ntype PropsFromRedux = ConnectedProps\r\n\r\n\r\n/* component */\r\nfunction INNR002Loader () {\r\n\r\n return (\r\n <>\r\n )\r\n\r\n}\r\n\r\nfunction INNR002 ( props:TINNRLayout ) {\r\n console.log(\"INNR002.rendered: \", props);\r\n\r\n useEffect (\r\n () => {\r\n\r\n setTimeout(() => { props._hideLoader(); }, 100);\r\n\r\n return function cleanup() {\r\n props._showLoader();\r\n }\r\n\r\n }, [ ]\r\n )\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n \r\n}\r\n\r\nconst Component = React.memo(INNR002, ( prevProps: TINNRLayout, nextProps: TINNRLayout ) => {\r\n console.log(\"INNR002.memo\", { prevProps, nextProps });\r\n return !(\r\n prevProps.isLoading !== nextProps.isLoading \r\n );\r\n});\r\n\r\nexport default connector(Component);\r\n","import _ContactUsServiceAction from \"cms/actions/services/ContactUsServiceAction\";\n\n\nconst screenCode = \"202\";\nclass ContactUsServiceAction extends _ContactUsServiceAction {\n\n constructor( dispatch:any ) {\n super( dispatch, screenCode);\n }\n\n}\n\nexport default ContactUsServiceAction;\n","// enums\nimport { EView } from 'cms/enums/EView';\nimport { EViewType } from 'cms/enums/EViewType';\n// interfaces\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\";\nimport ILanguageVersionList from \"cms/interfaces/ILanguageVersionList\";\nimport LanguageVersionSelector from 'cms/utilities/LanguageVersionSelector';\n\n\ntype TRMDRGoogleMaps = {\n\n languageVersions?:ILanguageVersionList[]|ILanguageVersionDetail[]|null;\n\n}\n\nfunction RMDRGoogleMaps ( props: TRMDRGoogleMaps ) {\n\n const googleMaps = LanguageVersionSelector({\n languageVersions: props.languageVersions,\n filters: [\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"googleMaps\" }\n ],\n type: \"find\"\n });\n\n if ( googleMaps ) {\n\n return (\n \n )\n\n }\n\n return null;\n \n}\n\nexport default RMDRGoogleMaps;\nexport type {\n TRMDRGoogleMaps\n};\n","import React, { useEffect } from \"react\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\nimport Lodash from \"lodash\";\r\n// actions\r\nimport CoreAction from \"core/actions/common/CoreAction\";\r\nimport MessagePublisherAction from \"core/actions/common/MessagePublisherAction\";\r\nimport ContactUsServiceAction from \"cms/actions/components/InnerLayouts/INNR003/ContactUsServiceAction\";\r\n// interfaces\r\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\";\r\n// enums\r\nimport { EView } from \"cms/enums/EView\";\r\nimport { EViewType } from \"cms/enums/EViewType\";\r\nimport { EContentType } from \"cms/enums/EContentType\";\r\nimport { EResourceType } from \"cms/enums/EResourceType\";\r\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\r\nimport TValidations from \"cms/types/TValidations\";\r\nimport IContactUsPost from \"cms/interfaces/IContactUsPost\";\r\nimport { Dispatch } from \"@reduxjs/toolkit\";\r\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\r\nimport Container from \"components/Container\";\r\nimport ContactForm from \"components/ContactForm\";\r\n// import Subscription from \"components/Subscription\";\r\nimport ContactInfoBlock from \"components/ContactInfoBlock\";\r\nimport RMDRGoogleMaps from \"components/RMDRGoogleMaps\";\r\nimport ContentHeaderRow from \"components/ContentHeaderRow\";\r\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\r\nimport { TINNRLayout } from \"../type\";\r\nimport SEO from \"components/SEO\";\r\nimport { EContactUsStatus } from \"cms/enums/EContactUsStatus\";\r\n\r\n\r\nfunction mapStateToProps ( state: any ) {\r\n console.log(\"INNR003.mapStateToProps: \", state);\r\n\r\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\r\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\r\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\r\n\r\n const contactUsPostPayload:IContactUsPost = state.INNR003Store.ContactUsStore.post?.payload;\r\n const contactUsPostListError:TValidations[]|null = state.INNR003Store.ContactUsStore.post.error?.value;\r\n const contactUsPostListIsLoading:boolean = state.INNR003Store.ContactUsStore.post?.isLoading;\r\n\r\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\r\n\r\n const errors:TValidations[]|null|undefined = Lodash.reject( [contactUsPostListError], Lodash.isEmpty )[0] || [];\r\n const isLoading:boolean = [contactUsPostListIsLoading].includes(true);\r\n\r\n return {\r\n\r\n webApplicationLanguage,\r\n webApplicationLanguageCode,\r\n webApplicationLanguageISOCode,\r\n\r\n contactUsPostPayload,\r\n siteSettingDetailPayload,\r\n\r\n errors,\r\n isLoading\r\n \r\n }\r\n}\r\n\r\nfunction mapDispatchToProps ( dispatch: Dispatch ) {\r\n console.log(\"INNR003.mapDispatchToProps\");\r\n\r\n const coreAction = new CoreAction(dispatch);\r\n const messagePublisherAction = new MessagePublisherAction(dispatch);\r\n const contactUsServiceAction = new ContactUsServiceAction(dispatch);\r\n\r\n return {\r\n // list\r\n // post\r\n _post: ( payload:any, webApplicationLanguageCode:string ) => {\r\n contactUsServiceAction.post({ servicePayload: { body: { ...payload, status: EContactUsStatus.NEW }, language: webApplicationLanguageCode } })\r\n },\r\n \r\n // details\r\n // others\r\n _showLoader: () => { \r\n coreAction.showLoader() \r\n },\r\n\r\n _hideLoader: () => { \r\n coreAction.hideLoader() \r\n },\r\n\r\n _showMessage: ( message:string ) => { \r\n messagePublisherAction.showSuccessMessage(message)\r\n },\r\n\r\n _clean: () => {\r\n contactUsServiceAction.postClean();\r\n }\r\n }\r\n}\r\n\r\nconst connector = connect ( mapStateToProps, mapDispatchToProps );\r\n\r\n\r\n/* types */\r\ntype PropsFromRedux = ConnectedProps\r\n\r\n\r\n/* component */\r\nfunction INNR003Loader () {\r\n\r\n return (\r\n <>\r\n )\r\n\r\n}\r\n\r\nfunction INNR003 ( props:TINNRLayout ) {\r\n console.log(\"INNR003.rendered: \", props);\r\n\r\n const languageVersion = LanguageVersionSelector({\r\n languageVersions: props.contentDetailPayload?.languageVersions,\r\n filters: [\r\n { view: EView.OUTTER, viewType: EViewType.NAME_DESCRIPTION, contentType: EContentType.DEFAULT }\r\n ],\r\n type: \"find\"\r\n });\r\n\r\n const getInTouchString = LanguageVersionSelector({\r\n languageVersions: props.contentDetailPayload?.languageVersions,\r\n filters: [\r\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"getInTouchString\" }\r\n ],\r\n type: \"find\"\r\n });\r\n\r\n const findUsHereString = LanguageVersionSelector({\r\n languageVersions: props.contentDetailPayload?.languageVersions,\r\n filters: [\r\n { view: EView.META_DATA, viewType: EViewType.TEXT, name: \"findUsHereString\" }\r\n ],\r\n type: \"find\"\r\n });\r\n \r\n useEffect(\r\n () => {\r\n\r\n return function cleanup() {\r\n props._clean();\r\n props._showLoader();\r\n }\r\n\r\n }, [ ]\r\n )\r\n\r\n useEffect(\r\n () => {\r\n \r\n setTimeout(() => { props._hideLoader(); }, 100);\r\n\r\n }, [ props.contentDetailPayload ]\r\n )\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n

    \r\n {getInTouchString?.value}\r\n

    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n )\r\n}\r\n\r\nconst Component = React.memo(INNR003, ( prevProps:TINNRLayout, nextProps:TINNRLayout ) => {\r\n console.log(\"INNR003.memo\", { prevProps, nextProps });\r\n return !( prevProps.isLoading !== nextProps.isLoading );\r\n});\r\n\r\nexport default connector(Component);\r\n\r\n","import React from \"react\";\r\nimport { isEmpty } from \"lodash\";\r\nimport { connect, ConnectedProps } from \"react-redux\";\r\n// actions\r\nimport CoreAction from \"core/actions/common/CoreAction\";\r\nimport IClientLanguage from \"core/interfaces/IClientLanguage\";\r\n// import TValidations from \"cms/types/TValidations\";\r\nimport { Dispatch } from \"@reduxjs/toolkit\";\r\nimport { Navigate, useLocation } from \"react-router-dom\";\r\nimport { TINNRLayout } from \"../type\";\r\nimport IClientSiteSettingDetail from \"cms/interfaces/IClientSiteSettingDetail\";\r\nimport SEO from \"components/SEO\";\r\nimport LanguageVersionSelector from \"cms/utilities/LanguageVersionSelector\";\r\nimport { EView } from \"cms/enums/EView\";\r\nimport { EViewType } from \"cms/enums/EViewType\";\r\nimport { EContentType } from \"cms/enums/EContentType\";\r\nimport ILanguageVersionDetail from \"cms/interfaces/ILanguageVersionDetail\";\r\n\r\n\r\nfunction mapStateToProps ( state: any ) {\r\n console.log(\"INNR004.mapStateToProps: \", state);\r\n\r\n const webApplicationLanguage:IClientLanguage = state.CoreStore.language?.payload;\r\n const webApplicationLanguageCode:string = webApplicationLanguage.code;\r\n const webApplicationLanguageISOCode:string = state.CoreStore.languageCode?.payload;\r\n\r\n const siteSettingDetailPayload:IClientSiteSettingDetail = state.SiteSettingStore.details?.payload;\r\n\r\n return {\r\n\r\n webApplicationLanguage,\r\n webApplicationLanguageCode,\r\n webApplicationLanguageISOCode,\r\n\r\n siteSettingDetailPayload,\r\n\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps ( dispatch:Dispatch ) {\r\n console.log(\"INNR004.mapDispatchToProps\");\r\n\r\n const coreAction = new CoreAction(dispatch);\r\n\r\n return {\r\n // others\r\n _hideLoader: () => {\r\n coreAction.hideLoader()\r\n },\r\n\r\n _showLoader: () => {\r\n coreAction.showLoader()\r\n },\r\n\r\n _clean: () => {\r\n\r\n }\r\n }\r\n}\r\n\r\nconst connector = connect(mapStateToProps, mapDispatchToProps);\r\n\r\n\r\n/* types */\r\ntype PropsFromRedux = ConnectedProps\r\n\r\n\r\n/* component */\r\nfunction INNR004Loader () {\r\n\r\n return (\r\n <>\r\n )\r\n\r\n}\r\n\r\nfunction INNR004 ( props:TINNRLayout ) {\r\n console.log(\"INNR004.rendered: \", props);\r\n\r\n const location = useLocation();\r\n const _id = location.pathname.split(\"/\")?.pop();\r\n if ( _id !== props.contentDetailPayload?.id ) return null;\r\n\r\n const redirectPath = LanguageVersionSelector({\r\n languageVersions: props.contentDetailPayload.languageVersions,\r\n filters:[\r\n { view: EView.META_DATA, viewType: EViewType.TEXT, contentType: EContentType.DEFAULT, name: \"redirectPath\" }\r\n ],\r\n type: \"find\"\r\n });\r\n\r\n if ( !isEmpty(props.webApplicationLanguageISOCode) && !isEmpty(redirectPath) ) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n }\r\n else \r\n return ;\r\n \r\n}\r\n\r\nconst Component = React.memo(INNR004, ( prevProps: TINNRLayout, nextProps: TINNRLayout ) => {\r\n console.log(\"INNR004.memo\", { prevProps, nextProps });\r\n return !(\r\n prevProps.contentDetailPayload !== nextProps.contentDetailPayload \r\n );\r\n});\r\n\r\nexport default connector(Component);\r\n","import IApplicationDocument from 'cms/interfaces/IApplicationDocument';\nimport ApplicationDocumentSelector, { TApplicationDocumentSelector } from 'cms/utilities/ApplicationDocumentSelector';\nimport CoreDefault from 'core/Defaults';\nimport { isEmpty } from 'lodash';\n\n\ntype TRMDRPDFViever = {\n\n width?:string;\n height?:string;\n className?:string;\n\n} & TApplicationDocumentSelector;\n\n\nfunction RMDRPDFViever ( props:TRMDRPDFViever ) {\n\n const applicationDocument = ApplicationDocumentSelector({\n resources: props.resources,\n resourceType: props.resourceType,\n type: \"find\"\n })\n\n if ( applicationDocument && !isEmpty(applicationDocument) ) {\n\n return (\n