{"version":3,"file":"static/js/opencalendar.js","mappings":"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EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,ICN5xCzG,EAAY,CAAC,WAAY,SAAU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ACA,2FACA,6FACA,2FACA,8OACA,8OACA,2FACA,2FACA,2FACA,2FACA,2FACA,6OACA,6FACA,2FACA,6FACA,2FACA,4FACA,2FACA,8OACA,2FACA,2FACA,6FACA,6FACA,2FACA,2FACA,2FACA,6OACA,8OACA,2FACA,8OACA,6OACA,4FACA,6OACA,4FACA,6FACA,6OACA,4FACA,0OACA,6OACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,2FACA,6OACA,8OACA,8OACA,2FACA,8OACA,2FACA,8OACA,2FACA,2FACA,8OACA,+OACA,2FACA,2FACA,4FACA,2FACA,6FACA,2FACA,2FACA,2OACA,2FACA,4FAEF,SAASC,GAAkBC,GACzB,MAAMC,EAAYD,EAAOh4I,MAAM,KAC/B,OACwB,IAArBi4I,EAAU5jJ,QACPshI,GAAa,GAADr1H,OAAI23I,EAAU,MACzBtiB,GAAa,GAADr1H,OAAI23I,EAAU,KAAM,GAAD33I,OAAI23I,EAAU,MAC7CtiB,GAAa,GAADr1H,OAAI23I,EAAU,KAAM,GAAD33I,OAAI23I,EAAU,KAAM,GAAD33I,OAAI23I,EAAU,QAC/C,IAArBA,EAAU5jJ,QACPshI,GAAa,GAADr1H,OAAI23I,EAAU,MAAUtiB,GAAa,GAADr1H,OAAI23I,EAAU,KAAM,GAAD33I,OAAI23I,EAAU,QAC/D,IAArBA,EAAU5jJ,QAAiBshI,GAAa,GAADr1H,OAAI23I,EAAU,MAK/B,IAArBA,EAAU5jJ,OACL,CACLshI,GAAa,GAADr1H,OAAI23I,EAAU,KAAM,GAAD33I,OAAI23I,EAAU,KAAM,GAAD33I,OAAI23I,EAAU,KAAM,GACtEC,GACEJ,GAAoBniB,GAAa,GAADr1H,OAAI23I,EAAU,KAAM,GAAD33I,OAAI23I,EAAU,KAAM,GAAD33I,OAAI23I,EAAU,KAAM,MAIvE,IAArBA,EAAU5jJ,OACL,CACLshI,GAAa,GAADr1H,OAAI23I,EAAU,KAAM,GAAD33I,OAAI23I,EAAU,KAAM,GACnDC,GAAkBJ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","sources":["../node_modules/@algolia/events/events.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@mui/icons-material/CalendarTodayRounded.js","../node_modules/@mui/icons-material/Category.js","../node_modules/@mui/icons-material/ChevronRight.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/Event.js","../node_modules/@mui/icons-material/MenuRounded.js","../node_modules/@mui/icons-material/StackedBarChart.js","../node_modules/@mui/icons-material/YouTube.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@mui/system/esm/propsToClassKey.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/utils/esm/resolveProps.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/utils/esm/createChainedFunction.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory.js","../node_modules/@mui/utils/esm/setRef.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/deepmerge.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/color-convert/conversions.js","../node_modules/color-convert/index.js","../node_modules/color-convert/route.js","../node_modules/color-name/index.js","../node_modules/convert-hex/convert-hex.js","../node_modules/convert-string/convert-string.js","../node_modules/dayjs/plugin/isBetween.js","../node_modules/dayjs/plugin/isSameOrAfter.js","../node_modules/dayjs/plugin/isSameOrBefore.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/dayjs/plugin/localizedFormat.js","../node_modules/dayjs/plugin/minMax.js","../node_modules/dayjs/plugin/utc.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/index.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/DerivedHelper/index.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/SearchParameters/index.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/SearchResults/generate-hierarchical-tree.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/SearchResults/index.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/algoliasearch.helper.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/compact.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/defaultsPure.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/escapeFacetValue.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/find.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/findIndex.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/formatSort.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/inherits.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/intersection.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/merge.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/objectHasKeys.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/omit.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/orderBy.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/functions/valToNumber.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/requestBuilder.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/utils/isValidUserToken.js","../node_modules/instantsearch.js/node_modules/algoliasearch-helper/src/version.js","../node_modules/invariant/browser.js","../node_modules/moment-timezone/index.js","../node_modules/moment-timezone/moment-timezone.js","../node_modules/moment/locale/it.js","../node_modules/moment/moment.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/index.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/utils.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/index.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/DerivedHelper/index.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/SearchParameters/index.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/SearchResults/generate-hierarchical-tree.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/SearchResults/index.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/algoliasearch.helper.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/compact.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/defaultsPure.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/escapeFacetValue.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/find.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/findIndex.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/formatSort.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/inherits.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/intersection.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/merge.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/objectHasKeys.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/omit.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/orderBy.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/functions/valToNumber.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/requestBuilder.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/utils/isValidUserToken.js","../node_modules/react-instantsearch-hooks/node_modules/algoliasearch-helper/src/version.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/sha256/lib/sha256.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/void-elements/index.js","../node_modules/warning/warning.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/clsx/dist/clsx.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../node_modules/@searchkit/instantsearch-client/src/index.ts","components/WrapperOpenCalendar.tsx","../node_modules/react-instantsearch-hooks/dist/es/lib/invariant.js","../node_modules/react-instantsearch-hooks/dist/es/lib/InstantSearchContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useIsomorphicLayoutEffect.js","../node_modules/react-instantsearch-hooks/dist/es/lib/createSearchResults.js","../node_modules/react-instantsearch-hooks/dist/es/lib/getIndexSearchResults.js","../node_modules/react-instantsearch-hooks/dist/es/lib/IndexContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useIndexContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useSearchResults.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useSearchState.js","../node_modules/react-instantsearch-hooks/dist/es/hooks/useInstantSearch.js","../node_modules/instantsearch.js/es/lib/utils/documentation.js","../node_modules/instantsearch.js/es/lib/utils/noop.js","../node_modules/instantsearch.js/es/lib/utils/checkRendering.js","../node_modules/instantsearch.js/es/lib/utils/getObjectType.js","../node_modules/instantsearch.js/es/connectors/search-box/connectSearchBox.js","../node_modules/react-instantsearch-hooks/dist/es/lib/dequal.js","../node_modules/react-instantsearch-hooks/dist/es/components/InstantSearchServerContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchServerContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useStableValue.js","../node_modules/react-instantsearch-hooks/dist/es/hooks/useConnector.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useWidget.js","../node_modules/react-instantsearch-hooks-web/dist/es/ui/lib/cx.js","../node_modules/react-instantsearch-hooks-web/dist/es/ui/SearchBox.js","../node_modules/react-instantsearch-hooks-web/dist/es/widgets/SearchBox.js","../node_modules/react-instantsearch-hooks/dist/es/connectors/useSearchBox.js","../node_modules/instantsearch.js/es/lib/utils/escape-html.js","../node_modules/instantsearch.js/es/lib/utils/isPlainObject.js","../node_modules/instantsearch.js/es/lib/utils/escape-highlight.js","../node_modules/instantsearch.js/es/lib/utils/createSendEventForFacet.js","../node_modules/instantsearch.js/es/connectors/refinement-list/connectRefinementList.js","../node_modules/instantsearch.js/es/lib/utils/isFacetRefined.js","../node_modules/react-instantsearch-hooks/dist/es/connectors/useRefinementList.js","../node_modules/instantsearch.js/es/lib/utils/getHighlightedParts.js","../node_modules/react-instantsearch-hooks-web/dist/es/ui/InternalHighlight.js","../node_modules/react-instantsearch-hooks-web/dist/es/ui/Highlight.js","../node_modules/react-instantsearch-hooks-web/dist/es/ui/ShowMoreButton.js","../node_modules/react-instantsearch-hooks-web/dist/es/ui/RefinementList.js","../node_modules/react-instantsearch-hooks-web/dist/es/widgets/RefinementList.js","components/Error/NoResults.tsx","components/Error/NoResultsBoundary.tsx","components/Error/ServerError.tsx","../node_modules/instantsearch.js/es/lib/utils/isEqual.js","../node_modules/instantsearch.js/es/lib/utils/serializer.js","../node_modules/instantsearch.js/es/lib/utils/createSendEventForHits.js","../node_modules/instantsearch.js/es/lib/utils/hits-absolute-position.js","../node_modules/instantsearch.js/es/lib/utils/hits-query-id.js","../node_modules/instantsearch.js/es/lib/utils/isIndexWidget.js","../node_modules/instantsearch.js/es/lib/utils/walkIndex.js","../node_modules/instantsearch.js/es/connectors/infinite-hits/connectInfiniteHits.js","../node_modules/react-instantsearch-hooks/dist/es/connectors/useInfiniteHits.js","hooks/useScroll.ts","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/material/styles/cssUtils.js","../node_modules/@mui/material/Skeleton/skeletonClasses.js","../node_modules/@mui/material/Skeleton/Skeleton.js","context/RefineProvider.tsx","../node_modules/timezones-ical-library/dist/mjs/index.js","../node_modules/add-to-calendar-button/dist/module/index.js","components/ButtonCalendar.tsx","components/BadgeLevel.tsx","components/Avatar.tsx","../node_modules/i18next/dist/esm/i18next.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../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/createClass.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","languages/i18n.ts","utility/dateUtils.ts","components/EventCardContent.tsx","components/EventCard.tsx","components/DescriptionCard.tsx","components/SpeakerCard.tsx","components/VideoCard.tsx","components/CustomHits.tsx","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.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/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-big-calendar/node_modules/clsx/dist/clsx.m.js","../node_modules/date-arithmetic/index.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/lodash-es/_baseSlice.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/toFinite.js","../node_modules/lodash-es/toInteger.js","../node_modules/lodash-es/chunk.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/dom-helpers/esm/isWindow.js","../node_modules/dom-helpers/esm/isDocument.js","../node_modules/dom-helpers/esm/getScrollAccessor.js","../node_modules/dom-helpers/esm/scrollLeft.js","../node_modules/dom-helpers/esm/scrollTop.js","../node_modules/dom-helpers/esm/offset.js","../node_modules/dom-helpers/esm/offsetParent.js","../node_modules/dom-helpers/esm/position.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/animationFrame.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/react-overlays/esm/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/react-overlays/esm/usePopper.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/react-overlays/esm/ownerDocument.js","../node_modules/react-overlays/esm/safeFindDOMNode.js","../node_modules/react-overlays/esm/useRootClose.js","../node_modules/react-overlays/esm/useWaitForDOMRef.js","../node_modules/react-overlays/esm/mergeOptionsWithPopperConfig.js","../node_modules/react-overlays/esm/Overlay.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/isEqual.js","../node_modules/dom-helpers/esm/height.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/matches.js","../node_modules/dom-helpers/esm/closest.js","../node_modules/lodash-es/_baseFindIndex.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/findIndex.js","../node_modules/lodash-es/_baseRange.js","../node_modules/lodash-es/_createRange.js","../node_modules/lodash-es/range.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/lodash-es/_isFlattenable.js","../node_modules/lodash-es/_baseFlatten.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/_baseSortBy.js","../node_modules/lodash-es/_compareAscending.js","../node_modules/lodash-es/_compareMultiple.js","../node_modules/lodash-es/_baseOrderBy.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/sortBy.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/dom-helpers/esm/width.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/last.js","../node_modules/lodash-es/_parent.js","../node_modules/lodash-es/_baseUnset.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_customOmitClone.js","../node_modules/lodash-es/flatten.js","../node_modules/lodash-es/omit.js","../node_modules/lodash-es/_flatRest.js","../node_modules/lodash-es/defaults.js","../node_modules/lodash-es/transform.js","../node_modules/lodash-es/mapValues.js","../node_modules/react-big-calendar/dist/react-big-calendar.esm.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/uncontrollable/lib/esm/uncontrollable.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","components/Agenda.tsx","components/AgendaView.tsx","../node_modules/instantsearch.js/es/lib/utils/find.js","../node_modules/instantsearch.js/es/lib/utils/getRefinements.js","../node_modules/instantsearch.js/es/lib/utils/escapeFacetValue.js","../node_modules/instantsearch.js/es/connectors/current-refinements/connectCurrentRefinements.js","components/CustomCurrentRefinements.tsx","../node_modules/react-instantsearch-hooks/dist/es/connectors/useCurrentRefinements.js","components/BadgeRefinement.tsx","components/PrimaryContent.tsx","hooks/useWindowSize.ts","../node_modules/instantsearch.js/es/helpers/get-insights-anonymous-user-token.js","../node_modules/instantsearch.js/es/lib/utils/safelyRunOnBrowser.js","../node_modules/instantsearch.js/es/middlewares/createInsightsMiddleware.js","../node_modules/instantsearch.js/es/lib/utils/render-args.js","../node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js","../node_modules/instantsearch.js/es/lib/routers/history.js","../node_modules/instantsearch.js/es/lib/stateMappings/simple.js","../node_modules/instantsearch.js/es/middlewares/createRouterMiddleware.js","../node_modules/instantsearch.js/es/lib/utils/mergeSearchParameters.js","../node_modules/instantsearch.js/es/lib/utils/findIndex.js","../node_modules/instantsearch.js/es/lib/utils/uniq.js","../node_modules/instantsearch.js/es/widgets/index/index.js","../node_modules/instantsearch.js/es/lib/utils/resolveSearchParameters.js","../node_modules/instantsearch.js/es/lib/suit.js","../node_modules/instantsearch.js/es/lib/utils/getPropertyByPath.js","../node_modules/instantsearch.js/es/helpers/highlight.js","../node_modules/instantsearch.js/es/lib/utils/concatHighlightedParts.js","../node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js","../node_modules/instantsearch.js/es/lib/utils/reverseHighlightedParts.js","../node_modules/instantsearch.js/es/helpers/reverseHighlight.js","../node_modules/instantsearch.js/es/helpers/snippet.js","../node_modules/instantsearch.js/es/helpers/reverseSnippet.js","../node_modules/instantsearch.js/es/helpers/insights.js","../node_modules/instantsearch.js/es/lib/createHelpers.js","../node_modules/instantsearch.js/es/lib/formatNumber.js","../node_modules/instantsearch.js/es/lib/utils/defer.js","../node_modules/instantsearch.js/es/lib/utils/setIndexHelperState.js","../node_modules/instantsearch.js/es/lib/InstantSearch.js","../node_modules/instantsearch.js/es/lib/version.js","../node_modules/instantsearch.js/es/lib/utils/getAppIdAndApiKey.js","../node_modules/react-instantsearch-hooks/dist/es/lib/InstantSearchSSRContext.js","../node_modules/react-instantsearch-hooks/dist/es/version.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useForceUpdate.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchApi.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchSSRContext.js","../node_modules/react-instantsearch-hooks/dist/es/components/InstantSearch.js","../node_modules/instantsearch.js/es/connectors/configure/connectConfigure.js","../node_modules/react-instantsearch-hooks/dist/es/components/Configure.js","../node_modules/react-instantsearch-hooks/dist/es/connectors/useConfigure.js","components/Panel.tsx","components/Sidebar.tsx","App.tsx","index.tsx"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\n// EventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, isBrowser as i, useTheme as u, withEmotionCache as w };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1H7V2c0-.55-.45-1-1-1s-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 18H5c-.55 0-1-.45-1-1V8h16v12c0 .55-.45 1-1 1z\"\n}), 'CalendarTodayRounded');\nexports.default = _default;","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)([/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m12 2-5.5 9h11z\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"circle\", {\n cx: \"17.5\",\n cy: \"17.5\",\n r: \"4.5\"\n}, \"1\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 13.5h8v8H3z\"\n}, \"2\")], 'Category');\nexports.default = _default;","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'ChevronRight');\nexports.default = _default;","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\nexports.default = _default;","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"\n}), 'Event');\nexports.default = _default;","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M4 18h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm0-5h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM3 7c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1z\"\n}), 'MenuRounded');\nexports.default = _default;","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M4 9h4v11H4zm0-5h4v4H4zm6 3h4v4h-4zm6 3h4v4h-4zm0 5h4v5h-4zm-6-3h4v8h-4z\"\n}), 'StackedBarChart');\nexports.default = _default;","\"use strict\";\n'use client';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M10 15l5.19-3L10 9v6m11.56-7.83c.13.47.22 1.1.28 1.9.07.8.1 1.49.1 2.09L22 12c0 2.19-.16 3.8-.44 4.83-.25.9-.83 1.48-1.73 1.73-.47.13-1.33.22-2.65.28-1.3.07-2.49.1-3.59.1L12 19c-4.19 0-6.8-.16-7.83-.44-.9-.25-1.48-.83-1.73-1.73-.13-.47-.22-1.1-.28-1.9-.07-.8-.1-1.49-.1-2.09L2 12c0-2.19.16-3.8.44-4.83.25-.9.83-1.48 1.73-1.73.47-.13 1.33-.22 2.65-.28 1.3-.07 2.49-.1 3.59-.1L12 5c4.19 0 6.8.16 7.83.44.9.25 1.48.83 1.73 1.73z\"\n}), 'YouTube');\nexports.default = _default;","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport { deepmerge } from '@mui/utils';\nimport { darken, getContrastRatio, lighten } from '@mui/system';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport { deepmerge } from '@mui/utils';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport { createTheme as systemCreateTheme, unstable_defaultSxConfig as defaultSxConfig, unstable_styleFunctionSx as styleFunctionSx } from '@mui/system';\nimport generateUtilityClass from '../generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","export default '$$material';","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"variant\"];\nimport { unstable_capitalize as capitalize } from '@mui/utils';\nfunction isEmpty(string) {\n return string.length === 0;\n}\n\n/**\n * Generates string classKey based on the properties provided. It starts with the\n * variant if defined, and then it appends all other properties in alphabetical order.\n * @param {object} props - the properties for which the classKey should be created.\n */\nexport default function propsToClassKey(props) {\n const {\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n let classKey = variant || '';\n Object.keys(other).sort().forEach(key => {\n if (key === 'color') {\n classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);\n } else {\n classKey += `${isEmpty(classKey) ? key : capitalize(key)}${capitalize(props[key].toString())}`;\n }\n });\n return classKey;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nimport styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';\nimport { getDisplayName, unstable_capitalize as capitalize, isPlainObject, deepmerge } from '@mui/utils';\nimport createTheme from './createTheme';\nimport propsToClassKey from './propsToClassKey';\nimport styleFunctionSx from './styleFunctionSx';\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\nconst getStyleOverrides = (name, theme) => {\n if (theme.components && theme.components[name] && theme.components[name].styleOverrides) {\n return theme.components[name].styleOverrides;\n }\n return null;\n};\nconst transformVariants = variants => {\n const variantsStyles = {};\n if (variants) {\n variants.forEach(definition => {\n const key = propsToClassKey(definition.props);\n variantsStyles[key] = definition.style;\n });\n }\n return variantsStyles;\n};\nconst getVariantStyles = (name, theme) => {\n let variants = [];\n if (theme && theme.components && theme.components[name] && theme.components[name].variants) {\n variants = theme.components[name].variants;\n }\n return transformVariants(variants);\n};\nconst variantsResolver = (props, styles, variants) => {\n const {\n ownerState = {}\n } = props;\n const variantsStyles = [];\n if (variants) {\n variants.forEach(variant => {\n let isMatch = true;\n Object.keys(variant.props).forEach(key => {\n if (ownerState[key] !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n if (isMatch) {\n variantsStyles.push(styles[propsToClassKey(variant.props)]);\n }\n });\n }\n return variantsStyles;\n};\nconst themeVariantsResolver = (props, styles, theme, name) => {\n var _theme$components;\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[name]) == null ? void 0 : _theme$components.variants;\n return variantsResolver(props, styles, themeVariants);\n};\n\n// Update /system/styled/#api in case if this changes\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nconst muiStyledFunctionResolver = ({\n styledArg,\n props,\n defaultTheme,\n themeId\n}) => {\n const resolvedStyles = styledArg(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n let optionalVariants;\n if (resolvedStyles && resolvedStyles.variants) {\n optionalVariants = resolvedStyles.variants;\n delete resolvedStyles.variants;\n }\n if (optionalVariants) {\n const variantsStyles = variantsResolver(props, transformVariants(optionalVariants), optionalVariants);\n return [resolvedStyles, ...variantsStyles];\n }\n return resolvedStyles;\n};\nexport default function createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return styleFunctionSx(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const muiStyledResolver = (styleArg, ...expressions) => {\n const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg) {\n return props => muiStyledFunctionResolver({\n styledArg: stylesArg,\n props,\n defaultTheme,\n themeId\n });\n }\n if (isPlainObject(stylesArg)) {\n let transformedStylesArg = stylesArg;\n let styledArgVariants;\n if (stylesArg && stylesArg.variants) {\n styledArgVariants = stylesArg.variants;\n delete transformedStylesArg.variants;\n transformedStylesArg = props => {\n let result = stylesArg;\n const variantStyles = variantsResolver(props, transformVariants(styledArgVariants), styledArgVariants);\n variantStyles.forEach(variantStyle => {\n result = deepmerge(result, variantStyle);\n });\n return result;\n };\n }\n return transformedStylesArg;\n }\n return stylesArg;\n }) : [];\n let transformedStyleArg = styleArg;\n if (isPlainObject(styleArg)) {\n let styledArgVariants;\n if (styleArg && styleArg.variants) {\n styledArgVariants = styleArg.variants;\n delete transformedStyleArg.variants;\n transformedStyleArg = props => {\n let result = styleArg;\n const variantStyles = variantsResolver(props, transformVariants(styledArgVariants), styledArgVariants);\n variantStyles.forEach(variantStyle => {\n result = deepmerge(result, variantStyle);\n });\n return result;\n };\n }\n } else if (typeof styleArg === 'function' &&\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n styleArg.__emotion_real !== styleArg) {\n // If the type is function, we need to define the default theme.\n transformedStyleArg = props => muiStyledFunctionResolver({\n styledArg: styleArg,\n props,\n defaultTheme,\n themeId\n });\n }\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n const styleOverrides = getStyleOverrides(componentName, theme);\n if (styleOverrides) {\n const resolvedStyleOverrides = {};\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {\n theme\n })) : slotStyle;\n });\n return overridesResolver(props, resolvedStyleOverrides);\n }\n return null;\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n return themeVariantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${capitalize(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","'use client';\n\nimport { createStyled, shouldForwardProp } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport const rootShouldForwardProp = prop => shouldForwardProp(prop) && prop !== 'classes';\nexport const slotShouldForwardProp = shouldForwardProp;\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","/**\n * @mui/styled-engine v5.14.18\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","import { internal_resolveProps as resolveProps } from '@mui/utils';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n return resolveProps(theme.components[name].defaultProps, props);\n}","'use client';\n\nimport * as React from 'react';\nimport { ThemeContext } from '@mui/styled-engine';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","'use client';\n\nimport createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","'use client';\n\nimport { useThemeProps as systemUseThemeProps } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport default function useThemeProps({\n props,\n name\n}) {\n return systemUseThemeProps({\n props,\n name,\n defaultTheme,\n themeId: THEME_ID\n });\n}","'use client';\n\nimport getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme,\n themeId\n}) {\n let theme = useTheme(defaultTheme);\n if (themeId) {\n theme = theme[themeId] || theme;\n }\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nexport default capitalize;","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n // the will define the property that has `currentColor`\n // e.g. heroicons uses fill=\"none\" and stroke=\"currentColor\"\n fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox,\n hasSvgAsChild\n });\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, hasSvgAsChild && children.props, {\n ownerState: ownerState,\n children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import { unstable_debounce as debounce } from '@mui/utils';\nexport default debounce;","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","import { unstable_deprecatedPropType as deprecatedPropType } from '@mui/utils';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import { unstable_isMuiElement as isMuiElement } from '@mui/utils';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n var _muiName, _element$type;\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import { unstable_ownerDocument as ownerDocument } from '@mui/utils';\nexport default ownerDocument;","import { unstable_ownerWindow as ownerWindow } from '@mui/utils';\nexport default ownerWindow;","import ownerDocument from '../ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import { unstable_requirePropFactory as requirePropFactory } from '@mui/utils';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","'use client';\n\nimport { unstable_useId as useId } from '@mui/utils';\nexport default useId;","import { unstable_unsupportedProp as unsupportedProp } from '@mui/utils';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\nimport { unstable_useControlled as useControlled } from '@mui/utils';\nexport default useControlled;","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n // tslint:disable-next-line:ban-comma-operator\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport { unstable_useEventCallback as useEventCallback } from '@mui/utils';\nexport default useEventCallback;","'use client';\n\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nexport default useForkRef;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nlet hadFocusVisibleRecentlyTimeout;\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(() => {\n hadFocusVisibleRecently = false;\n }, 100);\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","'use client';\n\nimport { unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nexport default useIsFocusVisible;","'use client';\n\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/ClassNameGenerator';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport { deepmerge } from '@mui/utils';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\n\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\n/* eslint-disable @typescript-eslint/naming-convention */\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return Math.min(Math.max(min, value), max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nexport function hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : _formatMuiErrorMessage(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : _formatMuiErrorMessage(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nexport const colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexport const private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexport function recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nexport function getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nexport function getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nexport function private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nexport function private_safeEmphasize(color, coefficient, warning) {\n try {\n return private_safeEmphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n/* tslint:disable:unified-signatures */\n/* tslint:enable:unified-signatures */\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import { deepmerge } from '@mui/utils';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\n\nexport default merge;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nexport const border = style({\n prop: 'border',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderTop = style({\n prop: 'borderTop',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderRight = style({\n prop: 'borderRight',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderBottom = style({\n prop: 'borderBottom',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderLeft = style({\n prop: 'borderLeft',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderColor = style({\n prop: 'borderColor',\n themeKey: 'palette'\n});\nexport const borderTopColor = style({\n prop: 'borderTopColor',\n themeKey: 'palette'\n});\nexport const borderRightColor = style({\n prop: 'borderRightColor',\n themeKey: 'palette'\n});\nexport const borderBottomColor = style({\n prop: 'borderBottomColor',\n themeKey: 'palette'\n});\nexport const borderLeftColor = style({\n prop: 'borderLeftColor',\n themeKey: 'palette'\n});\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import _formatMuiErrorMessage from \"../formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function isPlainObject(item) {\n return item !== null && typeof item === 'object' && item.constructor === Object;\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import ClassNameGenerator from '../ClassNameGenerator';\n\n// If GlobalStateSlot is changed, GLOBAL_STATE_CLASSES in\n// \\packages\\api-docs-builder\\utils\\parseSlotsAndClasses.ts must be updated accordingly.\nconst globalStateClassesMapping = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClassesMapping[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","!function(globals) {\n'use strict'\n\nvar convertHex = {\n bytesToHex: function(bytes) {\n /*if (typeof bytes.byteLength != 'undefined') {\n var newBytes = []\n\n if (typeof bytes.buffer != 'undefined')\n bytes = new DataView(bytes.buffer)\n else\n bytes = new DataView(bytes)\n\n for (var i = 0; i < bytes.byteLength; ++i) {\n newBytes.push(bytes.getUint8(i))\n }\n bytes = newBytes\n }*/\n return arrBytesToHex(bytes)\n },\n hexToBytes: function(hex) {\n if (hex.length % 2 === 1) throw new Error(\"hexToBytes can't have a string with an odd number of characters.\")\n if (hex.indexOf('0x') === 0) hex = hex.slice(2)\n return hex.match(/../g).map(function(x) { return parseInt(x,16) })\n }\n}\n\n\n// PRIVATE\n\nfunction arrBytesToHex(bytes) {\n return bytes.map(function(x) { return padLeft(x.toString(16),2) }).join('')\n}\n\nfunction padLeft(orig, len) {\n if (orig.length > len) return orig\n return Array(len - orig.length + 1).join('0') + orig\n}\n\n\nif (typeof module !== 'undefined' && module.exports) { //CommonJS\n module.exports = convertHex\n} else {\n globals.convertHex = convertHex\n}\n\n}(this);","!function(globals) {\n'use strict'\n\nvar convertString = {\n bytesToString: function(bytes) {\n return bytes.map(function(x){ return String.fromCharCode(x) }).join('')\n },\n stringToBytes: function(str) {\n return str.split('').map(function(x) { return x.charCodeAt(0) })\n }\n}\n\n//http://hossa.in/2012/07/20/utf-8-in-javascript.html\nconvertString.UTF8 = {\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(convertString.bytesToString(bytes)))\n },\n stringToBytes: function(str) {\n return convertString.stringToBytes(unescape(encodeURIComponent(str)))\n }\n}\n\nif (typeof module !== 'undefined' && module.exports) { //CommonJS\n module.exports = convertString\n} else {\n globals.convertString = convertString\n}\n\n}(this);","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrAfter=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_minMax=n()}(this,(function(){\"use strict\";return function(e,n,t){var i=function(e,n){if(!n||!n.length||1===n.length&&!n[0]||1===n.length&&Array.isArray(n[0])&&!n[0].length)return null;var t;1===n.length&&n[0].length>0&&(n=n[0]);t=(n=n.filter((function(e){return e})))[0];for(var i=1;i} SearchParameters.refinementList.RefinementList\n */\n\nvar defaultsPure = require('../functions/defaultsPure');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar omit = require('../functions/omit');\n\nvar lib = {\n /**\n * Adds a refinement to a RefinementList\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement, if the value is not a string it will be converted\n * @return {RefinementList} a new and updated refinement list\n */\n addRefinement: function addRefinement(refinementList, attribute, value) {\n if (lib.isRefined(refinementList, attribute, value)) {\n return refinementList;\n }\n\n var valueAsString = '' + value;\n\n var facetRefinement = !refinementList[attribute]\n ? [valueAsString]\n : refinementList[attribute].concat(valueAsString);\n\n var mod = {};\n\n mod[attribute] = facetRefinement;\n\n return defaultsPure({}, mod, refinementList);\n },\n /**\n * Removes refinement(s) for an attribute:\n * - if the value is specified removes the refinement for the value on the attribute\n * - if no value is specified removes all the refinements for this attribute\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} [value] the value of the refinement\n * @return {RefinementList} a new and updated refinement lst\n */\n removeRefinement: function removeRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined) {\n // we use the \"filter\" form of clearRefinement, since it leaves empty values as-is\n // the form with a string will remove the attribute completely\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f;\n });\n }\n\n var valueAsString = '' + value;\n\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f && valueAsString === v;\n });\n },\n /**\n * Toggles the refinement value for an attribute.\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement\n * @return {RefinementList} a new and updated list\n */\n toggleRefinement: function toggleRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined)\n throw new Error('toggleRefinement should be used with a value');\n\n if (lib.isRefined(refinementList, attribute, value)) {\n return lib.removeRefinement(refinementList, attribute, value);\n }\n\n return lib.addRefinement(refinementList, attribute, value);\n },\n /**\n * Clear all or parts of a RefinementList. Depending on the arguments, three\n * kinds of behavior can happen:\n * - if no attribute is provided: clears the whole list\n * - if an attribute is provided as a string: clears the list for the specific attribute\n * - if an attribute is provided as a function: discards the elements for which the function returns true\n * @param {RefinementList} refinementList the initial list\n * @param {string} [attribute] the attribute or function to discard\n * @param {string} [refinementType] optional parameter to give more context to the attribute function\n * @return {RefinementList} a new and updated refinement list\n */\n clearRefinement: function clearRefinement(\n refinementList,\n attribute,\n refinementType\n ) {\n if (attribute === undefined) {\n // return the same object if the list is already empty\n // this is mainly for tests, as it doesn't have much impact on performance\n if (!objectHasKeys(refinementList)) {\n return refinementList;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(refinementList, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n\n var newRefinementList = Object.keys(refinementList).reduce(function (\n memo,\n key\n ) {\n var values = refinementList[key] || [];\n var facetList = values.filter(function (value) {\n return !attribute(value, key, refinementType);\n });\n\n if (facetList.length !== values.length) {\n hasChanged = true;\n }\n\n memo[key] = facetList;\n\n return memo;\n },\n {});\n\n if (hasChanged) return newRefinementList;\n return refinementList;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\n },\n /**\n * Test if the refinement value is used for the attribute. If no refinement value\n * is provided, test if the refinementList contains any refinement for the\n * given attribute.\n * @param {RefinementList} refinementList the list of refinement\n * @param {string} attribute name of the attribute\n * @param {string} [refinementValue] value of the filter/refinement\n * @return {boolean} true if the attribute is refined, false otherwise\n */\n isRefined: function isRefined(refinementList, attribute, refinementValue) {\n var containsRefinements =\n Boolean(refinementList[attribute]) &&\n refinementList[attribute].length > 0;\n\n if (refinementValue === undefined || !containsRefinements) {\n return containsRefinements;\n }\n\n var refinementValueAsString = '' + refinementValue;\n\n return refinementList[attribute].indexOf(refinementValueAsString) !== -1;\n },\n};\n\nmodule.exports = lib;\n","'use strict';\n\nvar defaultsPure = require('../functions/defaultsPure');\nvar find = require('../functions/find');\nvar intersection = require('../functions/intersection');\nvar merge = require('../functions/merge');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar omit = require('../functions/omit');\nvar valToNumber = require('../functions/valToNumber');\nvar isValidUserToken = require('../utils/isValidUserToken');\n\nvar RefinementList = require('./RefinementList');\n\n/**\n * isEqual, but only for numeric refinement values, possible values:\n * - 5\n * - [5]\n * - [[5]]\n * - [[5,5],[4]]\n * @param {any} a numeric refinement value\n * @param {any} b numeric refinement value\n * @return {boolean} true if the values are equal\n */\nfunction isEqualNumericRefinement(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return (\n a.length === b.length &&\n a.every(function (el, i) {\n return isEqualNumericRefinement(b[i], el);\n })\n );\n }\n return a === b;\n}\n\n/**\n * like _.find but using deep equality to be able to use it\n * to find arrays.\n * @private\n * @param {any[]} array array to search into (elements are base or array of base)\n * @param {any} searchedValue the value we're looking for (base or array of base)\n * @return {any} the searched value or undefined\n */\nfunction findArray(array, searchedValue) {\n return find(array, function (currentValue) {\n return isEqualNumericRefinement(currentValue, searchedValue);\n });\n}\n\n/**\n * The facet list is the structure used to store the list of values used to\n * filter a single attribute.\n * @typedef {string[]} SearchParameters.FacetList\n */\n\n/**\n * Structure to store numeric filters with the operator as the key. The supported operators\n * are `=`, `>`, `<`, `>=`, `<=` and `!=`.\n * @typedef {Object.>} SearchParameters.OperatorList\n */\n\n/**\n * SearchParameters is the data structure that contains all the information\n * usable for making a search to Algolia API. It doesn't do the search itself,\n * nor does it contains logic about the parameters.\n * It is an immutable object, therefore it has been created in a way that each\n * changes does not change the object itself but returns a copy with the\n * modification.\n * This object should probably not be instantiated outside of the helper. It will\n * be provided when needed. This object is documented for reference as you'll\n * get it from events generated by the {@link AlgoliaSearchHelper}.\n * If need be, instantiate the Helper from the factory function {@link SearchParameters.make}\n * @constructor\n * @classdesc contains all the parameters of a search\n * @param {object|SearchParameters} newParameters existing parameters or partial object\n * for the properties of a new SearchParameters\n * @see SearchParameters.make\n * @example SearchParameters of the first query in\n * the instant search demo\n{\n \"query\": \"\",\n \"disjunctiveFacets\": [\n \"customerReviewCount\",\n \"category\",\n \"salePrice_range\",\n \"manufacturer\"\n ],\n \"maxValuesPerFacet\": 30,\n \"page\": 0,\n \"hitsPerPage\": 10,\n \"facets\": [\n \"type\",\n \"shipping\"\n ]\n}\n */\nfunction SearchParameters(newParameters) {\n var params = newParameters\n ? SearchParameters._parseNumbers(newParameters)\n : {};\n\n if (params.userToken !== undefined && !isValidUserToken(params.userToken)) {\n // eslint-disable-next-line no-console\n console.warn(\n '[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\\n - Format: [a-zA-Z0-9_-]{1,64}'\n );\n }\n /**\n * This attribute contains the list of all the conjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.facets = params.facets || [];\n /**\n * This attribute contains the list of all the disjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.disjunctiveFacets = params.disjunctiveFacets || [];\n /**\n * This attribute contains the list of all the hierarchical facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * Hierarchical facets are a sub type of disjunctive facets that\n * let you filter faceted attributes hierarchically.\n * @member {string[]|object[]}\n */\n this.hierarchicalFacets = params.hierarchicalFacets || [];\n\n // Refinements\n /**\n * This attribute contains all the filters that need to be\n * applied on the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsRefinements = params.facetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * excluded from the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters excluded for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsExcludes = params.facetsExcludes || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the disjunctive facets. Each facet must be properly\n * defined in the `disjunctiveFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.disjunctiveFacetsRefinements = params.disjunctiveFacetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the numeric attributes.\n *\n * The key is the name of the attribute, and the value is the\n * filters to apply to this attribute.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `numericFilters` attribute.\n * @member {Object.}\n */\n this.numericRefinements = params.numericRefinements || {};\n /**\n * This attribute contains all the tags used to refine the query.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `tagFilters` attribute.\n * @member {string[]}\n */\n this.tagRefinements = params.tagRefinements || [];\n /**\n * This attribute contains all the filters that need to be\n * applied on the hierarchical facets. Each facet must be properly\n * defined in the `hierarchicalFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name. The FacetList values\n * are structured as a string that contain the values for each level\n * separated by the configured separator.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.hierarchicalFacetsRefinements =\n params.hierarchicalFacetsRefinements || {};\n\n // eslint-disable-next-line consistent-this\n var self = this;\n Object.keys(params).forEach(function (paramName) {\n var isKeyKnown = SearchParameters.PARAMETERS.indexOf(paramName) !== -1;\n var isValueDefined = params[paramName] !== undefined;\n\n if (!isKeyKnown && isValueDefined) {\n self[paramName] = params[paramName];\n }\n });\n}\n\n/**\n * List all the properties in SearchParameters and therefore all the known Algolia properties\n * This doesn't contain any beta/hidden features.\n * @private\n */\nSearchParameters.PARAMETERS = Object.keys(new SearchParameters());\n\n/**\n * @private\n * @param {object} partialState full or part of a state\n * @return {object} a new object with the number keys as number\n */\nSearchParameters._parseNumbers = function (partialState) {\n // Do not parse numbers again in SearchParameters, they ought to be parsed already\n if (partialState instanceof SearchParameters) return partialState;\n\n var numbers = {};\n\n var numberKeys = [\n 'aroundPrecision',\n 'aroundRadius',\n 'getRankingInfo',\n 'minWordSizefor2Typos',\n 'minWordSizefor1Typo',\n 'page',\n 'maxValuesPerFacet',\n 'distinct',\n 'minimumAroundRadius',\n 'hitsPerPage',\n 'minProximity',\n ];\n\n numberKeys.forEach(function (k) {\n var value = partialState[k];\n if (typeof value === 'string') {\n var parsedValue = parseFloat(value);\n // global isNaN is ok to use here, value is only number or NaN\n numbers[k] = isNaN(parsedValue) ? value : parsedValue;\n }\n });\n\n // there's two formats of insideBoundingBox, we need to parse\n // the one which is an array of float geo rectangles\n if (Array.isArray(partialState.insideBoundingBox)) {\n numbers.insideBoundingBox = partialState.insideBoundingBox.map(function (\n geoRect\n ) {\n if (Array.isArray(geoRect)) {\n return geoRect.map(function (value) {\n return parseFloat(value);\n });\n }\n return geoRect;\n });\n }\n\n if (partialState.numericRefinements) {\n var numericRefinements = {};\n Object.keys(partialState.numericRefinements).forEach(function (attribute) {\n var operators = partialState.numericRefinements[attribute] || {};\n numericRefinements[attribute] = {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator];\n var parsedValues = values.map(function (v) {\n if (Array.isArray(v)) {\n return v.map(function (vPrime) {\n if (typeof vPrime === 'string') {\n return parseFloat(vPrime);\n }\n return vPrime;\n });\n } else if (typeof v === 'string') {\n return parseFloat(v);\n }\n return v;\n });\n numericRefinements[attribute][operator] = parsedValues;\n });\n });\n numbers.numericRefinements = numericRefinements;\n }\n\n return merge({}, partialState, numbers);\n};\n\n/**\n * Factory for SearchParameters\n * @param {object|SearchParameters} newParameters existing parameters or partial\n * object for the properties of a new SearchParameters\n * @return {SearchParameters} frozen instance of SearchParameters\n */\nSearchParameters.make = function makeSearchParameters(newParameters) {\n var instance = new SearchParameters(newParameters);\n\n var hierarchicalFacets = newParameters.hierarchicalFacets || [];\n hierarchicalFacets.forEach(function (facet) {\n if (facet.rootPath) {\n var currentRefinement = instance.getHierarchicalRefinement(facet.name);\n\n if (\n currentRefinement.length > 0 &&\n currentRefinement[0].indexOf(facet.rootPath) !== 0\n ) {\n instance = instance.clearRefinements(facet.name);\n }\n\n // get it again in case it has been cleared\n currentRefinement = instance.getHierarchicalRefinement(facet.name);\n if (currentRefinement.length === 0) {\n instance = instance.toggleHierarchicalFacetRefinement(\n facet.name,\n facet.rootPath\n );\n }\n }\n });\n\n return instance;\n};\n\n/**\n * Validates the new parameters based on the previous state\n * @param {SearchParameters} currentState the current state\n * @param {object|SearchParameters} parameters the new parameters to set\n * @return {Error|null} Error if the modification is invalid, null otherwise\n */\nSearchParameters.validate = function (currentState, parameters) {\n var params = parameters || {};\n\n if (\n currentState.tagFilters &&\n params.tagRefinements &&\n params.tagRefinements.length > 0\n ) {\n return new Error(\n '[Tags] Cannot switch from the managed tag API to the advanced API. It is probably ' +\n 'an error, if it is really what you want, you should first clear the tags with clearTags method.'\n );\n }\n\n if (currentState.tagRefinements.length > 0 && params.tagFilters) {\n return new Error(\n '[Tags] Cannot switch from the advanced tag API to the managed API. It is probably ' +\n 'an error, if it is not, you should first clear the tags with clearTags method.'\n );\n }\n\n if (\n currentState.numericFilters &&\n params.numericRefinements &&\n objectHasKeys(params.numericRefinements)\n ) {\n return new Error(\n \"[Numeric filters] Can't switch from the advanced to the managed API. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.'\n );\n }\n\n if (objectHasKeys(currentState.numericRefinements) && params.numericFilters) {\n return new Error(\n \"[Numeric filters] Can't switch from the managed API to the advanced. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.'\n );\n }\n\n return null;\n};\n\nSearchParameters.prototype = {\n constructor: SearchParameters,\n\n /**\n * Remove all refinements (disjunctive + conjunctive + excludes + numeric filters)\n * @method\n * @param {undefined|string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {SearchParameters} new instance with filters cleared\n */\n clearRefinements: function clearRefinements(attribute) {\n var patch = {\n numericRefinements: this._clearNumericRefinements(attribute),\n facetsRefinements: RefinementList.clearRefinement(\n this.facetsRefinements,\n attribute,\n 'conjunctiveFacet'\n ),\n facetsExcludes: RefinementList.clearRefinement(\n this.facetsExcludes,\n attribute,\n 'exclude'\n ),\n disjunctiveFacetsRefinements: RefinementList.clearRefinement(\n this.disjunctiveFacetsRefinements,\n attribute,\n 'disjunctiveFacet'\n ),\n hierarchicalFacetsRefinements: RefinementList.clearRefinement(\n this.hierarchicalFacetsRefinements,\n attribute,\n 'hierarchicalFacet'\n ),\n };\n if (\n patch.numericRefinements === this.numericRefinements &&\n patch.facetsRefinements === this.facetsRefinements &&\n patch.facetsExcludes === this.facetsExcludes &&\n patch.disjunctiveFacetsRefinements ===\n this.disjunctiveFacetsRefinements &&\n patch.hierarchicalFacetsRefinements === this.hierarchicalFacetsRefinements\n ) {\n return this;\n }\n return this.setQueryParameters(patch);\n },\n /**\n * Remove all the refined tags from the SearchParameters\n * @method\n * @return {SearchParameters} new instance with tags cleared\n */\n clearTags: function clearTags() {\n if (this.tagFilters === undefined && this.tagRefinements.length === 0)\n return this;\n\n return this.setQueryParameters({\n tagFilters: undefined,\n tagRefinements: [],\n });\n },\n /**\n * Set the index.\n * @method\n * @param {string} index the index name\n * @return {SearchParameters} new instance\n */\n setIndex: function setIndex(index) {\n if (index === this.index) return this;\n\n return this.setQueryParameters({\n index: index,\n });\n },\n /**\n * Query setter\n * @method\n * @param {string} newQuery value for the new query\n * @return {SearchParameters} new instance\n */\n setQuery: function setQuery(newQuery) {\n if (newQuery === this.query) return this;\n\n return this.setQueryParameters({\n query: newQuery,\n });\n },\n /**\n * Page setter\n * @method\n * @param {number} newPage new page number\n * @return {SearchParameters} new instance\n */\n setPage: function setPage(newPage) {\n if (newPage === this.page) return this;\n\n return this.setQueryParameters({\n page: newPage,\n });\n },\n /**\n * Facets setter\n * The facets are the simple facets, used for conjunctive (and) faceting.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for conjunctive faceting\n * @return {SearchParameters} new instance\n */\n setFacets: function setFacets(facets) {\n return this.setQueryParameters({\n facets: facets,\n });\n },\n /**\n * Disjunctive facets setter\n * Change the list of disjunctive (or) facets the helper chan handle.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for disjunctive faceting\n * @return {SearchParameters} new instance\n */\n setDisjunctiveFacets: function setDisjunctiveFacets(facets) {\n return this.setQueryParameters({\n disjunctiveFacets: facets,\n });\n },\n /**\n * HitsPerPage setter\n * Hits per page represents the number of hits retrieved for this query\n * @method\n * @param {number} n number of hits retrieved per page of results\n * @return {SearchParameters} new instance\n */\n setHitsPerPage: function setHitsPerPage(n) {\n if (this.hitsPerPage === n) return this;\n\n return this.setQueryParameters({\n hitsPerPage: n,\n });\n },\n /**\n * typoTolerance setter\n * Set the value of typoTolerance\n * @method\n * @param {string} typoTolerance new value of typoTolerance (\"true\", \"false\", \"min\" or \"strict\")\n * @return {SearchParameters} new instance\n */\n setTypoTolerance: function setTypoTolerance(typoTolerance) {\n if (this.typoTolerance === typoTolerance) return this;\n\n return this.setQueryParameters({\n typoTolerance: typoTolerance,\n });\n },\n /**\n * Add a numeric filter for a given attribute\n * When value is an array, they are combined with OR\n * When value is a single value, it will combined with AND\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} operator operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number | number[]} value value of the filter\n * @return {SearchParameters} new instance\n * @example\n * // for price = 50 or 40\n * state.addNumericRefinement('price', '=', [50, 40]);\n * @example\n * // for size = 38 and 40\n * state.addNumericRefinement('size', '=', 38);\n * state.addNumericRefinement('size', '=', 40);\n */\n addNumericRefinement: function (attribute, operator, value) {\n var val = valToNumber(value);\n\n if (this.isNumericRefined(attribute, operator, val)) return this;\n\n var mod = merge({}, this.numericRefinements);\n\n mod[attribute] = merge({}, mod[attribute]);\n\n if (mod[attribute][operator]) {\n // Array copy\n mod[attribute][operator] = mod[attribute][operator].slice();\n // Add the element. Concat can't be used here because value can be an array.\n mod[attribute][operator].push(val);\n } else {\n mod[attribute][operator] = [val];\n }\n\n return this.setQueryParameters({\n numericRefinements: mod,\n });\n },\n /**\n * Get the list of conjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getConjunctiveRefinements: function (facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsRefinements[facetName] || [];\n },\n /**\n * Get the list of disjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getDisjunctiveRefinements: function (facetName) {\n if (!this.isDisjunctiveFacet(facetName)) {\n return [];\n }\n return this.disjunctiveFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of hierarchical refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getHierarchicalRefinement: function (facetName) {\n // we send an array but we currently do not support multiple\n // hierarchicalRefinements for a hierarchicalFacet\n return this.hierarchicalFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of exclude refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getExcludeRefinements: function (facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsExcludes[facetName] || [];\n },\n\n /**\n * Remove all the numeric filter for a given (attribute, operator)\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} [operator] operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number} [number] the value to be removed\n * @return {SearchParameters} new instance\n */\n removeNumericRefinement: function (attribute, operator, number) {\n var paramValue = number;\n if (paramValue !== undefined) {\n if (!this.isNumericRefined(attribute, operator, paramValue)) {\n return this;\n }\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (\n value,\n key\n ) {\n return (\n key === attribute &&\n value.op === operator &&\n isEqualNumericRefinement(value.val, valToNumber(paramValue))\n );\n }),\n });\n } else if (operator !== undefined) {\n if (!this.isNumericRefined(attribute, operator)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (\n value,\n key\n ) {\n return key === attribute && value.op === operator;\n }),\n });\n }\n\n if (!this.isNumericRefined(attribute)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (value, key) {\n return key === attribute;\n }),\n });\n },\n /**\n * Get the list of numeric refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {SearchParameters.OperatorList} list of refinements\n */\n getNumericRefinements: function (facetName) {\n return this.numericRefinements[facetName] || {};\n },\n /**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\n getNumericRefinement: function (attribute, operator) {\n return (\n this.numericRefinements[attribute] &&\n this.numericRefinements[attribute][operator]\n );\n },\n /**\n * Clear numeric filters.\n * @method\n * @private\n * @param {string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {Object.} new numeric refinements\n */\n _clearNumericRefinements: function _clearNumericRefinements(attribute) {\n if (attribute === undefined) {\n if (!objectHasKeys(this.numericRefinements)) {\n return this.numericRefinements;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(this.numericRefinements, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n var numericRefinements = this.numericRefinements;\n var newNumericRefinements = Object.keys(numericRefinements).reduce(\n function (memo, key) {\n var operators = numericRefinements[key];\n var operatorList = {};\n\n operators = operators || {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator] || [];\n var outValues = [];\n values.forEach(function (value) {\n var predicateResult = attribute(\n { val: value, op: operator },\n key,\n 'numeric'\n );\n if (!predicateResult) outValues.push(value);\n });\n if (outValues.length !== values.length) {\n hasChanged = true;\n }\n operatorList[operator] = outValues;\n });\n\n memo[key] = operatorList;\n\n return memo;\n },\n {}\n );\n\n if (hasChanged) return newNumericRefinements;\n return this.numericRefinements;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\n },\n /**\n * Add a facet to the facets attribute of the helper configuration, if it\n * isn't already present.\n * @method\n * @param {string} facet facet name to add\n * @return {SearchParameters} new instance\n */\n addFacet: function addFacet(facet) {\n if (this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n facets: this.facets.concat([facet]),\n });\n },\n /**\n * Add a disjunctive facet to the disjunctiveFacets attribute of the helper\n * configuration, if it isn't already present.\n * @method\n * @param {string} facet disjunctive facet name to add\n * @return {SearchParameters} new instance\n */\n addDisjunctiveFacet: function addDisjunctiveFacet(facet) {\n if (this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.concat([facet]),\n });\n },\n /**\n * Add a hierarchical facet to the hierarchicalFacets attribute of the helper\n * configuration.\n * @method\n * @param {object} hierarchicalFacet hierarchical facet to add\n * @return {SearchParameters} new instance\n * @throws will throw an error if a hierarchical facet with the same name was already declared\n */\n addHierarchicalFacet: function addHierarchicalFacet(hierarchicalFacet) {\n if (this.isHierarchicalFacet(hierarchicalFacet.name)) {\n throw new Error(\n 'Cannot declare two hierarchical facets with the same name: `' +\n hierarchicalFacet.name +\n '`'\n );\n }\n\n return this.setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.concat([hierarchicalFacet]),\n });\n },\n /**\n * Add a refinement on a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addFacetRefinement: function addFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (RefinementList.isRefined(this.facetsRefinements, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.addRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Exclude a value from a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the exclusion on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addExcludeRefinement: function addExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (RefinementList.isRefined(this.facetsExcludes, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.addRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Adds a refinement on a disjunctive facet.\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addDisjunctiveFacetRefinement: function addDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n\n if (\n RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)\n )\n return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.addRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * addTagRefinement adds a tag to the list used to filter the results\n * @param {string} tag tag to be added\n * @return {SearchParameters} new instance\n */\n addTagRefinement: function addTagRefinement(tag) {\n if (this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.concat(tag),\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Remove a facet from the facets attribute of the helper configuration, if it\n * is present.\n * @method\n * @param {string} facet facet name to remove\n * @return {SearchParameters} new instance\n */\n removeFacet: function removeFacet(facet) {\n if (!this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n facets: this.facets.filter(function (f) {\n return f !== facet;\n }),\n });\n },\n /**\n * Remove a disjunctive facet from the disjunctiveFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet disjunctive facet name to remove\n * @return {SearchParameters} new instance\n */\n removeDisjunctiveFacet: function removeDisjunctiveFacet(facet) {\n if (!this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.filter(function (f) {\n return f !== facet;\n }),\n });\n },\n /**\n * Remove a hierarchical facet from the hierarchicalFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet hierarchical facet name to remove\n * @return {SearchParameters} new instance\n */\n removeHierarchicalFacet: function removeHierarchicalFacet(facet) {\n if (!this.isHierarchicalFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.filter(function (f) {\n return f.name !== facet;\n }),\n });\n },\n /**\n * Remove a refinement set on facet. If a value is provided, it will clear the\n * refinement for the given value, otherwise it will clear all the refinement\n * values for the faceted attribute.\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} [value] value used to filter\n * @return {SearchParameters} new instance\n */\n removeFacetRefinement: function removeFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (!RefinementList.isRefined(this.facetsRefinements, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.removeRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a negative refinement on a facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters} new instance\n */\n removeExcludeRefinement: function removeExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (!RefinementList.isRefined(this.facetsExcludes, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.removeRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a refinement on a disjunctive facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters} new instance\n */\n removeDisjunctiveFacetRefinement: function removeDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n if (\n !RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)\n )\n return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.removeRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a tag from the list of tag refinements\n * @method\n * @param {string} tag the tag to remove\n * @return {SearchParameters} new instance\n */\n removeTagRefinement: function removeTagRefinement(tag) {\n if (!this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.filter(function (t) {\n return t !== tag;\n }),\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters} new instance\n * @throws will throw an error if the facet is not declared in the settings of the helper\n * @deprecated since version 2.19.0, see {@link SearchParameters#toggleFacetRefinement}\n */\n toggleRefinement: function toggleRefinement(facet, value) {\n return this.toggleFacetRefinement(facet, value);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters} new instance\n * @throws will throw an error if the facet is not declared in the settings of the helper\n */\n toggleFacetRefinement: function toggleFacetRefinement(facet, value) {\n if (this.isHierarchicalFacet(facet)) {\n return this.toggleHierarchicalFacetRefinement(facet, value);\n } else if (this.isConjunctiveFacet(facet)) {\n return this.toggleConjunctiveFacetRefinement(facet, value);\n } else if (this.isDisjunctiveFacet(facet)) {\n return this.toggleDisjunctiveFacetRefinement(facet, value);\n }\n\n throw new Error(\n 'Cannot refine the undeclared facet ' +\n facet +\n '; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets'\n );\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleConjunctiveFacetRefinement: function toggleConjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.toggleRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleExcludeFacetRefinement: function toggleExcludeFacetRefinement(\n facet,\n value\n ) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.toggleRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleDisjunctiveFacetRefinement: function toggleDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.toggleRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleHierarchicalFacetRefinement: function toggleHierarchicalFacetRefinement(\n facet,\n value\n ) {\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the hierarchicalFacets attribute of the helper configuration'\n );\n }\n\n var separator = this._getHierarchicalFacetSeparator(\n this.getHierarchicalFacetByName(facet)\n );\n\n var mod = {};\n\n var upOneOrMultipleLevel =\n this.hierarchicalFacetsRefinements[facet] !== undefined &&\n this.hierarchicalFacetsRefinements[facet].length > 0 &&\n // remove current refinement:\n // refinement was 'beer > IPA', call is toggleRefine('beer > IPA'), refinement should be `beer`\n (this.hierarchicalFacetsRefinements[facet][0] === value ||\n // remove a parent refinement of the current refinement:\n // - refinement was 'beer > IPA > Flying dog'\n // - call is toggleRefine('beer > IPA')\n // - refinement should be `beer`\n this.hierarchicalFacetsRefinements[facet][0].indexOf(\n value + separator\n ) === 0);\n\n if (upOneOrMultipleLevel) {\n if (value.indexOf(separator) === -1) {\n // go back to root level\n mod[facet] = [];\n } else {\n mod[facet] = [value.slice(0, value.lastIndexOf(separator))];\n }\n } else {\n mod[facet] = [value];\n }\n\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n {},\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n\n /**\n * Adds a refinement on a hierarchical facet.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is refined\n */\n addHierarchicalFacetRefinement: function (facet, path) {\n if (this.isHierarchicalFacetRefined(facet)) {\n throw new Error(facet + ' is already refined.');\n }\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the hierarchicalFacets attribute of the helper configuration.'\n );\n }\n var mod = {};\n mod[facet] = [path];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n {},\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n\n /**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is not refined\n */\n removeHierarchicalFacetRefinement: function (facet) {\n if (!this.isHierarchicalFacetRefined(facet)) {\n return this;\n }\n var mod = {};\n mod[facet] = [];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n {},\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n /**\n * Switch the tag refinement\n * @method\n * @param {string} tag the tag to remove or add\n * @return {SearchParameters} new instance\n */\n toggleTagRefinement: function toggleTagRefinement(tag) {\n if (this.isTagRefined(tag)) {\n return this.removeTagRefinement(tag);\n }\n\n return this.addTagRefinement(tag);\n },\n /**\n * Test if the facet name is from one of the disjunctive facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean} true if facet is a disjunctive facet\n */\n isDisjunctiveFacet: function (facet) {\n return this.disjunctiveFacets.indexOf(facet) > -1;\n },\n /**\n * Test if the facet name is from one of the hierarchical facets\n * @method\n * @param {string} facetName facet name to test\n * @return {boolean} true if facetName is a hierarchical facet\n */\n isHierarchicalFacet: function (facetName) {\n return this.getHierarchicalFacetByName(facetName) !== undefined;\n },\n /**\n * Test if the facet name is from one of the conjunctive/normal facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean} true if facet is a conjunctive facet\n */\n isConjunctiveFacet: function (facet) {\n return this.facets.indexOf(facet) > -1;\n },\n /**\n * Returns true if the facet is refined, either for a specific value or in\n * general.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value, optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isFacetRefined: function isFacetRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsRefinements, facet, value);\n },\n /**\n * Returns true if the facet contains exclusions or if a specific value is\n * excluded.\n *\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isExcludeRefined: function isExcludeRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsExcludes, facet, value);\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean} true if the facet is refined\n */\n isDisjunctiveFacetRefined: function isDisjunctiveFacetRefined(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n );\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean} true if the facet is refined\n */\n isHierarchicalFacetRefined: function isHierarchicalFacetRefined(\n facet,\n value\n ) {\n if (!this.isHierarchicalFacet(facet)) {\n return false;\n }\n\n var refinements = this.getHierarchicalRefinement(facet);\n\n if (!value) {\n return refinements.length > 0;\n }\n\n return refinements.indexOf(value) !== -1;\n },\n /**\n * Test if the triple (attribute, operator, value) is already refined.\n * If only the attribute and the operator are provided, it tests if the\n * contains any refinement value.\n * @method\n * @param {string} attribute attribute for which the refinement is applied\n * @param {string} [operator] operator of the refinement\n * @param {string} [value] value of the refinement\n * @return {boolean} true if it is refined\n */\n isNumericRefined: function isNumericRefined(attribute, operator, value) {\n if (value === undefined && operator === undefined) {\n return Boolean(this.numericRefinements[attribute]);\n }\n\n var isOperatorDefined =\n this.numericRefinements[attribute] &&\n this.numericRefinements[attribute][operator] !== undefined;\n\n if (value === undefined || !isOperatorDefined) {\n return isOperatorDefined;\n }\n\n var parsedValue = valToNumber(value);\n var isAttributeValueDefined =\n findArray(this.numericRefinements[attribute][operator], parsedValue) !==\n undefined;\n\n return isOperatorDefined && isAttributeValueDefined;\n },\n /**\n * Returns true if the tag refined, false otherwise\n * @method\n * @param {string} tag the tag to check\n * @return {boolean} true if tag is refined\n */\n isTagRefined: function isTagRefined(tag) {\n return this.tagRefinements.indexOf(tag) !== -1;\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]} returns the list of refinements\n */\n getRefinedDisjunctiveFacets: function getRefinedDisjunctiveFacets() {\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // attributes used for numeric filter can also be disjunctive\n var disjunctiveNumericRefinedFacets = intersection(\n Object.keys(this.numericRefinements).filter(function (facet) {\n return Object.keys(self.numericRefinements[facet]).length > 0;\n }),\n this.disjunctiveFacets\n );\n\n return Object.keys(this.disjunctiveFacetsRefinements)\n .filter(function (facet) {\n return self.disjunctiveFacetsRefinements[facet].length > 0;\n })\n .concat(disjunctiveNumericRefinedFacets)\n .concat(this.getRefinedHierarchicalFacets())\n .sort();\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]} returns the list of refinements\n */\n getRefinedHierarchicalFacets: function getRefinedHierarchicalFacets() {\n // eslint-disable-next-line consistent-this\n var self = this;\n return intersection(\n // enforce the order between the two arrays,\n // so that refinement name index === hierarchical facet index\n this.hierarchicalFacets.map(function (facet) {\n return facet.name;\n }),\n Object.keys(this.hierarchicalFacetsRefinements).filter(function (facet) {\n return self.hierarchicalFacetsRefinements[facet].length > 0;\n })\n ).sort();\n },\n /**\n * Returned the list of all disjunctive facets not refined\n * @method\n * @return {string[]} returns the list of facets that are not refined\n */\n getUnrefinedDisjunctiveFacets: function () {\n var refinedFacets = this.getRefinedDisjunctiveFacets();\n\n return this.disjunctiveFacets.filter(function (f) {\n return refinedFacets.indexOf(f) === -1;\n });\n },\n\n managedParameters: [\n 'index',\n\n 'facets',\n 'disjunctiveFacets',\n 'facetsRefinements',\n 'hierarchicalFacets',\n 'facetsExcludes',\n\n 'disjunctiveFacetsRefinements',\n 'numericRefinements',\n 'tagRefinements',\n 'hierarchicalFacetsRefinements',\n ],\n\n getQueryParams: function getQueryParams() {\n var managedParameters = this.managedParameters;\n\n var queryParams = {};\n\n // eslint-disable-next-line consistent-this\n var self = this;\n Object.keys(this).forEach(function (paramName) {\n var paramValue = self[paramName];\n if (\n managedParameters.indexOf(paramName) === -1 &&\n paramValue !== undefined\n ) {\n queryParams[paramName] = paramValue;\n }\n });\n\n return queryParams;\n },\n /**\n * Let the user set a specific value for a given parameter. Will return the\n * same instance if the parameter is invalid or if the value is the same as the\n * previous one.\n * @method\n * @param {string} parameter the parameter name\n * @param {any} value the value to be set, must be compliant with the definition\n * of the attribute on the object\n * @return {SearchParameters} the updated state\n */\n setQueryParameter: function setParameter(parameter, value) {\n if (this[parameter] === value) return this;\n\n var modification = {};\n\n modification[parameter] = value;\n\n return this.setQueryParameters(modification);\n },\n /**\n * Let the user set any of the parameters with a plain object.\n * @method\n * @param {object} params all the keys and the values to be updated\n * @return {SearchParameters} a new updated instance\n */\n setQueryParameters: function setQueryParameters(params) {\n if (!params) return this;\n\n var error = SearchParameters.validate(this, params);\n\n if (error) {\n throw error;\n }\n\n // eslint-disable-next-line consistent-this\n var self = this;\n var nextWithNumbers = SearchParameters._parseNumbers(params);\n var previousPlainObject = Object.keys(this).reduce(function (acc, key) {\n acc[key] = self[key];\n return acc;\n }, {});\n\n var nextPlainObject = Object.keys(nextWithNumbers).reduce(function (\n previous,\n key\n ) {\n var isPreviousValueDefined = previous[key] !== undefined;\n var isNextValueDefined = nextWithNumbers[key] !== undefined;\n\n if (isPreviousValueDefined && !isNextValueDefined) {\n return omit(previous, [key]);\n }\n\n if (isNextValueDefined) {\n previous[key] = nextWithNumbers[key];\n }\n\n return previous;\n },\n previousPlainObject);\n\n return new this.constructor(nextPlainObject);\n },\n\n /**\n * Returns a new instance with the page reset. Two scenarios possible:\n * the page is omitted -> return the given instance\n * the page is set -> return a new instance with a page of 0\n * @return {SearchParameters} a new updated instance\n */\n resetPage: function () {\n if (this.page === undefined) {\n return this;\n }\n\n return this.setPage(0);\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSortBy: function (hierarchicalFacet) {\n return hierarchicalFacet.sortBy || ['isRefined:desc', 'name:asc'];\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSeparator: function (hierarchicalFacet) {\n return hierarchicalFacet.separator || ' > ';\n },\n\n /**\n * Helper function to get the hierarchicalFacet prefix path or null\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.rootPath or null as default\n */\n _getHierarchicalRootPath: function (hierarchicalFacet) {\n return hierarchicalFacet.rootPath || null;\n },\n\n /**\n * Helper function to check if we show the parent level of the hierarchicalFacet\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.showParentLevel or true as default\n */\n _getHierarchicalShowParentLevel: function (hierarchicalFacet) {\n if (typeof hierarchicalFacet.showParentLevel === 'boolean') {\n return hierarchicalFacet.showParentLevel;\n }\n return true;\n },\n\n /**\n * Helper function to get the hierarchicalFacet by it's name\n * @param {string} hierarchicalFacetName the hierarchicalFacet name\n * @return {object} a hierarchicalFacet\n */\n getHierarchicalFacetByName: function (hierarchicalFacetName) {\n return find(this.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacetName;\n });\n },\n\n /**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\n getHierarchicalFacetBreadcrumb: function (facetName) {\n if (!this.isHierarchicalFacet(facetName)) {\n return [];\n }\n\n var refinement = this.getHierarchicalRefinement(facetName)[0];\n if (!refinement) return [];\n\n var separator = this._getHierarchicalFacetSeparator(\n this.getHierarchicalFacetByName(facetName)\n );\n var path = refinement.split(separator);\n return path.map(function (part) {\n return part.trim();\n });\n },\n\n toString: function () {\n return JSON.stringify(this, null, 2);\n },\n};\n\n/**\n * Callback used for clearRefinement method\n * @callback SearchParameters.clearCallback\n * @param {OperatorList|FacetList} value the value of the filter\n * @param {string} key the current attribute name\n * @param {string} type `numeric`, `disjunctiveFacet`, `conjunctiveFacet`, `hierarchicalFacet` or `exclude`\n * depending on the type of facet\n * @return {boolean} `true` if the element should be removed. `false` otherwise.\n */\nmodule.exports = SearchParameters;\n","'use strict';\n\nmodule.exports = generateTrees;\n\nvar fv = require('../functions/escapeFacetValue');\nvar find = require('../functions/find');\nvar prepareHierarchicalFacetSortBy = require('../functions/formatSort');\nvar orderBy = require('../functions/orderBy');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nfunction generateTrees(state) {\n return function generate(hierarchicalFacetResult, hierarchicalFacetIndex) {\n var hierarchicalFacet = state.hierarchicalFacets[hierarchicalFacetIndex];\n var hierarchicalFacetRefinement =\n (state.hierarchicalFacetsRefinements[hierarchicalFacet.name] &&\n state.hierarchicalFacetsRefinements[hierarchicalFacet.name][0]) ||\n '';\n var hierarchicalSeparator =\n state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var hierarchicalRootPath =\n state._getHierarchicalRootPath(hierarchicalFacet);\n var hierarchicalShowParentLevel =\n state._getHierarchicalShowParentLevel(hierarchicalFacet);\n var sortBy = prepareHierarchicalFacetSortBy(\n state._getHierarchicalFacetSortBy(hierarchicalFacet)\n );\n\n var rootExhaustive = hierarchicalFacetResult.every(function (facetResult) {\n return facetResult.exhaustive;\n });\n\n var generateTreeFn = generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n hierarchicalFacetRefinement\n );\n\n var results = hierarchicalFacetResult;\n\n if (hierarchicalRootPath) {\n results = hierarchicalFacetResult.slice(\n hierarchicalRootPath.split(hierarchicalSeparator).length\n );\n }\n\n return results.reduce(generateTreeFn, {\n name: state.hierarchicalFacets[hierarchicalFacetIndex].name,\n count: null, // root level, no count\n isRefined: true, // root level, always refined\n path: null, // root level, no path\n escapedValue: null,\n exhaustive: rootExhaustive,\n data: null,\n });\n };\n}\n\nfunction generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n currentRefinement\n) {\n return function generateTree(\n hierarchicalTree,\n hierarchicalFacetResult,\n currentHierarchicalLevel\n ) {\n var parent = hierarchicalTree;\n\n if (currentHierarchicalLevel > 0) {\n var level = 0;\n\n parent = hierarchicalTree;\n\n while (level < currentHierarchicalLevel) {\n /**\n * @type {object[]]} hierarchical data\n */\n var data = parent && Array.isArray(parent.data) ? parent.data : [];\n parent = find(data, function (subtree) {\n return subtree.isRefined;\n });\n level++;\n }\n }\n\n // we found a refined parent, let's add current level data under it\n if (parent) {\n // filter values in case an object has multiple categories:\n // {\n // categories: {\n // level0: ['beers', 'bières'],\n // level1: ['beers > IPA', 'bières > Belges']\n // }\n // }\n //\n // If parent refinement is `beers`, then we do not want to have `bières > Belges`\n // showing up\n\n var picked = Object.keys(hierarchicalFacetResult.data)\n .map(function (facetValue) {\n return [facetValue, hierarchicalFacetResult.data[facetValue]];\n })\n .filter(function (tuple) {\n var facetValue = tuple[0];\n return onlyMatchingTree(\n facetValue,\n parent.path || hierarchicalRootPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n );\n });\n\n parent.data = orderBy(\n picked.map(function (tuple) {\n var facetValue = tuple[0];\n var facetCount = tuple[1];\n\n return format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n unescapeFacetValue(currentRefinement),\n hierarchicalFacetResult.exhaustive\n );\n }),\n sortBy[0],\n sortBy[1]\n );\n }\n\n return hierarchicalTree;\n };\n}\n\n// eslint-disable-next-line max-params\nfunction onlyMatchingTree(\n facetValue,\n parentPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n) {\n // we want the facetValue is a child of hierarchicalRootPath\n if (\n hierarchicalRootPath &&\n (facetValue.indexOf(hierarchicalRootPath) !== 0 ||\n hierarchicalRootPath === facetValue)\n ) {\n return false;\n }\n\n // we always want root levels (only when there is no prefix path)\n return (\n (!hierarchicalRootPath &&\n facetValue.indexOf(hierarchicalSeparator) === -1) ||\n // if there is a rootPath, being root level mean 1 level under rootPath\n (hierarchicalRootPath &&\n facetValue.split(hierarchicalSeparator).length -\n hierarchicalRootPath.split(hierarchicalSeparator).length ===\n 1) ||\n // if current refinement is a root level and current facetValue is a root level,\n // keep the facetValue\n (facetValue.indexOf(hierarchicalSeparator) === -1 &&\n currentRefinement.indexOf(hierarchicalSeparator) === -1) ||\n // currentRefinement is a child of the facet value\n currentRefinement.indexOf(facetValue) === 0 ||\n // facetValue is a child of the current parent, add it\n (facetValue.indexOf(parentPath + hierarchicalSeparator) === 0 &&\n (hierarchicalShowParentLevel ||\n facetValue.indexOf(currentRefinement) === 0))\n );\n}\n\nfunction format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n currentRefinement,\n exhaustive\n) {\n var parts = facetValue.split(hierarchicalSeparator);\n return {\n name: parts[parts.length - 1].trim(),\n path: facetValue,\n escapedValue: escapeFacetValue(facetValue),\n count: facetCount,\n isRefined:\n currentRefinement === facetValue ||\n currentRefinement.indexOf(facetValue + hierarchicalSeparator) === 0,\n exhaustive: exhaustive,\n data: null,\n };\n}\n","'use strict';\n\nvar compact = require('../functions/compact');\nvar defaultsPure = require('../functions/defaultsPure');\nvar fv = require('../functions/escapeFacetValue');\nvar find = require('../functions/find');\nvar findIndex = require('../functions/findIndex');\nvar formatSort = require('../functions/formatSort');\nvar merge = require('../functions/merge');\nvar orderBy = require('../functions/orderBy');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nvar generateHierarchicalTree = require('./generate-hierarchical-tree');\n\n/**\n * @typedef SearchResults.Facet\n * @type {object}\n * @property {string} name name of the attribute in the record\n * @property {object} data the faceting data: value, number of entries\n * @property {object} stats undefined unless facet_stats is retrieved from algolia\n */\n\n/**\n * @typedef SearchResults.HierarchicalFacet\n * @type {object}\n * @property {string} name name of the current value given the hierarchical level, trimmed.\n * If root node, you get the facet name\n * @property {number} count number of objects matching this hierarchical value\n * @property {string} path the current hierarchical value full path\n * @property {boolean} isRefined `true` if the current value was refined, `false` otherwise\n * @property {HierarchicalFacet[]} data sub values for the current level\n */\n\n/**\n * @typedef SearchResults.FacetValue\n * @type {object}\n * @property {string} name the facet value itself\n * @property {number} count times this facet appears in the results\n * @property {boolean} isRefined is the facet currently selected\n * @property {boolean} isExcluded is the facet currently excluded (only for conjunctive facets)\n */\n\n/**\n * @typedef Refinement\n * @type {object}\n * @property {string} type the type of filter used:\n * `numeric`, `facet`, `exclude`, `disjunctive`, `hierarchical`\n * @property {string} attributeName name of the attribute used for filtering\n * @property {string} name the value of the filter\n * @property {number} numericValue the value as a number. Only for numeric filters.\n * @property {string} operator the operator used. Only for numeric filters.\n * @property {number} count the number of computed hits for this filter. Only on facets.\n * @property {boolean} exhaustive if the count is exhaustive\n */\n\n/**\n * Turn an array of attributes in an object of attributes with their position in the array as value\n * @param {string[]} attributes the list of attributes in the record\n * @return {object} the list of attributes indexed by attribute name\n */\nfunction getIndices(attributes) {\n var indices = {};\n\n attributes.forEach(function (val, idx) {\n indices[val] = idx;\n });\n\n return indices;\n}\n\nfunction assignFacetStats(dest, facetStats, key) {\n if (facetStats && facetStats[key]) {\n dest.stats = facetStats[key];\n }\n}\n\n/**\n * @typedef {Object} HierarchicalFacet\n * @property {string} name\n * @property {string[]} attributes\n */\n\n/**\n * @param {HierarchicalFacet[]} hierarchicalFacets All hierarchical facets\n * @param {string} hierarchicalAttributeName The name of the hierarchical attribute\n * @return {HierarchicalFacet} The hierarchical facet matching the attribute name\n */\nfunction findMatchingHierarchicalFacetFromAttributeName(\n hierarchicalFacets,\n hierarchicalAttributeName\n) {\n return find(\n hierarchicalFacets,\n function facetKeyMatchesAttribute(hierarchicalFacet) {\n var facetNames = hierarchicalFacet.attributes || [];\n return facetNames.indexOf(hierarchicalAttributeName) > -1;\n }\n );\n}\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * Constructor for SearchResults\n * @class\n * @classdesc SearchResults contains the results of a query to Algolia using the\n * {@link AlgoliaSearchHelper}.\n * @param {SearchParameters} state state that led to the response\n * @param {array.} results the results from algolia client\n * @example SearchResults of the first query in\n * the instant search demo\n{\n \"hitsPerPage\": 10,\n \"processingTimeMS\": 2,\n \"facets\": [\n {\n \"name\": \"type\",\n \"data\": {\n \"HardGood\": 6627,\n \"BlackTie\": 550,\n \"Music\": 665,\n \"Software\": 131,\n \"Game\": 456,\n \"Movie\": 1571\n },\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"Free shipping\": 5507\n },\n \"name\": \"shipping\"\n }\n ],\n \"hits\": [\n {\n \"thumbnailImage\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_54x108_s.gif\",\n \"_highlightResult\": {\n \"shortDescription\": {\n \"matchLevel\": \"none\",\n \"value\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"matchedWords\": []\n },\n \"category\": {\n \"matchLevel\": \"none\",\n \"value\": \"Computer Security Software\",\n \"matchedWords\": []\n },\n \"manufacturer\": {\n \"matchedWords\": [],\n \"value\": \"Webroot\",\n \"matchLevel\": \"none\"\n },\n \"name\": {\n \"value\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"matchedWords\": [],\n \"matchLevel\": \"none\"\n }\n },\n \"image\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_105x210_sc.jpg\",\n \"shipping\": \"Free shipping\",\n \"bestSellingRank\": 4,\n \"shortDescription\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"url\": \"http://www.bestbuy.com/site/webroot-secureanywhere-internet-security-3-devi…d=1219060687969&skuId=1688832&cmp=RMX&ky=2d3GfEmNIzjA0vkzveHdZEBgpPCyMnLTJ\",\n \"name\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"category\": \"Computer Security Software\",\n \"salePrice_range\": \"1 - 50\",\n \"objectID\": \"1688832\",\n \"type\": \"Software\",\n \"customerReviewCount\": 5980,\n \"salePrice\": 49.99,\n \"manufacturer\": \"Webroot\"\n },\n ....\n ],\n \"nbHits\": 10000,\n \"disjunctiveFacets\": [\n {\n \"exhaustive\": false,\n \"data\": {\n \"5\": 183,\n \"12\": 112,\n \"7\": 149,\n ...\n },\n \"name\": \"customerReviewCount\",\n \"stats\": {\n \"max\": 7461,\n \"avg\": 157.939,\n \"min\": 1\n }\n },\n {\n \"data\": {\n \"Printer Ink\": 142,\n \"Wireless Speakers\": 60,\n \"Point & Shoot Cameras\": 48,\n ...\n },\n \"name\": \"category\",\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"> 5000\": 2,\n \"1 - 50\": 6524,\n \"501 - 2000\": 566,\n \"201 - 500\": 1501,\n \"101 - 200\": 1360,\n \"2001 - 5000\": 47\n },\n \"name\": \"salePrice_range\"\n },\n {\n \"data\": {\n \"Dynex™\": 202,\n \"Insignia™\": 230,\n \"PNY\": 72,\n ...\n },\n \"name\": \"manufacturer\",\n \"exhaustive\": false\n }\n ],\n \"query\": \"\",\n \"nbPages\": 100,\n \"page\": 0,\n \"index\": \"bestbuy\"\n}\n **/\nfunction SearchResults(state, results, options) {\n var mainSubResponse = results[0];\n\n this._rawResults = results;\n\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // https://www.algolia.com/doc/api-reference/api-methods/search/#response\n Object.keys(mainSubResponse).forEach(function (key) {\n self[key] = mainSubResponse[key];\n });\n\n // Make every key of the result options reachable from the instance\n Object.keys(options || {}).forEach(function (key) {\n self[key] = options[key];\n });\n\n /**\n * query used to generate the results\n * @name query\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The query as parsed by the engine given all the rules.\n * @name parsedQuery\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * all the records that match the search parameters. Each record is\n * augmented with a new attribute `_highlightResult`\n * which is an object keyed by attribute and with the following properties:\n * - `value` : the value of the facet highlighted (html)\n * - `matchLevel`: `full`, `partial` or `none`, depending on how the query terms match\n * @name hits\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * index where the results come from\n * @name index\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * number of hits per page requested\n * @name hitsPerPage\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of hits of this query on the index\n * @name nbHits\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of pages with respect to the number of hits per page and the total number of hits\n * @name nbPages\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * current page\n * @name page\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The position if the position was guessed by IP.\n * @name aroundLatLng\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"48.8637,2.3615\",\n */\n /**\n * The radius computed by Algolia.\n * @name automaticRadius\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"126792922\",\n */\n /**\n * String identifying the server used to serve this request.\n *\n * getRankingInfo needs to be set to `true` for this to be returned\n *\n * @name serverUsed\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"c7-use-2.algolia.net\",\n */\n /**\n * Boolean that indicates if the computation of the counts did time out.\n * @deprecated\n * @name timeoutCounts\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Boolean that indicates if the computation of the hits did time out.\n * @deprecated\n * @name timeoutHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the counts of the facets is exhaustive\n * @name exhaustiveFacetsCount\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the number of hits is exhaustive\n * @name exhaustiveNbHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Contains the userData if they are set by a [query rule](https://www.algolia.com/doc/guides/query-rules/query-rules-overview/).\n * @name userData\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * queryID is the unique identifier of the query used to generate the current search results.\n * This value is only available if the `clickAnalytics` search parameter is set to `true`.\n * @name queryID\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n\n /**\n * sum of the processing time of all the queries\n * @name processingTimeMS\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n this.processingTimeMS = results.reduce(function (sum, result) {\n return result.processingTimeMS === undefined\n ? sum\n : sum + result.processingTimeMS;\n }, 0);\n\n /**\n * disjunctive facets results\n * @member {SearchResults.Facet[]}\n */\n this.disjunctiveFacets = [];\n /**\n * disjunctive facets results\n * @member {SearchResults.HierarchicalFacet[]}\n */\n this.hierarchicalFacets = state.hierarchicalFacets.map(\n function initFutureTree() {\n return [];\n }\n );\n /**\n * other facets results\n * @member {SearchResults.Facet[]}\n */\n this.facets = [];\n\n var disjunctiveFacets = state.getRefinedDisjunctiveFacets();\n\n var facetsIndices = getIndices(state.facets);\n var disjunctiveFacetsIndices = getIndices(state.disjunctiveFacets);\n var nextDisjunctiveResult = 1;\n\n // Since we send request only for disjunctive facets that have been refined,\n // we get the facets information from the first, general, response.\n\n var mainFacets = mainSubResponse.facets || {};\n\n Object.keys(mainFacets).forEach(function (facetKey) {\n var facetValueObject = mainFacets[facetKey];\n\n var hierarchicalFacet = findMatchingHierarchicalFacetFromAttributeName(\n state.hierarchicalFacets,\n facetKey\n );\n\n if (hierarchicalFacet) {\n // Place the hierarchicalFacet data at the correct index depending on\n // the attributes order that was defined at the helper initialization\n var facetIndex = hierarchicalFacet.attributes.indexOf(facetKey);\n var idxAttributeName = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n self.hierarchicalFacets[idxAttributeName][facetIndex] = {\n attribute: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n } else {\n var isFacetDisjunctive = state.disjunctiveFacets.indexOf(facetKey) !== -1;\n var isFacetConjunctive = state.facets.indexOf(facetKey) !== -1;\n var position;\n\n if (isFacetDisjunctive) {\n position = disjunctiveFacetsIndices[facetKey];\n self.disjunctiveFacets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.disjunctiveFacets[position],\n mainSubResponse.facets_stats,\n facetKey\n );\n }\n if (isFacetConjunctive) {\n position = facetsIndices[facetKey];\n self.facets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.facets[position],\n mainSubResponse.facets_stats,\n facetKey\n );\n }\n }\n });\n\n // Make sure we do not keep holes within the hierarchical facets\n this.hierarchicalFacets = compact(this.hierarchicalFacets);\n\n // aggregate the refined disjunctive facets\n disjunctiveFacets.forEach(function (disjunctiveFacet) {\n var result = results[nextDisjunctiveResult];\n var facets = result && result.facets ? result.facets : {};\n var hierarchicalFacet = state.getHierarchicalFacetByName(disjunctiveFacet);\n\n // There should be only item in facets.\n Object.keys(facets).forEach(function (dfacet) {\n var facetResults = facets[dfacet];\n\n var position;\n\n if (hierarchicalFacet) {\n position = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(\n self.hierarchicalFacets[position],\n function (f) {\n return f.attribute === dfacet;\n }\n );\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n self.hierarchicalFacets[position][attributeIndex].data = merge(\n {},\n self.hierarchicalFacets[position][attributeIndex].data,\n facetResults\n );\n } else {\n position = disjunctiveFacetsIndices[dfacet];\n\n var dataFromMainRequest =\n (mainSubResponse.facets && mainSubResponse.facets[dfacet]) || {};\n\n self.disjunctiveFacets[position] = {\n name: dfacet,\n data: defaultsPure({}, facetResults, dataFromMainRequest),\n exhaustive: result.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.disjunctiveFacets[position],\n result.facets_stats,\n dfacet\n );\n\n if (state.disjunctiveFacetsRefinements[dfacet]) {\n state.disjunctiveFacetsRefinements[dfacet].forEach(function (\n refinementValue\n ) {\n // add the disjunctive refinements if it is no more retrieved\n if (\n !self.disjunctiveFacets[position].data[refinementValue] &&\n state.disjunctiveFacetsRefinements[dfacet].indexOf(\n unescapeFacetValue(refinementValue)\n ) > -1\n ) {\n self.disjunctiveFacets[position].data[refinementValue] = 0;\n }\n });\n }\n }\n });\n nextDisjunctiveResult++;\n });\n\n // if we have some parent level values for hierarchical facets, merge them\n state.getRefinedHierarchicalFacets().forEach(function (refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n // if we are already at a root refinement (or no refinement at all), there is no\n // root level values request\n if (\n currentRefinement.length === 0 ||\n currentRefinement[0].split(separator).length < 2\n ) {\n return;\n }\n\n results.slice(nextDisjunctiveResult).forEach(function (result) {\n var facets = result && result.facets ? result.facets : {};\n\n Object.keys(facets).forEach(function (dfacet) {\n var facetResults = facets[dfacet];\n var position = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(\n self.hierarchicalFacets[position],\n function (f) {\n return f.attribute === dfacet;\n }\n );\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n // when we always get root levels, if the hits refinement is `beers > IPA` (count: 5),\n // then the disjunctive values will be `beers` (count: 100),\n // but we do not want to display\n // | beers (100)\n // > IPA (5)\n // We want\n // | beers (5)\n // > IPA (5)\n var defaultData = {};\n\n if (currentRefinement.length > 0) {\n var root = currentRefinement[0].split(separator)[0];\n defaultData[root] =\n self.hierarchicalFacets[position][attributeIndex].data[root];\n }\n\n self.hierarchicalFacets[position][attributeIndex].data = defaultsPure(\n defaultData,\n facetResults,\n self.hierarchicalFacets[position][attributeIndex].data\n );\n });\n\n nextDisjunctiveResult++;\n });\n });\n\n // add the excludes\n Object.keys(state.facetsExcludes).forEach(function (facetName) {\n var excludes = state.facetsExcludes[facetName];\n var position = facetsIndices[facetName];\n\n self.facets[position] = {\n name: facetName,\n data: mainFacets[facetName],\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n excludes.forEach(function (facetValue) {\n self.facets[position] = self.facets[position] || { name: facetName };\n self.facets[position].data = self.facets[position].data || {};\n self.facets[position].data[facetValue] = 0;\n });\n });\n\n /**\n * @type {Array}\n */\n this.hierarchicalFacets = this.hierarchicalFacets.map(\n generateHierarchicalTree(state)\n );\n\n /**\n * @type {Array}\n */\n this.facets = compact(this.facets);\n /**\n * @type {Array}\n */\n this.disjunctiveFacets = compact(this.disjunctiveFacets);\n\n this._state = state;\n}\n\n/**\n * Get a facet object with its name\n * @deprecated\n * @param {string} name name of the faceted attribute\n * @return {SearchResults.Facet} the facet object\n */\nSearchResults.prototype.getFacetByName = function (name) {\n function predicate(facet) {\n return facet.name === name;\n }\n\n return (\n find(this.facets, predicate) ||\n find(this.disjunctiveFacets, predicate) ||\n find(this.hierarchicalFacets, predicate)\n );\n};\n\n/**\n * Get the facet values of a specified attribute from a SearchResults object.\n * @private\n * @param {SearchResults} results the search results to search in\n * @param {string} attribute name of the faceted attribute to search for\n * @return {array|object} facet values. For the hierarchical facets it is an object.\n */\nfunction extractNormalizedFacetValues(results, attribute) {\n function predicate(facet) {\n return facet.name === attribute;\n }\n\n if (results._state.isConjunctiveFacet(attribute)) {\n var facet = find(results.facets, predicate);\n if (!facet) return [];\n\n return Object.keys(facet.data).map(function (name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: facet.data[name],\n isRefined: results._state.isFacetRefined(attribute, value),\n isExcluded: results._state.isExcludeRefined(attribute, name),\n };\n });\n } else if (results._state.isDisjunctiveFacet(attribute)) {\n var disjunctiveFacet = find(results.disjunctiveFacets, predicate);\n if (!disjunctiveFacet) return [];\n\n return Object.keys(disjunctiveFacet.data).map(function (name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: disjunctiveFacet.data[name],\n isRefined: results._state.isDisjunctiveFacetRefined(attribute, value),\n };\n });\n } else if (results._state.isHierarchicalFacet(attribute)) {\n var hierarchicalFacetValues = find(results.hierarchicalFacets, predicate);\n if (!hierarchicalFacetValues) return hierarchicalFacetValues;\n\n var hierarchicalFacet =\n results._state.getHierarchicalFacetByName(attribute);\n var separator =\n results._state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var currentRefinement = unescapeFacetValue(\n results._state.getHierarchicalRefinement(attribute)[0] || ''\n );\n\n if (currentRefinement.indexOf(hierarchicalFacet.rootPath) === 0) {\n currentRefinement = currentRefinement.replace(\n hierarchicalFacet.rootPath + separator,\n ''\n );\n }\n\n var currentRefinementSplit = currentRefinement.split(separator);\n currentRefinementSplit.unshift(attribute);\n\n setIsRefined(hierarchicalFacetValues, currentRefinementSplit, 0);\n\n return hierarchicalFacetValues;\n }\n\n return undefined;\n}\n\n/**\n * Set the isRefined of a hierarchical facet result based on the current state.\n * @param {SearchResults.HierarchicalFacet} item Hierarchical facet to fix\n * @param {string[]} currentRefinement array of parts of the current hierarchical refinement\n * @param {number} depth recursion depth in the currentRefinement\n * @return {undefined} function mutates the item\n */\nfunction setIsRefined(item, currentRefinement, depth) {\n item.isRefined = item.name === currentRefinement[depth];\n if (item.data) {\n item.data.forEach(function (child) {\n setIsRefined(child, currentRefinement, depth + 1);\n });\n }\n}\n\n/**\n * Sort nodes of a hierarchical or disjunctive facet results\n * @private\n * @param {function} sortFn sort function to apply\n * @param {HierarchicalFacet|Array} node node upon which we want to apply the sort\n * @param {string[]} names attribute names\n * @param {number} [level=0] current index in the names array\n * @return {HierarchicalFacet|Array} sorted node\n */\nfunction recSort(sortFn, node, names, level) {\n level = level || 0;\n\n if (Array.isArray(node)) {\n return sortFn(node, names[level]);\n }\n\n if (!node.data || node.data.length === 0) {\n return node;\n }\n\n var children = node.data.map(function (childNode) {\n return recSort(sortFn, childNode, names, level + 1);\n });\n var sortedChildren = sortFn(children, names[level]);\n var newNode = defaultsPure({ data: sortedChildren }, node);\n return newNode;\n}\n\nSearchResults.DEFAULT_SORT = ['isRefined:desc', 'count:desc', 'name:asc'];\n\nfunction vanillaSortFn(order, data) {\n return data.sort(order);\n}\n\n/**\n * @typedef FacetOrdering\n * @type {Object}\n * @property {string[]} [order]\n * @property {'count' | 'alpha' | 'hidden'} [sortRemainingBy]\n */\n\n/**\n * Sorts facet arrays via their facet ordering\n * @param {Array} facetValues the values\n * @param {FacetOrdering} facetOrdering the ordering\n * @returns {Array} the sorted facet values\n */\nfunction sortViaFacetOrdering(facetValues, facetOrdering) {\n var orderedFacets = [];\n var remainingFacets = [];\n\n var order = facetOrdering.order || [];\n /**\n * an object with the keys being the values in order, the values their index:\n * ['one', 'two'] -> { one: 0, two: 1 }\n */\n var reverseOrder = order.reduce(function (acc, name, i) {\n acc[name] = i;\n return acc;\n }, {});\n\n facetValues.forEach(function (item) {\n // hierarchical facets get sorted using their raw name\n var name = item.path || item.name;\n if (reverseOrder[name] !== undefined) {\n orderedFacets[reverseOrder[name]] = item;\n } else {\n remainingFacets.push(item);\n }\n });\n\n orderedFacets = orderedFacets.filter(function (facet) {\n return facet;\n });\n\n var sortRemainingBy = facetOrdering.sortRemainingBy;\n var ordering;\n if (sortRemainingBy === 'hidden') {\n return orderedFacets;\n } else if (sortRemainingBy === 'alpha') {\n ordering = [\n ['path', 'name'],\n ['asc', 'asc'],\n ];\n } else {\n ordering = [['count'], ['desc']];\n }\n\n return orderedFacets.concat(\n orderBy(remainingFacets, ordering[0], ordering[1])\n );\n}\n\n/**\n * @param {SearchResults} results the search results class\n * @param {string} attribute the attribute to retrieve ordering of\n * @returns {FacetOrdering | undefined} the facet ordering\n */\nfunction getFacetOrdering(results, attribute) {\n return (\n results.renderingContent &&\n results.renderingContent.facetOrdering &&\n results.renderingContent.facetOrdering.values &&\n results.renderingContent.facetOrdering.values[attribute]\n );\n}\n\n/**\n * Get a the list of values for a given facet attribute. Those values are sorted\n * refinement first, descending count (bigger value on top), and name ascending\n * (alphabetical order). The sort formula can overridden using either string based\n * predicates or a function.\n *\n * This method will return all the values returned by the Algolia engine plus all\n * the values already refined. This means that it can happen that the\n * `maxValuesPerFacet` [configuration](https://www.algolia.com/doc/rest-api/search#param-maxValuesPerFacet)\n * might not be respected if you have facet values that are already refined.\n * @param {string} attribute attribute name\n * @param {object} opts configuration options.\n * @param {boolean} [opts.facetOrdering]\n * Force the use of facetOrdering from the result if a sortBy is present. If\n * sortBy isn't present, facetOrdering will be used automatically.\n * @param {Array. | function} opts.sortBy\n * When using strings, it consists of\n * the name of the [FacetValue](#SearchResults.FacetValue) or the\n * [HierarchicalFacet](#SearchResults.HierarchicalFacet) attributes with the\n * order (`asc` or `desc`). For example to order the value by count, the\n * argument would be `['count:asc']`.\n *\n * If only the attribute name is specified, the ordering defaults to the one\n * specified in the default value for this attribute.\n *\n * When not specified, the order is\n * ascending. This parameter can also be a function which takes two facet\n * values and should return a number, 0 if equal, 1 if the first argument is\n * bigger or -1 otherwise.\n *\n * The default value for this attribute `['isRefined:desc', 'count:desc', 'name:asc']`\n * @return {FacetValue[]|HierarchicalFacet|undefined} depending on the type of facet of\n * the attribute requested (hierarchical, disjunctive or conjunctive)\n * @example\n * helper.on('result', function(event){\n * //get values ordered only by name ascending using the string predicate\n * event.results.getFacetValues('city', {sortBy: ['name:asc']});\n * //get values ordered only by count ascending using a function\n * event.results.getFacetValues('city', {\n * // this is equivalent to ['count:asc']\n * sortBy: function(a, b) {\n * if (a.count === b.count) return 0;\n * if (a.count > b.count) return 1;\n * if (b.count > a.count) return -1;\n * }\n * });\n * });\n */\nSearchResults.prototype.getFacetValues = function (attribute, opts) {\n var facetValues = extractNormalizedFacetValues(this, attribute);\n if (!facetValues) {\n return undefined;\n }\n\n var options = defaultsPure({}, opts, {\n sortBy: SearchResults.DEFAULT_SORT,\n // if no sortBy is given, attempt to sort based on facetOrdering\n // if it is given, we still allow to sort via facet ordering first\n facetOrdering: !(opts && opts.sortBy),\n });\n\n // eslint-disable-next-line consistent-this\n var results = this;\n var attributes;\n if (Array.isArray(facetValues)) {\n attributes = [attribute];\n } else {\n var config = results._state.getHierarchicalFacetByName(facetValues.name);\n attributes = config.attributes;\n }\n\n return recSort(\n function (data, facetName) {\n if (options.facetOrdering) {\n var facetOrdering = getFacetOrdering(results, facetName);\n if (facetOrdering) {\n return sortViaFacetOrdering(data, facetOrdering);\n }\n }\n\n if (Array.isArray(options.sortBy)) {\n var order = formatSort(options.sortBy, SearchResults.DEFAULT_SORT);\n return orderBy(data, order[0], order[1]);\n } else if (typeof options.sortBy === 'function') {\n return vanillaSortFn(options.sortBy, data);\n }\n throw new Error(\n 'options.sortBy is optional but if defined it must be ' +\n 'either an array of string (predicates) or a sorting function'\n );\n },\n facetValues,\n attributes\n );\n};\n\n/**\n * Returns the facet stats if attribute is defined and the facet contains some.\n * Otherwise returns undefined.\n * @param {string} attribute name of the faceted attribute\n * @return {object} The stats of the facet\n */\nSearchResults.prototype.getFacetStats = function (attribute) {\n if (this._state.isConjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.facets, attribute);\n } else if (this._state.isDisjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.disjunctiveFacets, attribute);\n }\n\n return undefined;\n};\n\n/**\n * @typedef {Object} FacetListItem\n * @property {string} name\n */\n\n/**\n * @param {FacetListItem[]} facetList (has more items, but enough for here)\n * @param {string} facetName The attribute to look for\n * @return {object|undefined} The stats of the facet\n */\nfunction getFacetStatsIfAvailable(facetList, facetName) {\n var data = find(facetList, function (facet) {\n return facet.name === facetName;\n });\n return data && data.stats;\n}\n\n/**\n * Returns all refinements for all filters + tags. It also provides\n * additional information: count and exhaustiveness for each filter.\n *\n * See the [refinement type](#Refinement) for an exhaustive view of the available\n * data.\n *\n * Note that for a numeric refinement, results are grouped per operator, this\n * means that it will return responses for operators which are empty.\n *\n * @return {Array.} all the refinements\n */\nSearchResults.prototype.getRefinements = function () {\n var state = this._state;\n // eslint-disable-next-line consistent-this\n var results = this;\n var res = [];\n\n Object.keys(state.facetsRefinements).forEach(function (attributeName) {\n state.facetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getRefinement(state, 'facet', attributeName, name, results.facets)\n );\n });\n });\n\n Object.keys(state.facetsExcludes).forEach(function (attributeName) {\n state.facetsExcludes[attributeName].forEach(function (name) {\n res.push(\n getRefinement(state, 'exclude', attributeName, name, results.facets)\n );\n });\n });\n\n Object.keys(state.disjunctiveFacetsRefinements).forEach(function (\n attributeName\n ) {\n state.disjunctiveFacetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getRefinement(\n state,\n 'disjunctive',\n attributeName,\n name,\n results.disjunctiveFacets\n )\n );\n });\n });\n\n Object.keys(state.hierarchicalFacetsRefinements).forEach(function (\n attributeName\n ) {\n state.hierarchicalFacetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getHierarchicalRefinement(\n state,\n attributeName,\n name,\n results.hierarchicalFacets\n )\n );\n });\n });\n\n Object.keys(state.numericRefinements).forEach(function (attributeName) {\n var operators = state.numericRefinements[attributeName];\n Object.keys(operators).forEach(function (operator) {\n operators[operator].forEach(function (value) {\n res.push({\n type: 'numeric',\n attributeName: attributeName,\n name: value,\n numericValue: value,\n operator: operator,\n });\n });\n });\n });\n\n state.tagRefinements.forEach(function (name) {\n res.push({ type: 'tag', attributeName: '_tags', name: name });\n });\n\n return res;\n};\n\n/**\n * @typedef {Object} Facet\n * @property {string} name\n * @property {Object} data\n * @property {boolean} exhaustive\n */\n\n/**\n * @param {SearchParameters} state the current state\n * @param {string} type the type of the refinement\n * @param {string} attributeName The attribute of the facet\n * @param {*} name The name of the facet\n * @param {Facet[]} resultsFacets facets from the results\n * @return {Refinement} the refinement\n */\nfunction getRefinement(state, type, attributeName, name, resultsFacets) {\n var facet = find(resultsFacets, function (f) {\n return f.name === attributeName;\n });\n var count = facet && facet.data && facet.data[name] ? facet.data[name] : 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n\n return {\n type: type,\n attributeName: attributeName,\n name: name,\n count: count,\n exhaustive: exhaustive,\n };\n}\n\n/**\n * @param {SearchParameters} state the current state\n * @param {string} attributeName the attribute of the hierarchical facet\n * @param {string} name the name of the facet\n * @param {Facet[]} resultsFacets facets from the results\n * @return {HierarchicalFacet} the hierarchical facet\n */\nfunction getHierarchicalRefinement(state, attributeName, name, resultsFacets) {\n var facetDeclaration = state.getHierarchicalFacetByName(attributeName);\n var separator = state._getHierarchicalFacetSeparator(facetDeclaration);\n var split = name.split(separator);\n var rootFacet = find(resultsFacets, function (facet) {\n return facet.name === attributeName;\n });\n\n var facet = split.reduce(function (intermediateFacet, part) {\n var newFacet =\n intermediateFacet &&\n find(intermediateFacet.data, function (f) {\n return f.name === part;\n });\n return newFacet !== undefined ? newFacet : intermediateFacet;\n }, rootFacet);\n\n var count = (facet && facet.count) || 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n var path = (facet && facet.path) || '';\n\n return {\n type: 'hierarchical',\n attributeName: attributeName,\n name: path,\n count: count,\n exhaustive: exhaustive,\n };\n}\n\nmodule.exports = SearchResults;\n","'use strict';\n\nvar EventEmitter = require('@algolia/events');\n\nvar DerivedHelper = require('./DerivedHelper');\nvar escapeFacetValue = require('./functions/escapeFacetValue').escapeFacetValue;\nvar inherits = require('./functions/inherits');\nvar merge = require('./functions/merge');\nvar objectHasKeys = require('./functions/objectHasKeys');\nvar omit = require('./functions/omit');\nvar requestBuilder = require('./requestBuilder');\nvar SearchParameters = require('./SearchParameters');\nvar SearchResults = require('./SearchResults');\nvar version = require('./version');\n\n/**\n * Event triggered when a parameter is set or updated\n * @event AlgoliaSearchHelper#event:change\n * @property {object} event\n * @property {SearchParameters} event.state the current parameters with the latest changes applied\n * @property {SearchResults} event.results the previous results received from Algolia. `null` before the first request\n * @example\n * helper.on('change', function(event) {\n * console.log('The parameters have changed');\n * });\n */\n\n/**\n * Event triggered when a main search is sent to Algolia\n * @event AlgoliaSearchHelper#event:search\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search\n * @property {SearchResults} event.results the results from the previous search. `null` if it is the first search.\n * @example\n * helper.on('search', function(event) {\n * console.log('Search sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchForFacetValues` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchForFacetValues\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @property {string} event.facet the facet searched into\n * @property {string} event.query the query used to search in the facets\n * @example\n * helper.on('searchForFacetValues', function(event) {\n * console.log('searchForFacetValues sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchOnce` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchOnce\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @example\n * helper.on('searchOnce', function(event) {\n * console.log('searchOnce sent');\n * });\n */\n\n/**\n * Event triggered when the results are retrieved from Algolia\n * @event AlgoliaSearchHelper#event:result\n * @property {object} event\n * @property {SearchResults} event.results the results received from Algolia\n * @property {SearchParameters} event.state the parameters used to query Algolia. Those might be different from the one in the helper instance (for example if the network is unreliable).\n * @example\n * helper.on('result', function(event) {\n * console.log('Search results received');\n * });\n */\n\n/**\n * Event triggered when Algolia sends back an error. For example, if an unknown parameter is\n * used, the error can be caught using this event.\n * @event AlgoliaSearchHelper#event:error\n * @property {object} event\n * @property {Error} event.error the error returned by the Algolia.\n * @example\n * helper.on('error', function(event) {\n * console.log('Houston we got a problem.');\n * });\n */\n\n/**\n * Event triggered when the queue of queries have been depleted (with any result or outdated queries)\n * @event AlgoliaSearchHelper#event:searchQueueEmpty\n * @example\n * helper.on('searchQueueEmpty', function() {\n * console.log('No more search pending');\n * // This is received before the result event if we're not expecting new results\n * });\n *\n * helper.search();\n */\n\n/**\n * Initialize a new AlgoliaSearchHelper\n * @class\n * @classdesc The AlgoliaSearchHelper is a class that ease the management of the\n * search. It provides an event based interface for search callbacks:\n * - change: when the internal search state is changed.\n * This event contains a {@link SearchParameters} object and the\n * {@link SearchResults} of the last result if any.\n * - search: when a search is triggered using the `search()` method.\n * - result: when the response is retrieved from Algolia and is processed.\n * This event contains a {@link SearchResults} object and the\n * {@link SearchParameters} corresponding to this answer.\n * - error: when the response is an error. This event contains the error returned by the server.\n * @param {AlgoliaSearch} client an AlgoliaSearch client\n * @param {string} index the index name to query\n * @param {SearchParameters | object} options an object defining the initial\n * config of the search. It doesn't have to be a {SearchParameters},\n * just an object containing the properties you need from it.\n */\nfunction AlgoliaSearchHelper(client, index, options) {\n if (typeof client.addAlgoliaAgent === 'function') {\n client.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n\n this.setClient(client);\n var opts = options || {};\n opts.index = index;\n this.state = SearchParameters.make(opts);\n this.lastResults = null;\n this._queryId = 0;\n this._lastQueryIdReceived = -1;\n this.derivedHelpers = [];\n this._currentNbQueries = 0;\n}\n\ninherits(AlgoliaSearchHelper, EventEmitter);\n\n/**\n * Start the search with the parameters set in the state. When the\n * method is called, it triggers a `search` event. The results will\n * be available through the `result` event. If an error occurs, an\n * `error` will be fired instead.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires search\n * @fires result\n * @fires error\n * @chainable\n */\nAlgoliaSearchHelper.prototype.search = function () {\n this._search({ onlyWithDerivedHelpers: false });\n return this;\n};\n\nAlgoliaSearchHelper.prototype.searchOnlyWithDerivedHelpers = function () {\n this._search({ onlyWithDerivedHelpers: true });\n return this;\n};\n\n/**\n * Gets the search query parameters that would be sent to the Algolia Client\n * for the hits\n * @return {object} Query Parameters\n */\nAlgoliaSearchHelper.prototype.getQuery = function () {\n var state = this.state;\n return requestBuilder._getHitsSearchParams(state);\n};\n\n/**\n * Start a search using a modified version of the current state. This method does\n * not trigger the helper lifecycle and does not modify the state kept internally\n * by the helper. This second aspect means that the next search call will be the\n * same as a search call before calling searchOnce.\n * @param {object} options can contain all the parameters that can be set to SearchParameters\n * plus the index\n * @param {function} [cb] optional callback executed when the response from the\n * server is back.\n * @return {promise|undefined} if a callback is passed the method returns undefined\n * otherwise it returns a promise containing an object with two keys :\n * - content with a SearchResults\n * - state with the state used for the query as a SearchParameters\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the callback API\n * var state = helper.searchOnce({hitsPerPage: 1},\n * function(error, content, state) {\n * // if an error occurred it will be passed in error, otherwise its value is null\n * // content contains the results formatted as a SearchResults\n * // state is the instance of SearchParameters used for this search\n * });\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the promise API\n * var state1 = helper.searchOnce({hitsPerPage: 1})\n * .then(promiseHandler);\n *\n * function promiseHandler(res) {\n * // res contains\n * // {\n * // content : SearchResults\n * // state : SearchParameters (the one used for this specific search)\n * // }\n * }\n */\nAlgoliaSearchHelper.prototype.searchOnce = function (options, cb) {\n var tempState = !options\n ? this.state\n : this.state.setQueryParameters(options);\n var queries = requestBuilder._getQueries(tempState.index, tempState);\n // eslint-disable-next-line consistent-this\n var self = this;\n\n this._currentNbQueries++;\n\n this.emit('searchOnce', {\n state: tempState,\n });\n\n if (cb) {\n this.client\n .search(queries)\n .then(function (content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(null, new SearchResults(tempState, content.results), tempState);\n })\n .catch(function (err) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(err, null, tempState);\n });\n\n return undefined;\n }\n\n return this.client.search(queries).then(\n function (content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n return {\n content: new SearchResults(tempState, content.results),\n state: tempState,\n _originalResponse: content,\n };\n },\n function (e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n }\n );\n};\n\n/**\n * Start the search for answers with the parameters set in the state.\n * This method returns a promise.\n * @param {Object} options - the options for answers API call\n * @param {string[]} options.attributesForPrediction - Attributes to use for predictions. If empty, `searchableAttributes` is used instead.\n * @param {string[]} options.queryLanguages - The languages in the query. Currently only supports ['en'].\n * @param {number} options.nbHits - Maximum number of answers to retrieve from the Answers Engine. Cannot be greater than 1000.\n *\n * @return {promise} the answer results\n * @deprecated answers is deprecated and will be replaced with new initiatives\n */\nAlgoliaSearchHelper.prototype.findAnswers = function (options) {\n // eslint-disable-next-line no-console\n console.warn('[algoliasearch-helper] answers is no longer supported');\n var state = this.state;\n var derivedHelper = this.derivedHelpers[0];\n if (!derivedHelper) {\n return Promise.resolve([]);\n }\n var derivedState = derivedHelper.getModifiedState(state);\n var data = merge(\n {\n attributesForPrediction: options.attributesForPrediction,\n nbHits: options.nbHits,\n },\n {\n params: omit(requestBuilder._getHitsSearchParams(derivedState), [\n 'attributesToSnippet',\n 'hitsPerPage',\n 'restrictSearchableAttributes',\n 'snippetEllipsisText',\n ]),\n }\n );\n\n var errorMessage =\n 'search for answers was called, but this client does not have a function client.initIndex(index).findAnswers';\n if (typeof this.client.initIndex !== 'function') {\n throw new Error(errorMessage);\n }\n var index = this.client.initIndex(derivedState.index);\n if (typeof index.findAnswers !== 'function') {\n throw new Error(errorMessage);\n }\n return index.findAnswers(derivedState.query, options.queryLanguages, data);\n};\n\n/**\n * Structure of each result when using\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * @typedef FacetSearchHit\n * @type {object}\n * @property {string} value the facet value\n * @property {string} highlighted the facet value highlighted with the query string\n * @property {number} count number of occurrence of this facet value\n * @property {boolean} isRefined true if the value is already refined\n */\n\n/**\n * Structure of the data resolved by the\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * promise.\n * @typedef FacetSearchResult\n * @type {object}\n * @property {FacetSearchHit} facetHits the results for this search for facet values\n * @property {number} processingTimeMS time taken by the query inside the engine\n */\n\n/**\n * Search for facet values based on an query and the name of a faceted attribute. This\n * triggers a search and will return a promise. On top of using the query, it also sends\n * the parameters from the state so that the search is narrowed down to only the possible values.\n *\n * See the description of [FacetSearchResult](reference.html#FacetSearchResult)\n * @param {string} facet the name of the faceted attribute\n * @param {string} query the string query for the search\n * @param {number} [maxFacetHits] the maximum number values returned. Should be > 0 and <= 100\n * @param {object} [userState] the set of custom parameters to use on top of the current state. Setting a property to `undefined` removes\n * it in the generated query.\n * @return {promise.} the results of the search\n */\nAlgoliaSearchHelper.prototype.searchForFacetValues = function (\n facet,\n query,\n maxFacetHits,\n userState\n) {\n var clientHasSFFV = typeof this.client.searchForFacetValues === 'function';\n var clientHasInitIndex = typeof this.client.initIndex === 'function';\n if (\n !clientHasSFFV &&\n !clientHasInitIndex &&\n typeof this.client.search !== 'function'\n ) {\n throw new Error(\n 'search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues'\n );\n }\n\n var state = this.state.setQueryParameters(userState || {});\n var isDisjunctive = state.isDisjunctiveFacet(facet);\n var algoliaQuery = requestBuilder.getSearchForFacetQuery(\n facet,\n query,\n maxFacetHits,\n state\n );\n\n this._currentNbQueries++;\n // eslint-disable-next-line consistent-this\n var self = this;\n var searchForFacetValuesPromise;\n // newer algoliasearch ^3.27.1 - ~4.0.0\n if (clientHasSFFV) {\n searchForFacetValuesPromise = this.client.searchForFacetValues([\n { indexName: state.index, params: algoliaQuery },\n ]);\n // algoliasearch < 3.27.1\n } else if (clientHasInitIndex) {\n searchForFacetValuesPromise = this.client\n .initIndex(state.index)\n .searchForFacetValues(algoliaQuery);\n // algoliasearch ~5.0.0\n } else {\n // @MAJOR only use client.search\n delete algoliaQuery.facetName;\n searchForFacetValuesPromise = this.client\n .search([\n {\n type: 'facet',\n facet: facet,\n indexName: state.index,\n params: algoliaQuery,\n },\n ])\n .then(function processResponse(response) {\n return response.results[0];\n });\n }\n\n this.emit('searchForFacetValues', {\n state: state,\n facet: facet,\n query: query,\n });\n\n return searchForFacetValuesPromise.then(\n function addIsRefined(content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n\n content = Array.isArray(content) ? content[0] : content;\n\n content.facetHits.forEach(function (f) {\n f.escapedValue = escapeFacetValue(f.value);\n f.isRefined = isDisjunctive\n ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)\n : state.isFacetRefined(facet, f.escapedValue);\n });\n\n return content;\n },\n function (e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n }\n );\n};\n\n/**\n * Sets the text query used for the search.\n *\n * This method resets the current page to 0.\n * @param {string} q the user query\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setQuery = function (q) {\n this._change({\n state: this.state.resetPage().setQuery(q),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Remove all the types of refinements except tags. A string can be provided to remove\n * only the refinements of a specific attribute. For more advanced use case, you can\n * provide a function instead. This function should follow the\n * [clearCallback definition](#SearchParameters.clearCallback).\n *\n * This method resets the current page to 0.\n * @param {string} [name] optional name of the facet / attribute on which we want to remove all refinements\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * // Removing all the refinements\n * helper.clearRefinements().search();\n * @example\n * // Removing all the filters on a the category attribute.\n * helper.clearRefinements('category').search();\n * @example\n * // Removing only the exclude filters on the category facet.\n * helper.clearRefinements(function(value, attribute, type) {\n * return type === 'exclude' && attribute === 'category';\n * }).search();\n */\nAlgoliaSearchHelper.prototype.clearRefinements = function (name) {\n this._change({\n state: this.state.resetPage().clearRefinements(name),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Remove all the tag filters.\n *\n * This method resets the current page to 0.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.clearTags = function () {\n this._change({\n state: this.state.resetPage().clearTags(),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveFacetRefinement = function (\n facet,\n value\n) {\n this._change({\n state: this.state.resetPage().addDisjunctiveFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveRefine = function () {\n return this.addDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds a refinement on a hierarchical facet. It will throw\n * an exception if the facet is not defined or if the facet\n * is already refined.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error if the facet is not defined or if the facet is refined\n * @chainable\n * @fires change\n */\nAlgoliaSearchHelper.prototype.addHierarchicalFacetRefinement = function (\n facet,\n path\n) {\n this._change({\n state: this.state.resetPage().addHierarchicalFacetRefinement(facet, path),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} operator the operator of the filter\n * @param {number} value the value of the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addNumericRefinement = function (\n attribute,\n operator,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .addNumericRefinement(attribute, operator, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().addFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addRefine = function () {\n return this.addFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds a an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().addExcludeRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.addExclude = function () {\n return this.addFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds a tag filter with the `tag` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag the tag to add to the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addTag = function (tag) {\n this._change({\n state: this.state.resetPage().addTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * Some parameters are optional, triggering different behavior:\n * - if the value is not provided, then all the numeric value will be removed for the\n * specified attribute/operator couple.\n * - if the operator is not provided either, then all the numeric filter on this attribute\n * will be removed.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} [operator] the operator of the filter\n * @param {number} [value] the value of the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeNumericRefinement = function (\n attribute,\n operator,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .removeNumericRefinement(attribute, operator, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveFacetRefinement = function (\n facet,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .removeDisjunctiveFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveRefine = function () {\n return this.removeDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error if the facet is not defined or if the facet is not refined\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeHierarchicalFacetRefinement = function (\n facet\n) {\n this._change({\n state: this.state.resetPage().removeHierarchicalFacetRefinement(facet),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes a filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().removeFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeRefine = function () {\n return this.removeFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().removeExcludeRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.removeExclude = function () {\n return this.removeFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Removes a tag filter with the `tag` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove from the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeTag = function (tag) {\n this._change({\n state: this.state.resetPage().removeTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds or removes an exclusion filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().toggleExcludeFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.toggleExclude = function () {\n return this.toggleFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n * @deprecated since version 2.19.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefinement = function (facet, value) {\n return this.toggleFacetRefinement(facet, value);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().toggleFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefine = function () {\n return this.toggleFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds or removes a tag filter with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove or add\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleTag = function (tag) {\n this._change({\n state: this.state.resetPage().toggleTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Increments the page number by one.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * helper.setPage(0).nextPage().getPage();\n * // returns 1\n */\nAlgoliaSearchHelper.prototype.nextPage = function () {\n var page = this.state.page || 0;\n return this.setPage(page + 1);\n};\n\n/**\n * Decrements the page number by one.\n * @fires change\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @chainable\n * @example\n * helper.setPage(1).previousPage().getPage();\n * // returns 0\n */\nAlgoliaSearchHelper.prototype.previousPage = function () {\n var page = this.state.page || 0;\n return this.setPage(page - 1);\n};\n\n/**\n * @private\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @chainable\n * @fires change\n */\nfunction setCurrentPage(page) {\n if (page < 0) throw new Error('Page requested below 0.');\n\n this._change({\n state: this.state.setPage(page),\n isPageReset: false,\n });\n\n return this;\n}\n\n/**\n * Change the current page\n * @deprecated\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setCurrentPage = setCurrentPage;\n\n/**\n * Updates the current page.\n * @function\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setPage = setCurrentPage;\n\n/**\n * Updates the name of the index that will be targeted by the query.\n *\n * This method resets the current page to 0.\n * @param {string} name the index name\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setIndex = function (name) {\n this._change({\n state: this.state.resetPage().setIndex(name),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Update a parameter of the search. This method reset the page\n *\n * The complete list of parameters is available on the\n * [Algolia website](https://www.algolia.com/doc/rest#query-an-index).\n * The most commonly used parameters have their own [shortcuts](#query-parameters-shortcuts)\n * or benefit from higher-level APIs (all the kind of filters and facets have their own API)\n *\n * This method resets the current page to 0.\n * @param {string} parameter name of the parameter to update\n * @param {any} value new value of the parameter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * helper.setQueryParameter('hitsPerPage', 20).search();\n */\nAlgoliaSearchHelper.prototype.setQueryParameter = function (parameter, value) {\n this._change({\n state: this.state.resetPage().setQueryParameter(parameter, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Set the whole state (warning: will erase previous state)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setState = function (newState) {\n this._change({\n state: SearchParameters.make(newState),\n isPageReset: false,\n });\n\n return this;\n};\n\n/**\n * Override the current state without triggering a change event.\n * Do not use this method unless you know what you are doing. (see the example\n * for a legit use case)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @example\n * helper.on('change', function(state){\n * // In this function you might want to find a way to store the state in the url/history\n * updateYourURL(state)\n * })\n * window.onpopstate = function(event){\n * // This is naive though as you should check if the state is really defined etc.\n * helper.overrideStateWithoutTriggeringChangeEvent(event.state).search()\n * }\n * @chainable\n */\nAlgoliaSearchHelper.prototype.overrideStateWithoutTriggeringChangeEvent =\n function (newState) {\n this.state = new SearchParameters(newState);\n return this;\n };\n\n/**\n * Check if an attribute has any numeric, conjunctive, disjunctive or hierarchical filters.\n * @param {string} attribute the name of the attribute\n * @return {boolean} true if the attribute is filtered by at least one value\n * @example\n * // hasRefinements works with numeric, conjunctive, disjunctive and hierarchical filters\n * helper.hasRefinements('price'); // false\n * helper.addNumericRefinement('price', '>', 100);\n * helper.hasRefinements('price'); // true\n *\n * helper.hasRefinements('color'); // false\n * helper.addFacetRefinement('color', 'blue');\n * helper.hasRefinements('color'); // true\n *\n * helper.hasRefinements('material'); // false\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * helper.hasRefinements('material'); // true\n *\n * helper.hasRefinements('categories'); // false\n * helper.toggleFacetRefinement('categories', 'kitchen > knife');\n * helper.hasRefinements('categories'); // true\n *\n */\nAlgoliaSearchHelper.prototype.hasRefinements = function (attribute) {\n if (objectHasKeys(this.state.getNumericRefinements(attribute))) {\n return true;\n } else if (this.state.isConjunctiveFacet(attribute)) {\n return this.state.isFacetRefined(attribute);\n } else if (this.state.isDisjunctiveFacet(attribute)) {\n return this.state.isDisjunctiveFacetRefined(attribute);\n } else if (this.state.isHierarchicalFacet(attribute)) {\n return this.state.isHierarchicalFacetRefined(attribute);\n }\n\n // there's currently no way to know that the user did call `addNumericRefinement` at some point\n // thus we cannot distinguish if there once was a numeric refinement that was cleared\n // so we will return false in every other situations to be consistent\n // while what we should do here is throw because we did not find the attribute in any type\n // of refinement\n return false;\n};\n\n/**\n * Check if a value is excluded for a specific faceted attribute. If the value\n * is omitted then the function checks if there is any excluding refinements.\n *\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} true if refined\n * @example\n * helper.isExcludeRefined('color'); // false\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // false\n *\n * helper.addFacetExclusion('color', 'red');\n *\n * helper.isExcludeRefined('color'); // true\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // true\n */\nAlgoliaSearchHelper.prototype.isExcluded = function (facet, value) {\n return this.state.isExcludeRefined(facet, value);\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasRefinements}\n */\nAlgoliaSearchHelper.prototype.isDisjunctiveRefined = function (facet, value) {\n return this.state.isDisjunctiveFacetRefined(facet, value);\n};\n\n/**\n * Check if the string is a currently filtering tag.\n * @param {string} tag tag to check\n * @return {boolean} true if the tag is currently refined\n */\nAlgoliaSearchHelper.prototype.hasTag = function (tag) {\n return this.state.isTagRefined(tag);\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasTag}\n */\nAlgoliaSearchHelper.prototype.isTagRefined = function () {\n return this.hasTagRefinements.apply(this, arguments);\n};\n\n/**\n * Get the name of the currently used index.\n * @return {string} name of the index\n * @example\n * helper.setIndex('highestPrice_products').getIndex();\n * // returns 'highestPrice_products'\n */\nAlgoliaSearchHelper.prototype.getIndex = function () {\n return this.state.index;\n};\n\nfunction getCurrentPage() {\n return this.state.page;\n}\n\n/**\n * Get the currently selected page\n * @deprecated\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getCurrentPage = getCurrentPage;\n/**\n * Get the currently selected page\n * @function\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getPage = getCurrentPage;\n\n/**\n * Get all the tags currently set to filters the results.\n *\n * @return {string[]} The list of tags currently set.\n */\nAlgoliaSearchHelper.prototype.getTags = function () {\n return this.state.tagRefinements;\n};\n\n/**\n * Get the list of refinements for a given attribute. This method works with\n * conjunctive, disjunctive, excluding and numerical filters.\n *\n * See also SearchResults#getRefinements\n *\n * @param {string} facetName attribute name used for faceting\n * @return {Array.} All Refinement are objects that contain a value, and\n * a type. Numeric also contains an operator.\n * @example\n * helper.addNumericRefinement('price', '>', 100);\n * helper.getRefinements('price');\n * // [\n * // {\n * // \"value\": [\n * // 100\n * // ],\n * // \"operator\": \">\",\n * // \"type\": \"numeric\"\n * // }\n * // ]\n * @example\n * helper.addFacetRefinement('color', 'blue');\n * helper.addFacetExclusion('color', 'red');\n * helper.getRefinements('color');\n * // [\n * // {\n * // \"value\": \"blue\",\n * // \"type\": \"conjunctive\"\n * // },\n * // {\n * // \"value\": \"red\",\n * // \"type\": \"exclude\"\n * // }\n * // ]\n * @example\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * // [\n * // {\n * // \"value\": \"plastic\",\n * // \"type\": \"disjunctive\"\n * // }\n * // ]\n */\nAlgoliaSearchHelper.prototype.getRefinements = function (facetName) {\n var refinements = [];\n\n if (this.state.isConjunctiveFacet(facetName)) {\n var conjRefinements = this.state.getConjunctiveRefinements(facetName);\n\n conjRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'conjunctive',\n });\n });\n\n var excludeRefinements = this.state.getExcludeRefinements(facetName);\n\n excludeRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'exclude',\n });\n });\n } else if (this.state.isDisjunctiveFacet(facetName)) {\n var disjunctiveRefinements =\n this.state.getDisjunctiveRefinements(facetName);\n\n disjunctiveRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'disjunctive',\n });\n });\n }\n\n var numericRefinements = this.state.getNumericRefinements(facetName);\n\n Object.keys(numericRefinements).forEach(function (operator) {\n var value = numericRefinements[operator];\n\n refinements.push({\n value: value,\n operator: operator,\n type: 'numeric',\n });\n });\n\n return refinements;\n};\n\n/**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\nAlgoliaSearchHelper.prototype.getNumericRefinement = function (\n attribute,\n operator\n) {\n return this.state.getNumericRefinement(attribute, operator);\n};\n\n/**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\nAlgoliaSearchHelper.prototype.getHierarchicalFacetBreadcrumb = function (\n facetName\n) {\n return this.state.getHierarchicalFacetBreadcrumb(facetName);\n};\n\n// /////////// PRIVATE\n\n/**\n * Perform the underlying queries\n * @private\n * @param {object} options options for the query\n * @param {boolean} [options.onlyWithDerivedHelpers=false] if true, only the derived helpers will be queried\n * @return {undefined} does not return anything\n * @fires search\n * @fires result\n * @fires error\n */\nAlgoliaSearchHelper.prototype._search = function (options) {\n var state = this.state;\n var states = [];\n var mainQueries = [];\n\n if (!options.onlyWithDerivedHelpers) {\n mainQueries = requestBuilder._getQueries(state.index, state);\n\n states.push({\n state: state,\n queriesCount: mainQueries.length,\n helper: this,\n });\n\n this.emit('search', {\n state: state,\n results: this.lastResults,\n });\n }\n\n var derivedQueries = this.derivedHelpers.map(function (derivedHelper) {\n var derivedState = derivedHelper.getModifiedState(state);\n var derivedStateQueries = derivedState.index\n ? requestBuilder._getQueries(derivedState.index, derivedState)\n : [];\n\n states.push({\n state: derivedState,\n queriesCount: derivedStateQueries.length,\n helper: derivedHelper,\n });\n\n derivedHelper.emit('search', {\n state: derivedState,\n results: derivedHelper.lastResults,\n });\n\n return derivedStateQueries;\n });\n\n var queries = Array.prototype.concat.apply(mainQueries, derivedQueries);\n\n var queryId = this._queryId++;\n this._currentNbQueries++;\n\n if (!queries.length) {\n return Promise.resolve({ results: [] }).then(\n this._dispatchAlgoliaResponse.bind(this, states, queryId)\n );\n }\n\n try {\n this.client\n .search(queries)\n .then(this._dispatchAlgoliaResponse.bind(this, states, queryId))\n .catch(this._dispatchAlgoliaError.bind(this, queryId));\n } catch (error) {\n // If we reach this part, we're in an internal error state\n this.emit('error', {\n error: error,\n });\n }\n\n return undefined;\n};\n\n/**\n * Transform the responses as sent by the server and transform them into a user\n * usable object that merge the results of all the batch requests. It will dispatch\n * over the different helper + derived helpers (when there are some).\n * @private\n * @param {array.<{SearchParameters, AlgoliaQueries, AlgoliaSearchHelper}>} states state used to generate the request\n * @param {number} queryId id of the current request\n * @param {object} content content of the response\n * @return {undefined}\n */\nAlgoliaSearchHelper.prototype._dispatchAlgoliaResponse = function (\n states,\n queryId,\n content\n) {\n // @TODO remove the number of outdated queries discarded instead of just one\n\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= queryId - this._lastQueryIdReceived;\n this._lastQueryIdReceived = queryId;\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n\n var results = content.results.slice();\n\n states.forEach(function (s) {\n var state = s.state;\n var queriesCount = s.queriesCount;\n var helper = s.helper;\n var specificResults = results.splice(0, queriesCount);\n\n if (!state.index) {\n helper.emit('result', {\n results: null,\n state: state,\n });\n return;\n }\n\n helper.lastResults = new SearchResults(state, specificResults);\n\n helper.emit('result', {\n results: helper.lastResults,\n state: state,\n });\n });\n};\n\nAlgoliaSearchHelper.prototype._dispatchAlgoliaError = function (\n queryId,\n error\n) {\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= queryId - this._lastQueryIdReceived;\n this._lastQueryIdReceived = queryId;\n\n this.emit('error', {\n error: error,\n });\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n};\n\nAlgoliaSearchHelper.prototype.containsRefinement = function (\n query,\n facetFilters,\n numericFilters,\n tagFilters\n) {\n return (\n query ||\n facetFilters.length !== 0 ||\n numericFilters.length !== 0 ||\n tagFilters.length !== 0\n );\n};\n\n/**\n * Test if there are some disjunctive refinements on the facet\n * @private\n * @param {string} facet the attribute to test\n * @return {boolean} true if there are refinements on this attribute\n */\nAlgoliaSearchHelper.prototype._hasDisjunctiveRefinements = function (facet) {\n return (\n this.state.disjunctiveRefinements[facet] &&\n this.state.disjunctiveRefinements[facet].length > 0\n );\n};\n\nAlgoliaSearchHelper.prototype._change = function (event) {\n var state = event.state;\n var isPageReset = event.isPageReset;\n\n if (state !== this.state) {\n this.state = state;\n\n this.emit('change', {\n state: this.state,\n results: this.lastResults,\n isPageReset: isPageReset,\n });\n }\n};\n\n/**\n * Clears the cache of the underlying Algolia client.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n */\nAlgoliaSearchHelper.prototype.clearCache = function () {\n if (this.client.clearCache) this.client.clearCache();\n return this;\n};\n\n/**\n * Updates the internal client instance. If the reference of the clients\n * are equal then no update is actually done.\n * @param {AlgoliaSearch} newClient an AlgoliaSearch client\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n */\nAlgoliaSearchHelper.prototype.setClient = function (newClient) {\n if (this.client === newClient) return this;\n\n if (typeof newClient.addAlgoliaAgent === 'function') {\n newClient.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n this.client = newClient;\n\n return this;\n};\n\n/**\n * Gets the instance of the currently used client.\n * @return {AlgoliaSearch} the currently used client\n */\nAlgoliaSearchHelper.prototype.getClient = function () {\n return this.client;\n};\n\n/**\n * Creates an derived instance of the Helper. A derived helper\n * is a way to request other indices synchronised with the lifecycle\n * of the main Helper. This mechanism uses the multiqueries feature\n * of Algolia to aggregate all the requests in a single network call.\n *\n * This method takes a function that is used to create a new SearchParameter\n * that will be used to create requests to Algolia. Those new requests\n * are created just before the `search` event. The signature of the function\n * is `SearchParameters -> SearchParameters`.\n *\n * This method returns a new DerivedHelper which is an EventEmitter\n * that fires the same `search`, `result` and `error` events. Those\n * events, however, will receive data specific to this DerivedHelper\n * and the SearchParameters that is returned by the call of the\n * parameter function.\n * @param {function} fn SearchParameters -> SearchParameters\n * @return {DerivedHelper} a new DerivedHelper\n */\nAlgoliaSearchHelper.prototype.derive = function (fn) {\n var derivedHelper = new DerivedHelper(this, fn);\n this.derivedHelpers.push(derivedHelper);\n return derivedHelper;\n};\n\n/**\n * This method detaches a derived Helper from the main one. Prefer using the one from the\n * derived helper itself, to remove the event listeners too.\n * @private\n * @param {DerivedHelper} derivedHelper the derived helper to detach\n * @return {undefined} nothing is returned\n * @throws Error\n */\nAlgoliaSearchHelper.prototype.detachDerivedHelper = function (derivedHelper) {\n var pos = this.derivedHelpers.indexOf(derivedHelper);\n if (pos === -1) throw new Error('Derived helper already detached');\n this.derivedHelpers.splice(pos, 1);\n};\n\n/**\n * This method returns true if there is currently at least one on-going search.\n * @return {boolean} true if there is a search pending\n */\nAlgoliaSearchHelper.prototype.hasPendingRequests = function () {\n return this._currentNbQueries > 0;\n};\n\n/**\n * @typedef AlgoliaSearchHelper.NumericRefinement\n * @type {object}\n * @property {number[]} value the numbers that are used for filtering this attribute with\n * the operator specified.\n * @property {string} operator the faceting data: value, number of entries\n * @property {string} type will be 'numeric'\n */\n\n/**\n * @typedef AlgoliaSearchHelper.FacetRefinement\n * @type {object}\n * @property {string} value the string use to filter the attribute\n * @property {string} type the type of filter: 'conjunctive', 'disjunctive', 'exclude'\n */\n\nmodule.exports = AlgoliaSearchHelper;\n","'use strict';\n\nmodule.exports = function compact(array) {\n if (!Array.isArray(array)) {\n return [];\n }\n\n return array.filter(Boolean);\n};\n","'use strict';\n\n// NOTE: this behaves like lodash/defaults, but doesn't mutate the target\n// it also preserve keys order\nmodule.exports = function defaultsPure() {\n var sources = Array.prototype.slice.call(arguments);\n\n return sources.reduceRight(function (acc, source) {\n Object.keys(Object(source)).forEach(function (key) {\n if (source[key] === undefined) {\n return;\n }\n if (acc[key] !== undefined) {\n // remove if already added, so that we can add it in correct order\n delete acc[key];\n }\n acc[key] = source[key];\n });\n return acc;\n }, {});\n};\n","'use strict';\n\n/**\n * Replaces a leading - with \\-\n * @private\n * @param {any} value the facet value to replace\n * @returns {any} the escaped facet value or the value if it was not a string\n */\nfunction escapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return String(value).replace(/^-/, '\\\\-');\n}\n\n/**\n * Replaces a leading \\- with -\n * @private\n * @param {any} value the escaped facet value\n * @returns {any} the unescaped facet value or the value if it was not a string\n */\nfunction unescapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return value.replace(/^\\\\-/, '-');\n}\n\nmodule.exports = {\n escapeFacetValue: escapeFacetValue,\n unescapeFacetValue: unescapeFacetValue,\n};\n","'use strict';\n\n// @MAJOR can be replaced by native Array#find when we change support\nmodule.exports = function find(array, comparator) {\n if (!Array.isArray(array)) {\n return undefined;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return array[i];\n }\n }\n\n return undefined;\n};\n","'use strict';\n\n// @MAJOR can be replaced by native Array#findIndex when we change support\nmodule.exports = function find(array, comparator) {\n if (!Array.isArray(array)) {\n return -1;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return i;\n }\n }\n return -1;\n};\n","'use strict';\n\nvar find = require('./find');\n\n/**\n * Transform sort format from user friendly notation to lodash format\n * @param {string[]} sortBy array of predicate of the form \"attribute:order\"\n * @param {string[]} [defaults] array of predicate of the form \"attribute:order\"\n * @return {array.} array containing 2 elements : attributes, orders\n */\nmodule.exports = function formatSort(sortBy, defaults) {\n var defaultInstructions = (defaults || []).map(function (sort) {\n return sort.split(':');\n });\n\n return sortBy.reduce(\n function preparePredicate(out, sort) {\n var sortInstruction = sort.split(':');\n\n var matchingDefault = find(\n defaultInstructions,\n function (defaultInstruction) {\n return defaultInstruction[0] === sortInstruction[0];\n }\n );\n\n if (sortInstruction.length > 1 || !matchingDefault) {\n out[0].push(sortInstruction[0]);\n out[1].push(sortInstruction[1]);\n return out;\n }\n\n out[0].push(matchingDefault[0]);\n out[1].push(matchingDefault[1]);\n return out;\n },\n [[], []]\n );\n};\n","'use strict';\n\nfunction inherits(ctor, superCtor) {\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n });\n}\n\nmodule.exports = inherits;\n","'use strict';\n\nfunction intersection(arr1, arr2) {\n return arr1.filter(function (value, index) {\n return (\n arr2.indexOf(value) > -1 &&\n arr1.indexOf(value) === index /* skips duplicates */\n );\n });\n}\n\nmodule.exports = intersection;\n","'use strict';\n\nfunction clone(value) {\n if (typeof value === 'object' && value !== null) {\n return _merge(Array.isArray(value) ? [] : {}, value);\n }\n return value;\n}\n\nfunction isObjectOrArrayOrFunction(value) {\n return (\n typeof value === 'function' ||\n Array.isArray(value) ||\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n\nfunction _merge(target, source) {\n if (target === source) {\n return target;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (var key in source) {\n if (\n !Object.prototype.hasOwnProperty.call(source, key) ||\n key === '__proto__' ||\n key === 'constructor'\n ) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n var sourceVal = source[key];\n var targetVal = target[key];\n\n if (typeof targetVal !== 'undefined' && typeof sourceVal === 'undefined') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (\n isObjectOrArrayOrFunction(targetVal) &&\n isObjectOrArrayOrFunction(sourceVal)\n ) {\n target[key] = _merge(targetVal, sourceVal);\n } else {\n target[key] = clone(sourceVal);\n }\n }\n return target;\n}\n\n/**\n * This method is like Object.assign, but recursively merges own and inherited\n * enumerable keyed properties of source objects into the destination object.\n *\n * NOTE: this behaves like lodash/merge, but:\n * - does mutate functions if they are a source\n * - treats non-plain objects as plain\n * - does not work for circular objects\n * - treats sparse arrays as sparse\n * - does not convert Array-like objects (Arguments, NodeLists, etc.) to arrays\n *\n * @param {Object} target The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n */\nfunction merge(target) {\n if (!isObjectOrArrayOrFunction(target)) {\n target = {};\n }\n\n for (var i = 1, l = arguments.length; i < l; i++) {\n var source = arguments[i];\n\n if (isObjectOrArrayOrFunction(source)) {\n _merge(target, source);\n }\n }\n return target;\n}\n\nmodule.exports = merge;\n","'use strict';\n\nfunction objectHasKeys(obj) {\n return obj && Object.keys(obj).length > 0;\n}\n\nmodule.exports = objectHasKeys;\n","'use strict';\n\n// https://github.com/babel/babel/blob/3aaafae053fa75febb3aa45d45b6f00646e30ba4/packages/babel-helpers/src/helpers.js#L604-L620\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source === null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key;\n var i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n // eslint-disable-next-line no-continue\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\n","'use strict';\n\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined;\n var valIsNull = value === null;\n\n var othIsDefined = other !== undefined;\n var othIsNull = other === null;\n\n if (\n (!othIsNull && value > other) ||\n (valIsNull && othIsDefined) ||\n !valIsDefined\n ) {\n return 1;\n }\n if (\n (!valIsNull && value < other) ||\n (othIsNull && valIsDefined) ||\n !othIsDefined\n ) {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * @param {Array} collection object with keys in attributes\n * @param {Array} iteratees attributes\n * @param {Array} orders asc | desc\n * @return {Array} sorted collection\n */\nfunction orderBy(collection, iteratees, orders) {\n if (!Array.isArray(collection)) {\n return [];\n }\n\n if (!Array.isArray(orders)) {\n orders = [];\n }\n\n var result = collection.map(function (value, index) {\n return {\n criteria: iteratees.map(function (iteratee) {\n return value[iteratee];\n }),\n index: index,\n value: value,\n };\n });\n\n result.sort(function comparer(object, other) {\n var index = -1;\n\n while (++index < object.criteria.length) {\n var res = compareAscending(object.criteria[index], other.criteria[index]);\n if (res) {\n if (index >= orders.length) {\n return res;\n }\n if (orders[index] === 'desc') {\n return -res;\n }\n return res;\n }\n }\n\n // This ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n });\n\n return result.map(function (res) {\n return res.value;\n });\n}\n\nmodule.exports = orderBy;\n","'use strict';\n\nfunction valToNumber(v) {\n if (typeof v === 'number') {\n return v;\n } else if (typeof v === 'string') {\n return parseFloat(v);\n } else if (Array.isArray(v)) {\n return v.map(valToNumber);\n }\n\n throw new Error(\n 'The value should be a number, a parsable string or an array of those.'\n );\n}\n\nmodule.exports = valToNumber;\n","'use strict';\n\nvar merge = require('./functions/merge');\n\nfunction sortObject(obj) {\n return Object.keys(obj)\n .sort()\n .reduce(function (acc, curr) {\n acc[curr] = obj[curr];\n return acc;\n }, {});\n}\n\nvar requestBuilder = {\n /**\n * Get all the queries to send to the client, those queries can used directly\n * with the Algolia client.\n * @private\n * @param {string} index The name of the index\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object[]} The queries\n */\n _getQueries: function getQueries(index, state) {\n var queries = [];\n\n // One query for the hits\n queries.push({\n indexName: index,\n params: requestBuilder._getHitsSearchParams(state),\n });\n\n // One for each disjunctive facets\n state.getRefinedDisjunctiveFacets().forEach(function (refinedFacet) {\n queries.push({\n indexName: index,\n params: requestBuilder._getDisjunctiveFacetSearchParams(\n state,\n refinedFacet\n ),\n });\n });\n\n // More to get the parent levels of the hierarchical facets when refined\n state.getRefinedHierarchicalFacets().forEach(function (refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n // If we are deeper than level 0 (starting from `beer > IPA`)\n // we want to get all parent values\n if (\n currentRefinement.length > 0 &&\n currentRefinement[0].split(separator).length > 1\n ) {\n // We generate a map of the filters we will use for our facet values queries\n var filtersMap = currentRefinement[0]\n .split(separator)\n .slice(0, -1)\n .reduce(function createFiltersMap(map, segment, level) {\n return map.concat({\n attribute: hierarchicalFacet.attributes[level],\n value:\n level === 0\n ? segment\n : [map[map.length - 1].value, segment].join(separator),\n });\n }, []);\n\n filtersMap.forEach(function (filter, level) {\n var params = requestBuilder._getDisjunctiveFacetSearchParams(\n state,\n filter.attribute,\n level === 0\n );\n\n // Keep facet filters unrelated to current hierarchical attributes\n function hasHierarchicalFacetFilter(value) {\n return hierarchicalFacet.attributes.some(function (attribute) {\n return attribute === value.split(':')[0];\n });\n }\n\n var filteredFacetFilters = (params.facetFilters || []).reduce(\n function (acc, facetFilter) {\n if (Array.isArray(facetFilter)) {\n var filtered = facetFilter.filter(function (filterValue) {\n return !hasHierarchicalFacetFilter(filterValue);\n });\n\n if (filtered.length > 0) {\n acc.push(filtered);\n }\n }\n\n if (\n typeof facetFilter === 'string' &&\n !hasHierarchicalFacetFilter(facetFilter)\n ) {\n acc.push(facetFilter);\n }\n\n return acc;\n },\n []\n );\n\n var parent = filtersMap[level - 1];\n if (level > 0) {\n params.facetFilters = filteredFacetFilters.concat(\n parent.attribute + ':' + parent.value\n );\n } else {\n params.facetFilters =\n filteredFacetFilters.length > 0\n ? filteredFacetFilters\n : undefined;\n }\n\n queries.push({ indexName: index, params: params });\n });\n }\n });\n\n return queries;\n },\n\n /**\n * Build search parameters used to fetch hits\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object.} The search parameters for hits\n */\n _getHitsSearchParams: function (state) {\n var facets = state.facets\n .concat(state.disjunctiveFacets)\n .concat(requestBuilder._getHitsHierarchicalFacetsAttributes(state))\n .sort();\n\n var facetFilters = requestBuilder._getFacetFilters(state);\n var numericFilters = requestBuilder._getNumericFilters(state);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {\n facets: facets.indexOf('*') > -1 ? ['*'] : facets,\n tagFilters: tagFilters,\n };\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Build search parameters used to fetch a disjunctive facet\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @param {string} facet the associated facet name\n * @param {boolean} hierarchicalRootLevel ?? FIXME\n * @return {object} The search parameters for a disjunctive facet\n */\n _getDisjunctiveFacetSearchParams: function (\n state,\n facet,\n hierarchicalRootLevel\n ) {\n var facetFilters = requestBuilder._getFacetFilters(\n state,\n facet,\n hierarchicalRootLevel\n );\n var numericFilters = requestBuilder._getNumericFilters(state, facet);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {\n hitsPerPage: 0,\n page: 0,\n analytics: false,\n clickAnalytics: false,\n };\n\n if (tagFilters.length > 0) {\n additionalParams.tagFilters = tagFilters;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facet);\n\n if (hierarchicalFacet) {\n additionalParams.facets =\n requestBuilder._getDisjunctiveHierarchicalFacetAttribute(\n state,\n hierarchicalFacet,\n hierarchicalRootLevel\n );\n } else {\n additionalParams.facets = facet;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Return the numeric filters in an algolia request fashion\n * @private\n * @param {SearchParameters} state the state from which to get the filters\n * @param {string} [facetName] the name of the attribute for which the filters should be excluded\n * @return {string[]} the numeric filters in the algolia format\n */\n _getNumericFilters: function (state, facetName) {\n if (state.numericFilters) {\n return state.numericFilters;\n }\n\n var numericFilters = [];\n\n Object.keys(state.numericRefinements).forEach(function (attribute) {\n var operators = state.numericRefinements[attribute] || {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator] || [];\n if (facetName !== attribute) {\n values.forEach(function (value) {\n if (Array.isArray(value)) {\n var vs = value.map(function (v) {\n return attribute + operator + v;\n });\n numericFilters.push(vs);\n } else {\n numericFilters.push(attribute + operator + value);\n }\n });\n }\n });\n });\n\n return numericFilters;\n },\n\n /**\n * Return the tags filters depending on which format is used, either tagFilters or tagRefinements\n * @private\n * @param {SearchParameters} state the state from which to get the filters\n * @return {string} Tag filters in a single string\n */\n _getTagFilters: function (state) {\n if (state.tagFilters) {\n return state.tagFilters;\n }\n\n return state.tagRefinements.join(',');\n },\n\n /**\n * Build facetFilters parameter based on current refinements. The array returned\n * contains strings representing the facet filters in the algolia format.\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @param {string} [facet] if set, the current disjunctive facet\n * @param {boolean} [hierarchicalRootLevel] ?? FIXME\n * @return {array.} The facet filters in the algolia format\n */\n _getFacetFilters: function (state, facet, hierarchicalRootLevel) {\n var facetFilters = [];\n\n var facetsRefinements = state.facetsRefinements || {};\n Object.keys(facetsRefinements)\n .sort()\n .forEach(function (facetName) {\n var facetValues = facetsRefinements[facetName] || [];\n facetValues.sort().forEach(function (facetValue) {\n facetFilters.push(facetName + ':' + facetValue);\n });\n });\n\n var facetsExcludes = state.facetsExcludes || {};\n Object.keys(facetsExcludes)\n .sort()\n .forEach(function (facetName) {\n var facetValues = facetsExcludes[facetName] || [];\n facetValues.sort().forEach(function (facetValue) {\n facetFilters.push(facetName + ':-' + facetValue);\n });\n });\n\n var disjunctiveFacetsRefinements = state.disjunctiveFacetsRefinements || {};\n Object.keys(disjunctiveFacetsRefinements)\n .sort()\n .forEach(function (facetName) {\n var facetValues = disjunctiveFacetsRefinements[facetName] || [];\n if (facetName === facet || !facetValues || facetValues.length === 0) {\n return;\n }\n var orFilters = [];\n\n facetValues.sort().forEach(function (facetValue) {\n orFilters.push(facetName + ':' + facetValue);\n });\n\n facetFilters.push(orFilters);\n });\n\n var hierarchicalFacetsRefinements =\n state.hierarchicalFacetsRefinements || {};\n Object.keys(hierarchicalFacetsRefinements)\n .sort()\n .forEach(function (facetName) {\n var facetValues = hierarchicalFacetsRefinements[facetName] || [];\n var facetValue = facetValues[0];\n\n if (facetValue === undefined) {\n return;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facetName);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeToRefine;\n var attributesIndex;\n\n // we ask for parent facet values only when the `facet` is the current hierarchical facet\n if (facet === facetName) {\n // if we are at the root level already, no need to ask for facet values, we get them from\n // the hits query\n if (\n facetValue.indexOf(separator) === -1 ||\n (!rootPath && hierarchicalRootLevel === true) ||\n (rootPath &&\n rootPath.split(separator).length ===\n facetValue.split(separator).length)\n ) {\n return;\n }\n\n if (!rootPath) {\n attributesIndex = facetValue.split(separator).length - 2;\n facetValue = facetValue.slice(0, facetValue.lastIndexOf(separator));\n } else {\n attributesIndex = rootPath.split(separator).length - 1;\n facetValue = rootPath;\n }\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n } else {\n attributesIndex = facetValue.split(separator).length - 1;\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n }\n\n if (attributeToRefine) {\n facetFilters.push([attributeToRefine + ':' + facetValue]);\n }\n });\n\n return facetFilters;\n },\n\n _getHitsHierarchicalFacetsAttributes: function (state) {\n var out = [];\n\n return state.hierarchicalFacets.reduce(\n // ask for as much levels as there's hierarchical refinements\n function getHitsAttributesForHierarchicalFacet(\n allAttributes,\n hierarchicalFacet\n ) {\n var hierarchicalRefinement = state.getHierarchicalRefinement(\n hierarchicalFacet.name\n )[0];\n\n // if no refinement, ask for root level\n if (!hierarchicalRefinement) {\n allAttributes.push(hierarchicalFacet.attributes[0]);\n return allAttributes;\n }\n\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var level = hierarchicalRefinement.split(separator).length;\n var newAttributes = hierarchicalFacet.attributes.slice(0, level + 1);\n\n return allAttributes.concat(newAttributes);\n },\n out\n );\n },\n\n _getDisjunctiveHierarchicalFacetAttribute: function (\n state,\n hierarchicalFacet,\n rootLevel\n ) {\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n if (rootLevel === true) {\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeIndex = 0;\n\n if (rootPath) {\n attributeIndex = rootPath.split(separator).length;\n }\n return [hierarchicalFacet.attributes[attributeIndex]];\n }\n\n var hierarchicalRefinement =\n state.getHierarchicalRefinement(hierarchicalFacet.name)[0] || '';\n // if refinement is 'beers > IPA > Flying dog',\n // then we want `facets: ['beers > IPA']` as disjunctive facet (parent level values)\n\n var parentLevel = hierarchicalRefinement.split(separator).length - 1;\n return hierarchicalFacet.attributes.slice(0, parentLevel + 1);\n },\n\n getSearchForFacetQuery: function (facetName, query, maxFacetHits, state) {\n var stateForSearchForFacetValues = state.isDisjunctiveFacet(facetName)\n ? state.clearRefinements(facetName)\n : state;\n var searchForFacetSearchParameters = {\n facetQuery: query,\n facetName: facetName,\n };\n if (typeof maxFacetHits === 'number') {\n searchForFacetSearchParameters.maxFacetHits = maxFacetHits;\n }\n return sortObject(\n merge(\n {},\n requestBuilder._getHitsSearchParams(stateForSearchForFacetValues),\n searchForFacetSearchParameters\n )\n );\n },\n};\n\nmodule.exports = requestBuilder;\n","'use strict';\n\nmodule.exports = function isValidUserToken(userToken) {\n if (userToken === null) {\n return false;\n }\n return /^[a-zA-Z0-9_-]{1,64}$/.test(userToken);\n};\n","'use strict';\n\nmodule.exports = '3.14.0';\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","//! moment-timezone.js\n//! version : 0.5.43\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.43\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3} SearchParameters.refinementList.RefinementList\n */\n\nvar defaultsPure = require('../functions/defaultsPure');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar omit = require('../functions/omit');\n\nvar lib = {\n /**\n * Adds a refinement to a RefinementList\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement, if the value is not a string it will be converted\n * @return {RefinementList} a new and updated refinement list\n */\n addRefinement: function addRefinement(refinementList, attribute, value) {\n if (lib.isRefined(refinementList, attribute, value)) {\n return refinementList;\n }\n\n var valueAsString = '' + value;\n\n var facetRefinement = !refinementList[attribute]\n ? [valueAsString]\n : refinementList[attribute].concat(valueAsString);\n\n var mod = {};\n\n mod[attribute] = facetRefinement;\n\n return defaultsPure({}, mod, refinementList);\n },\n /**\n * Removes refinement(s) for an attribute:\n * - if the value is specified removes the refinement for the value on the attribute\n * - if no value is specified removes all the refinements for this attribute\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} [value] the value of the refinement\n * @return {RefinementList} a new and updated refinement lst\n */\n removeRefinement: function removeRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined) {\n // we use the \"filter\" form of clearRefinement, since it leaves empty values as-is\n // the form with a string will remove the attribute completely\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f;\n });\n }\n\n var valueAsString = '' + value;\n\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f && valueAsString === v;\n });\n },\n /**\n * Toggles the refinement value for an attribute.\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement\n * @return {RefinementList} a new and updated list\n */\n toggleRefinement: function toggleRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined)\n throw new Error('toggleRefinement should be used with a value');\n\n if (lib.isRefined(refinementList, attribute, value)) {\n return lib.removeRefinement(refinementList, attribute, value);\n }\n\n return lib.addRefinement(refinementList, attribute, value);\n },\n /**\n * Clear all or parts of a RefinementList. Depending on the arguments, three\n * kinds of behavior can happen:\n * - if no attribute is provided: clears the whole list\n * - if an attribute is provided as a string: clears the list for the specific attribute\n * - if an attribute is provided as a function: discards the elements for which the function returns true\n * @param {RefinementList} refinementList the initial list\n * @param {string} [attribute] the attribute or function to discard\n * @param {string} [refinementType] optional parameter to give more context to the attribute function\n * @return {RefinementList} a new and updated refinement list\n */\n clearRefinement: function clearRefinement(\n refinementList,\n attribute,\n refinementType\n ) {\n if (attribute === undefined) {\n // return the same object if the list is already empty\n // this is mainly for tests, as it doesn't have much impact on performance\n if (!objectHasKeys(refinementList)) {\n return refinementList;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(refinementList, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n\n var newRefinementList = Object.keys(refinementList).reduce(function (\n memo,\n key\n ) {\n var values = refinementList[key] || [];\n var facetList = values.filter(function (value) {\n return !attribute(value, key, refinementType);\n });\n\n if (facetList.length !== values.length) {\n hasChanged = true;\n }\n\n memo[key] = facetList;\n\n return memo;\n },\n {});\n\n if (hasChanged) return newRefinementList;\n return refinementList;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\n },\n /**\n * Test if the refinement value is used for the attribute. If no refinement value\n * is provided, test if the refinementList contains any refinement for the\n * given attribute.\n * @param {RefinementList} refinementList the list of refinement\n * @param {string} attribute name of the attribute\n * @param {string} [refinementValue] value of the filter/refinement\n * @return {boolean} true if the attribute is refined, false otherwise\n */\n isRefined: function isRefined(refinementList, attribute, refinementValue) {\n var containsRefinements =\n Boolean(refinementList[attribute]) &&\n refinementList[attribute].length > 0;\n\n if (refinementValue === undefined || !containsRefinements) {\n return containsRefinements;\n }\n\n var refinementValueAsString = '' + refinementValue;\n\n return refinementList[attribute].indexOf(refinementValueAsString) !== -1;\n },\n};\n\nmodule.exports = lib;\n","'use strict';\n\nvar defaultsPure = require('../functions/defaultsPure');\nvar find = require('../functions/find');\nvar intersection = require('../functions/intersection');\nvar merge = require('../functions/merge');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar omit = require('../functions/omit');\nvar valToNumber = require('../functions/valToNumber');\nvar isValidUserToken = require('../utils/isValidUserToken');\n\nvar RefinementList = require('./RefinementList');\n\n/**\n * isEqual, but only for numeric refinement values, possible values:\n * - 5\n * - [5]\n * - [[5]]\n * - [[5,5],[4]]\n * @param {any} a numeric refinement value\n * @param {any} b numeric refinement value\n * @return {boolean} true if the values are equal\n */\nfunction isEqualNumericRefinement(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return (\n a.length === b.length &&\n a.every(function (el, i) {\n return isEqualNumericRefinement(b[i], el);\n })\n );\n }\n return a === b;\n}\n\n/**\n * like _.find but using deep equality to be able to use it\n * to find arrays.\n * @private\n * @param {any[]} array array to search into (elements are base or array of base)\n * @param {any} searchedValue the value we're looking for (base or array of base)\n * @return {any} the searched value or undefined\n */\nfunction findArray(array, searchedValue) {\n return find(array, function (currentValue) {\n return isEqualNumericRefinement(currentValue, searchedValue);\n });\n}\n\n/**\n * The facet list is the structure used to store the list of values used to\n * filter a single attribute.\n * @typedef {string[]} SearchParameters.FacetList\n */\n\n/**\n * Structure to store numeric filters with the operator as the key. The supported operators\n * are `=`, `>`, `<`, `>=`, `<=` and `!=`.\n * @typedef {Object.>} SearchParameters.OperatorList\n */\n\n/**\n * SearchParameters is the data structure that contains all the information\n * usable for making a search to Algolia API. It doesn't do the search itself,\n * nor does it contains logic about the parameters.\n * It is an immutable object, therefore it has been created in a way that each\n * changes does not change the object itself but returns a copy with the\n * modification.\n * This object should probably not be instantiated outside of the helper. It will\n * be provided when needed. This object is documented for reference as you'll\n * get it from events generated by the {@link AlgoliaSearchHelper}.\n * If need be, instantiate the Helper from the factory function {@link SearchParameters.make}\n * @constructor\n * @classdesc contains all the parameters of a search\n * @param {object|SearchParameters} newParameters existing parameters or partial object\n * for the properties of a new SearchParameters\n * @see SearchParameters.make\n * @example SearchParameters of the first query in\n * the instant search demo\n{\n \"query\": \"\",\n \"disjunctiveFacets\": [\n \"customerReviewCount\",\n \"category\",\n \"salePrice_range\",\n \"manufacturer\"\n ],\n \"maxValuesPerFacet\": 30,\n \"page\": 0,\n \"hitsPerPage\": 10,\n \"facets\": [\n \"type\",\n \"shipping\"\n ]\n}\n */\nfunction SearchParameters(newParameters) {\n var params = newParameters\n ? SearchParameters._parseNumbers(newParameters)\n : {};\n\n if (params.userToken !== undefined && !isValidUserToken(params.userToken)) {\n // eslint-disable-next-line no-console\n console.warn(\n '[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\\n - Format: [a-zA-Z0-9_-]{1,64}'\n );\n }\n /**\n * This attribute contains the list of all the conjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.facets = params.facets || [];\n /**\n * This attribute contains the list of all the disjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.disjunctiveFacets = params.disjunctiveFacets || [];\n /**\n * This attribute contains the list of all the hierarchical facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * Hierarchical facets are a sub type of disjunctive facets that\n * let you filter faceted attributes hierarchically.\n * @member {string[]|object[]}\n */\n this.hierarchicalFacets = params.hierarchicalFacets || [];\n\n // Refinements\n /**\n * This attribute contains all the filters that need to be\n * applied on the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsRefinements = params.facetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * excluded from the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters excluded for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsExcludes = params.facetsExcludes || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the disjunctive facets. Each facet must be properly\n * defined in the `disjunctiveFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.disjunctiveFacetsRefinements = params.disjunctiveFacetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the numeric attributes.\n *\n * The key is the name of the attribute, and the value is the\n * filters to apply to this attribute.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `numericFilters` attribute.\n * @member {Object.}\n */\n this.numericRefinements = params.numericRefinements || {};\n /**\n * This attribute contains all the tags used to refine the query.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `tagFilters` attribute.\n * @member {string[]}\n */\n this.tagRefinements = params.tagRefinements || [];\n /**\n * This attribute contains all the filters that need to be\n * applied on the hierarchical facets. Each facet must be properly\n * defined in the `hierarchicalFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name. The FacetList values\n * are structured as a string that contain the values for each level\n * separated by the configured separator.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.hierarchicalFacetsRefinements =\n params.hierarchicalFacetsRefinements || {};\n\n // eslint-disable-next-line consistent-this\n var self = this;\n Object.keys(params).forEach(function (paramName) {\n var isKeyKnown = SearchParameters.PARAMETERS.indexOf(paramName) !== -1;\n var isValueDefined = params[paramName] !== undefined;\n\n if (!isKeyKnown && isValueDefined) {\n self[paramName] = params[paramName];\n }\n });\n}\n\n/**\n * List all the properties in SearchParameters and therefore all the known Algolia properties\n * This doesn't contain any beta/hidden features.\n * @private\n */\nSearchParameters.PARAMETERS = Object.keys(new SearchParameters());\n\n/**\n * @private\n * @param {object} partialState full or part of a state\n * @return {object} a new object with the number keys as number\n */\nSearchParameters._parseNumbers = function (partialState) {\n // Do not parse numbers again in SearchParameters, they ought to be parsed already\n if (partialState instanceof SearchParameters) return partialState;\n\n var numbers = {};\n\n var numberKeys = [\n 'aroundPrecision',\n 'aroundRadius',\n 'getRankingInfo',\n 'minWordSizefor2Typos',\n 'minWordSizefor1Typo',\n 'page',\n 'maxValuesPerFacet',\n 'distinct',\n 'minimumAroundRadius',\n 'hitsPerPage',\n 'minProximity',\n ];\n\n numberKeys.forEach(function (k) {\n var value = partialState[k];\n if (typeof value === 'string') {\n var parsedValue = parseFloat(value);\n // global isNaN is ok to use here, value is only number or NaN\n numbers[k] = isNaN(parsedValue) ? value : parsedValue;\n }\n });\n\n // there's two formats of insideBoundingBox, we need to parse\n // the one which is an array of float geo rectangles\n if (Array.isArray(partialState.insideBoundingBox)) {\n numbers.insideBoundingBox = partialState.insideBoundingBox.map(function (\n geoRect\n ) {\n if (Array.isArray(geoRect)) {\n return geoRect.map(function (value) {\n return parseFloat(value);\n });\n }\n return geoRect;\n });\n }\n\n if (partialState.numericRefinements) {\n var numericRefinements = {};\n Object.keys(partialState.numericRefinements).forEach(function (attribute) {\n var operators = partialState.numericRefinements[attribute] || {};\n numericRefinements[attribute] = {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator];\n var parsedValues = values.map(function (v) {\n if (Array.isArray(v)) {\n return v.map(function (vPrime) {\n if (typeof vPrime === 'string') {\n return parseFloat(vPrime);\n }\n return vPrime;\n });\n } else if (typeof v === 'string') {\n return parseFloat(v);\n }\n return v;\n });\n numericRefinements[attribute][operator] = parsedValues;\n });\n });\n numbers.numericRefinements = numericRefinements;\n }\n\n return merge({}, partialState, numbers);\n};\n\n/**\n * Factory for SearchParameters\n * @param {object|SearchParameters} newParameters existing parameters or partial\n * object for the properties of a new SearchParameters\n * @return {SearchParameters} frozen instance of SearchParameters\n */\nSearchParameters.make = function makeSearchParameters(newParameters) {\n var instance = new SearchParameters(newParameters);\n\n var hierarchicalFacets = newParameters.hierarchicalFacets || [];\n hierarchicalFacets.forEach(function (facet) {\n if (facet.rootPath) {\n var currentRefinement = instance.getHierarchicalRefinement(facet.name);\n\n if (\n currentRefinement.length > 0 &&\n currentRefinement[0].indexOf(facet.rootPath) !== 0\n ) {\n instance = instance.clearRefinements(facet.name);\n }\n\n // get it again in case it has been cleared\n currentRefinement = instance.getHierarchicalRefinement(facet.name);\n if (currentRefinement.length === 0) {\n instance = instance.toggleHierarchicalFacetRefinement(\n facet.name,\n facet.rootPath\n );\n }\n }\n });\n\n return instance;\n};\n\n/**\n * Validates the new parameters based on the previous state\n * @param {SearchParameters} currentState the current state\n * @param {object|SearchParameters} parameters the new parameters to set\n * @return {Error|null} Error if the modification is invalid, null otherwise\n */\nSearchParameters.validate = function (currentState, parameters) {\n var params = parameters || {};\n\n if (\n currentState.tagFilters &&\n params.tagRefinements &&\n params.tagRefinements.length > 0\n ) {\n return new Error(\n '[Tags] Cannot switch from the managed tag API to the advanced API. It is probably ' +\n 'an error, if it is really what you want, you should first clear the tags with clearTags method.'\n );\n }\n\n if (currentState.tagRefinements.length > 0 && params.tagFilters) {\n return new Error(\n '[Tags] Cannot switch from the advanced tag API to the managed API. It is probably ' +\n 'an error, if it is not, you should first clear the tags with clearTags method.'\n );\n }\n\n if (\n currentState.numericFilters &&\n params.numericRefinements &&\n objectHasKeys(params.numericRefinements)\n ) {\n return new Error(\n \"[Numeric filters] Can't switch from the advanced to the managed API. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.'\n );\n }\n\n if (objectHasKeys(currentState.numericRefinements) && params.numericFilters) {\n return new Error(\n \"[Numeric filters] Can't switch from the managed API to the advanced. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.'\n );\n }\n\n return null;\n};\n\nSearchParameters.prototype = {\n constructor: SearchParameters,\n\n /**\n * Remove all refinements (disjunctive + conjunctive + excludes + numeric filters)\n * @method\n * @param {undefined|string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {SearchParameters} new instance with filters cleared\n */\n clearRefinements: function clearRefinements(attribute) {\n var patch = {\n numericRefinements: this._clearNumericRefinements(attribute),\n facetsRefinements: RefinementList.clearRefinement(\n this.facetsRefinements,\n attribute,\n 'conjunctiveFacet'\n ),\n facetsExcludes: RefinementList.clearRefinement(\n this.facetsExcludes,\n attribute,\n 'exclude'\n ),\n disjunctiveFacetsRefinements: RefinementList.clearRefinement(\n this.disjunctiveFacetsRefinements,\n attribute,\n 'disjunctiveFacet'\n ),\n hierarchicalFacetsRefinements: RefinementList.clearRefinement(\n this.hierarchicalFacetsRefinements,\n attribute,\n 'hierarchicalFacet'\n ),\n };\n if (\n patch.numericRefinements === this.numericRefinements &&\n patch.facetsRefinements === this.facetsRefinements &&\n patch.facetsExcludes === this.facetsExcludes &&\n patch.disjunctiveFacetsRefinements ===\n this.disjunctiveFacetsRefinements &&\n patch.hierarchicalFacetsRefinements === this.hierarchicalFacetsRefinements\n ) {\n return this;\n }\n return this.setQueryParameters(patch);\n },\n /**\n * Remove all the refined tags from the SearchParameters\n * @method\n * @return {SearchParameters} new instance with tags cleared\n */\n clearTags: function clearTags() {\n if (this.tagFilters === undefined && this.tagRefinements.length === 0)\n return this;\n\n return this.setQueryParameters({\n tagFilters: undefined,\n tagRefinements: [],\n });\n },\n /**\n * Set the index.\n * @method\n * @param {string} index the index name\n * @return {SearchParameters} new instance\n */\n setIndex: function setIndex(index) {\n if (index === this.index) return this;\n\n return this.setQueryParameters({\n index: index,\n });\n },\n /**\n * Query setter\n * @method\n * @param {string} newQuery value for the new query\n * @return {SearchParameters} new instance\n */\n setQuery: function setQuery(newQuery) {\n if (newQuery === this.query) return this;\n\n return this.setQueryParameters({\n query: newQuery,\n });\n },\n /**\n * Page setter\n * @method\n * @param {number} newPage new page number\n * @return {SearchParameters} new instance\n */\n setPage: function setPage(newPage) {\n if (newPage === this.page) return this;\n\n return this.setQueryParameters({\n page: newPage,\n });\n },\n /**\n * Facets setter\n * The facets are the simple facets, used for conjunctive (and) faceting.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for conjunctive faceting\n * @return {SearchParameters} new instance\n */\n setFacets: function setFacets(facets) {\n return this.setQueryParameters({\n facets: facets,\n });\n },\n /**\n * Disjunctive facets setter\n * Change the list of disjunctive (or) facets the helper chan handle.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for disjunctive faceting\n * @return {SearchParameters} new instance\n */\n setDisjunctiveFacets: function setDisjunctiveFacets(facets) {\n return this.setQueryParameters({\n disjunctiveFacets: facets,\n });\n },\n /**\n * HitsPerPage setter\n * Hits per page represents the number of hits retrieved for this query\n * @method\n * @param {number} n number of hits retrieved per page of results\n * @return {SearchParameters} new instance\n */\n setHitsPerPage: function setHitsPerPage(n) {\n if (this.hitsPerPage === n) return this;\n\n return this.setQueryParameters({\n hitsPerPage: n,\n });\n },\n /**\n * typoTolerance setter\n * Set the value of typoTolerance\n * @method\n * @param {string} typoTolerance new value of typoTolerance (\"true\", \"false\", \"min\" or \"strict\")\n * @return {SearchParameters} new instance\n */\n setTypoTolerance: function setTypoTolerance(typoTolerance) {\n if (this.typoTolerance === typoTolerance) return this;\n\n return this.setQueryParameters({\n typoTolerance: typoTolerance,\n });\n },\n /**\n * Add a numeric filter for a given attribute\n * When value is an array, they are combined with OR\n * When value is a single value, it will combined with AND\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} operator operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number | number[]} value value of the filter\n * @return {SearchParameters} new instance\n * @example\n * // for price = 50 or 40\n * state.addNumericRefinement('price', '=', [50, 40]);\n * @example\n * // for size = 38 and 40\n * state.addNumericRefinement('size', '=', 38);\n * state.addNumericRefinement('size', '=', 40);\n */\n addNumericRefinement: function (attribute, operator, value) {\n var val = valToNumber(value);\n\n if (this.isNumericRefined(attribute, operator, val)) return this;\n\n var mod = merge({}, this.numericRefinements);\n\n mod[attribute] = merge({}, mod[attribute]);\n\n if (mod[attribute][operator]) {\n // Array copy\n mod[attribute][operator] = mod[attribute][operator].slice();\n // Add the element. Concat can't be used here because value can be an array.\n mod[attribute][operator].push(val);\n } else {\n mod[attribute][operator] = [val];\n }\n\n return this.setQueryParameters({\n numericRefinements: mod,\n });\n },\n /**\n * Get the list of conjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getConjunctiveRefinements: function (facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsRefinements[facetName] || [];\n },\n /**\n * Get the list of disjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getDisjunctiveRefinements: function (facetName) {\n if (!this.isDisjunctiveFacet(facetName)) {\n return [];\n }\n return this.disjunctiveFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of hierarchical refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getHierarchicalRefinement: function (facetName) {\n // we send an array but we currently do not support multiple\n // hierarchicalRefinements for a hierarchicalFacet\n return this.hierarchicalFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of exclude refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getExcludeRefinements: function (facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsExcludes[facetName] || [];\n },\n\n /**\n * Remove all the numeric filter for a given (attribute, operator)\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} [operator] operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number} [number] the value to be removed\n * @return {SearchParameters} new instance\n */\n removeNumericRefinement: function (attribute, operator, number) {\n var paramValue = number;\n if (paramValue !== undefined) {\n if (!this.isNumericRefined(attribute, operator, paramValue)) {\n return this;\n }\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (\n value,\n key\n ) {\n return (\n key === attribute &&\n value.op === operator &&\n isEqualNumericRefinement(value.val, valToNumber(paramValue))\n );\n }),\n });\n } else if (operator !== undefined) {\n if (!this.isNumericRefined(attribute, operator)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (\n value,\n key\n ) {\n return key === attribute && value.op === operator;\n }),\n });\n }\n\n if (!this.isNumericRefined(attribute)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (value, key) {\n return key === attribute;\n }),\n });\n },\n /**\n * Get the list of numeric refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {SearchParameters.OperatorList} list of refinements\n */\n getNumericRefinements: function (facetName) {\n return this.numericRefinements[facetName] || {};\n },\n /**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\n getNumericRefinement: function (attribute, operator) {\n return (\n this.numericRefinements[attribute] &&\n this.numericRefinements[attribute][operator]\n );\n },\n /**\n * Clear numeric filters.\n * @method\n * @private\n * @param {string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {Object.} new numeric refinements\n */\n _clearNumericRefinements: function _clearNumericRefinements(attribute) {\n if (attribute === undefined) {\n if (!objectHasKeys(this.numericRefinements)) {\n return this.numericRefinements;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(this.numericRefinements, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n var numericRefinements = this.numericRefinements;\n var newNumericRefinements = Object.keys(numericRefinements).reduce(\n function (memo, key) {\n var operators = numericRefinements[key];\n var operatorList = {};\n\n operators = operators || {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator] || [];\n var outValues = [];\n values.forEach(function (value) {\n var predicateResult = attribute(\n { val: value, op: operator },\n key,\n 'numeric'\n );\n if (!predicateResult) outValues.push(value);\n });\n if (outValues.length !== values.length) {\n hasChanged = true;\n }\n operatorList[operator] = outValues;\n });\n\n memo[key] = operatorList;\n\n return memo;\n },\n {}\n );\n\n if (hasChanged) return newNumericRefinements;\n return this.numericRefinements;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\n },\n /**\n * Add a facet to the facets attribute of the helper configuration, if it\n * isn't already present.\n * @method\n * @param {string} facet facet name to add\n * @return {SearchParameters} new instance\n */\n addFacet: function addFacet(facet) {\n if (this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n facets: this.facets.concat([facet]),\n });\n },\n /**\n * Add a disjunctive facet to the disjunctiveFacets attribute of the helper\n * configuration, if it isn't already present.\n * @method\n * @param {string} facet disjunctive facet name to add\n * @return {SearchParameters} new instance\n */\n addDisjunctiveFacet: function addDisjunctiveFacet(facet) {\n if (this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.concat([facet]),\n });\n },\n /**\n * Add a hierarchical facet to the hierarchicalFacets attribute of the helper\n * configuration.\n * @method\n * @param {object} hierarchicalFacet hierarchical facet to add\n * @return {SearchParameters} new instance\n * @throws will throw an error if a hierarchical facet with the same name was already declared\n */\n addHierarchicalFacet: function addHierarchicalFacet(hierarchicalFacet) {\n if (this.isHierarchicalFacet(hierarchicalFacet.name)) {\n throw new Error(\n 'Cannot declare two hierarchical facets with the same name: `' +\n hierarchicalFacet.name +\n '`'\n );\n }\n\n return this.setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.concat([hierarchicalFacet]),\n });\n },\n /**\n * Add a refinement on a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addFacetRefinement: function addFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (RefinementList.isRefined(this.facetsRefinements, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.addRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Exclude a value from a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the exclusion on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addExcludeRefinement: function addExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (RefinementList.isRefined(this.facetsExcludes, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.addRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Adds a refinement on a disjunctive facet.\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addDisjunctiveFacetRefinement: function addDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n\n if (\n RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)\n )\n return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.addRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * addTagRefinement adds a tag to the list used to filter the results\n * @param {string} tag tag to be added\n * @return {SearchParameters} new instance\n */\n addTagRefinement: function addTagRefinement(tag) {\n if (this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.concat(tag),\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Remove a facet from the facets attribute of the helper configuration, if it\n * is present.\n * @method\n * @param {string} facet facet name to remove\n * @return {SearchParameters} new instance\n */\n removeFacet: function removeFacet(facet) {\n if (!this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n facets: this.facets.filter(function (f) {\n return f !== facet;\n }),\n });\n },\n /**\n * Remove a disjunctive facet from the disjunctiveFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet disjunctive facet name to remove\n * @return {SearchParameters} new instance\n */\n removeDisjunctiveFacet: function removeDisjunctiveFacet(facet) {\n if (!this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.filter(function (f) {\n return f !== facet;\n }),\n });\n },\n /**\n * Remove a hierarchical facet from the hierarchicalFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet hierarchical facet name to remove\n * @return {SearchParameters} new instance\n */\n removeHierarchicalFacet: function removeHierarchicalFacet(facet) {\n if (!this.isHierarchicalFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.filter(function (f) {\n return f.name !== facet;\n }),\n });\n },\n /**\n * Remove a refinement set on facet. If a value is provided, it will clear the\n * refinement for the given value, otherwise it will clear all the refinement\n * values for the faceted attribute.\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} [value] value used to filter\n * @return {SearchParameters} new instance\n */\n removeFacetRefinement: function removeFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (!RefinementList.isRefined(this.facetsRefinements, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.removeRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a negative refinement on a facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters} new instance\n */\n removeExcludeRefinement: function removeExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (!RefinementList.isRefined(this.facetsExcludes, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.removeRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a refinement on a disjunctive facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters} new instance\n */\n removeDisjunctiveFacetRefinement: function removeDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n if (\n !RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)\n )\n return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.removeRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a tag from the list of tag refinements\n * @method\n * @param {string} tag the tag to remove\n * @return {SearchParameters} new instance\n */\n removeTagRefinement: function removeTagRefinement(tag) {\n if (!this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.filter(function (t) {\n return t !== tag;\n }),\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters} new instance\n * @throws will throw an error if the facet is not declared in the settings of the helper\n * @deprecated since version 2.19.0, see {@link SearchParameters#toggleFacetRefinement}\n */\n toggleRefinement: function toggleRefinement(facet, value) {\n return this.toggleFacetRefinement(facet, value);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters} new instance\n * @throws will throw an error if the facet is not declared in the settings of the helper\n */\n toggleFacetRefinement: function toggleFacetRefinement(facet, value) {\n if (this.isHierarchicalFacet(facet)) {\n return this.toggleHierarchicalFacetRefinement(facet, value);\n } else if (this.isConjunctiveFacet(facet)) {\n return this.toggleConjunctiveFacetRefinement(facet, value);\n } else if (this.isDisjunctiveFacet(facet)) {\n return this.toggleDisjunctiveFacetRefinement(facet, value);\n }\n\n throw new Error(\n 'Cannot refine the undeclared facet ' +\n facet +\n '; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets'\n );\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleConjunctiveFacetRefinement: function toggleConjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.toggleRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleExcludeFacetRefinement: function toggleExcludeFacetRefinement(\n facet,\n value\n ) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.toggleRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleDisjunctiveFacetRefinement: function toggleDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.toggleRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleHierarchicalFacetRefinement: function toggleHierarchicalFacetRefinement(\n facet,\n value\n ) {\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the hierarchicalFacets attribute of the helper configuration'\n );\n }\n\n var separator = this._getHierarchicalFacetSeparator(\n this.getHierarchicalFacetByName(facet)\n );\n\n var mod = {};\n\n var upOneOrMultipleLevel =\n this.hierarchicalFacetsRefinements[facet] !== undefined &&\n this.hierarchicalFacetsRefinements[facet].length > 0 &&\n // remove current refinement:\n // refinement was 'beer > IPA', call is toggleRefine('beer > IPA'), refinement should be `beer`\n (this.hierarchicalFacetsRefinements[facet][0] === value ||\n // remove a parent refinement of the current refinement:\n // - refinement was 'beer > IPA > Flying dog'\n // - call is toggleRefine('beer > IPA')\n // - refinement should be `beer`\n this.hierarchicalFacetsRefinements[facet][0].indexOf(\n value + separator\n ) === 0);\n\n if (upOneOrMultipleLevel) {\n if (value.indexOf(separator) === -1) {\n // go back to root level\n mod[facet] = [];\n } else {\n mod[facet] = [value.slice(0, value.lastIndexOf(separator))];\n }\n } else {\n mod[facet] = [value];\n }\n\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n {},\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n\n /**\n * Adds a refinement on a hierarchical facet.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is refined\n */\n addHierarchicalFacetRefinement: function (facet, path) {\n if (this.isHierarchicalFacetRefined(facet)) {\n throw new Error(facet + ' is already refined.');\n }\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the hierarchicalFacets attribute of the helper configuration.'\n );\n }\n var mod = {};\n mod[facet] = [path];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n {},\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n\n /**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is not refined\n */\n removeHierarchicalFacetRefinement: function (facet) {\n if (!this.isHierarchicalFacetRefined(facet)) {\n return this;\n }\n var mod = {};\n mod[facet] = [];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n {},\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n /**\n * Switch the tag refinement\n * @method\n * @param {string} tag the tag to remove or add\n * @return {SearchParameters} new instance\n */\n toggleTagRefinement: function toggleTagRefinement(tag) {\n if (this.isTagRefined(tag)) {\n return this.removeTagRefinement(tag);\n }\n\n return this.addTagRefinement(tag);\n },\n /**\n * Test if the facet name is from one of the disjunctive facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean} true if facet is a disjunctive facet\n */\n isDisjunctiveFacet: function (facet) {\n return this.disjunctiveFacets.indexOf(facet) > -1;\n },\n /**\n * Test if the facet name is from one of the hierarchical facets\n * @method\n * @param {string} facetName facet name to test\n * @return {boolean} true if facetName is a hierarchical facet\n */\n isHierarchicalFacet: function (facetName) {\n return this.getHierarchicalFacetByName(facetName) !== undefined;\n },\n /**\n * Test if the facet name is from one of the conjunctive/normal facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean} true if facet is a conjunctive facet\n */\n isConjunctiveFacet: function (facet) {\n return this.facets.indexOf(facet) > -1;\n },\n /**\n * Returns true if the facet is refined, either for a specific value or in\n * general.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value, optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isFacetRefined: function isFacetRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsRefinements, facet, value);\n },\n /**\n * Returns true if the facet contains exclusions or if a specific value is\n * excluded.\n *\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isExcludeRefined: function isExcludeRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsExcludes, facet, value);\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean} true if the facet is refined\n */\n isDisjunctiveFacetRefined: function isDisjunctiveFacetRefined(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n );\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean} true if the facet is refined\n */\n isHierarchicalFacetRefined: function isHierarchicalFacetRefined(\n facet,\n value\n ) {\n if (!this.isHierarchicalFacet(facet)) {\n return false;\n }\n\n var refinements = this.getHierarchicalRefinement(facet);\n\n if (!value) {\n return refinements.length > 0;\n }\n\n return refinements.indexOf(value) !== -1;\n },\n /**\n * Test if the triple (attribute, operator, value) is already refined.\n * If only the attribute and the operator are provided, it tests if the\n * contains any refinement value.\n * @method\n * @param {string} attribute attribute for which the refinement is applied\n * @param {string} [operator] operator of the refinement\n * @param {string} [value] value of the refinement\n * @return {boolean} true if it is refined\n */\n isNumericRefined: function isNumericRefined(attribute, operator, value) {\n if (value === undefined && operator === undefined) {\n return Boolean(this.numericRefinements[attribute]);\n }\n\n var isOperatorDefined =\n this.numericRefinements[attribute] &&\n this.numericRefinements[attribute][operator] !== undefined;\n\n if (value === undefined || !isOperatorDefined) {\n return isOperatorDefined;\n }\n\n var parsedValue = valToNumber(value);\n var isAttributeValueDefined =\n findArray(this.numericRefinements[attribute][operator], parsedValue) !==\n undefined;\n\n return isOperatorDefined && isAttributeValueDefined;\n },\n /**\n * Returns true if the tag refined, false otherwise\n * @method\n * @param {string} tag the tag to check\n * @return {boolean} true if tag is refined\n */\n isTagRefined: function isTagRefined(tag) {\n return this.tagRefinements.indexOf(tag) !== -1;\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]} returns the list of refinements\n */\n getRefinedDisjunctiveFacets: function getRefinedDisjunctiveFacets() {\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // attributes used for numeric filter can also be disjunctive\n var disjunctiveNumericRefinedFacets = intersection(\n Object.keys(this.numericRefinements).filter(function (facet) {\n return Object.keys(self.numericRefinements[facet]).length > 0;\n }),\n this.disjunctiveFacets\n );\n\n return Object.keys(this.disjunctiveFacetsRefinements)\n .filter(function (facet) {\n return self.disjunctiveFacetsRefinements[facet].length > 0;\n })\n .concat(disjunctiveNumericRefinedFacets)\n .concat(this.getRefinedHierarchicalFacets())\n .sort();\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]} returns the list of refinements\n */\n getRefinedHierarchicalFacets: function getRefinedHierarchicalFacets() {\n // eslint-disable-next-line consistent-this\n var self = this;\n return intersection(\n // enforce the order between the two arrays,\n // so that refinement name index === hierarchical facet index\n this.hierarchicalFacets.map(function (facet) {\n return facet.name;\n }),\n Object.keys(this.hierarchicalFacetsRefinements).filter(function (facet) {\n return self.hierarchicalFacetsRefinements[facet].length > 0;\n })\n ).sort();\n },\n /**\n * Returned the list of all disjunctive facets not refined\n * @method\n * @return {string[]} returns the list of facets that are not refined\n */\n getUnrefinedDisjunctiveFacets: function () {\n var refinedFacets = this.getRefinedDisjunctiveFacets();\n\n return this.disjunctiveFacets.filter(function (f) {\n return refinedFacets.indexOf(f) === -1;\n });\n },\n\n managedParameters: [\n 'index',\n\n 'facets',\n 'disjunctiveFacets',\n 'facetsRefinements',\n 'hierarchicalFacets',\n 'facetsExcludes',\n\n 'disjunctiveFacetsRefinements',\n 'numericRefinements',\n 'tagRefinements',\n 'hierarchicalFacetsRefinements',\n ],\n\n getQueryParams: function getQueryParams() {\n var managedParameters = this.managedParameters;\n\n var queryParams = {};\n\n // eslint-disable-next-line consistent-this\n var self = this;\n Object.keys(this).forEach(function (paramName) {\n var paramValue = self[paramName];\n if (\n managedParameters.indexOf(paramName) === -1 &&\n paramValue !== undefined\n ) {\n queryParams[paramName] = paramValue;\n }\n });\n\n return queryParams;\n },\n /**\n * Let the user set a specific value for a given parameter. Will return the\n * same instance if the parameter is invalid or if the value is the same as the\n * previous one.\n * @method\n * @param {string} parameter the parameter name\n * @param {any} value the value to be set, must be compliant with the definition\n * of the attribute on the object\n * @return {SearchParameters} the updated state\n */\n setQueryParameter: function setParameter(parameter, value) {\n if (this[parameter] === value) return this;\n\n var modification = {};\n\n modification[parameter] = value;\n\n return this.setQueryParameters(modification);\n },\n /**\n * Let the user set any of the parameters with a plain object.\n * @method\n * @param {object} params all the keys and the values to be updated\n * @return {SearchParameters} a new updated instance\n */\n setQueryParameters: function setQueryParameters(params) {\n if (!params) return this;\n\n var error = SearchParameters.validate(this, params);\n\n if (error) {\n throw error;\n }\n\n // eslint-disable-next-line consistent-this\n var self = this;\n var nextWithNumbers = SearchParameters._parseNumbers(params);\n var previousPlainObject = Object.keys(this).reduce(function (acc, key) {\n acc[key] = self[key];\n return acc;\n }, {});\n\n var nextPlainObject = Object.keys(nextWithNumbers).reduce(function (\n previous,\n key\n ) {\n var isPreviousValueDefined = previous[key] !== undefined;\n var isNextValueDefined = nextWithNumbers[key] !== undefined;\n\n if (isPreviousValueDefined && !isNextValueDefined) {\n return omit(previous, [key]);\n }\n\n if (isNextValueDefined) {\n previous[key] = nextWithNumbers[key];\n }\n\n return previous;\n },\n previousPlainObject);\n\n return new this.constructor(nextPlainObject);\n },\n\n /**\n * Returns a new instance with the page reset. Two scenarios possible:\n * the page is omitted -> return the given instance\n * the page is set -> return a new instance with a page of 0\n * @return {SearchParameters} a new updated instance\n */\n resetPage: function () {\n if (this.page === undefined) {\n return this;\n }\n\n return this.setPage(0);\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSortBy: function (hierarchicalFacet) {\n return hierarchicalFacet.sortBy || ['isRefined:desc', 'name:asc'];\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSeparator: function (hierarchicalFacet) {\n return hierarchicalFacet.separator || ' > ';\n },\n\n /**\n * Helper function to get the hierarchicalFacet prefix path or null\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.rootPath or null as default\n */\n _getHierarchicalRootPath: function (hierarchicalFacet) {\n return hierarchicalFacet.rootPath || null;\n },\n\n /**\n * Helper function to check if we show the parent level of the hierarchicalFacet\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.showParentLevel or true as default\n */\n _getHierarchicalShowParentLevel: function (hierarchicalFacet) {\n if (typeof hierarchicalFacet.showParentLevel === 'boolean') {\n return hierarchicalFacet.showParentLevel;\n }\n return true;\n },\n\n /**\n * Helper function to get the hierarchicalFacet by it's name\n * @param {string} hierarchicalFacetName the hierarchicalFacet name\n * @return {object} a hierarchicalFacet\n */\n getHierarchicalFacetByName: function (hierarchicalFacetName) {\n return find(this.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacetName;\n });\n },\n\n /**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\n getHierarchicalFacetBreadcrumb: function (facetName) {\n if (!this.isHierarchicalFacet(facetName)) {\n return [];\n }\n\n var refinement = this.getHierarchicalRefinement(facetName)[0];\n if (!refinement) return [];\n\n var separator = this._getHierarchicalFacetSeparator(\n this.getHierarchicalFacetByName(facetName)\n );\n var path = refinement.split(separator);\n return path.map(function (part) {\n return part.trim();\n });\n },\n\n toString: function () {\n return JSON.stringify(this, null, 2);\n },\n};\n\n/**\n * Callback used for clearRefinement method\n * @callback SearchParameters.clearCallback\n * @param {OperatorList|FacetList} value the value of the filter\n * @param {string} key the current attribute name\n * @param {string} type `numeric`, `disjunctiveFacet`, `conjunctiveFacet`, `hierarchicalFacet` or `exclude`\n * depending on the type of facet\n * @return {boolean} `true` if the element should be removed. `false` otherwise.\n */\nmodule.exports = SearchParameters;\n","'use strict';\n\nmodule.exports = generateTrees;\n\nvar fv = require('../functions/escapeFacetValue');\nvar find = require('../functions/find');\nvar prepareHierarchicalFacetSortBy = require('../functions/formatSort');\nvar orderBy = require('../functions/orderBy');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nfunction generateTrees(state) {\n return function generate(hierarchicalFacetResult, hierarchicalFacetIndex) {\n var hierarchicalFacet = state.hierarchicalFacets[hierarchicalFacetIndex];\n var hierarchicalFacetRefinement =\n (state.hierarchicalFacetsRefinements[hierarchicalFacet.name] &&\n state.hierarchicalFacetsRefinements[hierarchicalFacet.name][0]) ||\n '';\n var hierarchicalSeparator =\n state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var hierarchicalRootPath =\n state._getHierarchicalRootPath(hierarchicalFacet);\n var hierarchicalShowParentLevel =\n state._getHierarchicalShowParentLevel(hierarchicalFacet);\n var sortBy = prepareHierarchicalFacetSortBy(\n state._getHierarchicalFacetSortBy(hierarchicalFacet)\n );\n\n var rootExhaustive = hierarchicalFacetResult.every(function (facetResult) {\n return facetResult.exhaustive;\n });\n\n var generateTreeFn = generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n hierarchicalFacetRefinement\n );\n\n var results = hierarchicalFacetResult;\n\n if (hierarchicalRootPath) {\n results = hierarchicalFacetResult.slice(\n hierarchicalRootPath.split(hierarchicalSeparator).length\n );\n }\n\n return results.reduce(generateTreeFn, {\n name: state.hierarchicalFacets[hierarchicalFacetIndex].name,\n count: null, // root level, no count\n isRefined: true, // root level, always refined\n path: null, // root level, no path\n escapedValue: null,\n exhaustive: rootExhaustive,\n data: null,\n });\n };\n}\n\nfunction generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n currentRefinement\n) {\n return function generateTree(\n hierarchicalTree,\n hierarchicalFacetResult,\n currentHierarchicalLevel\n ) {\n var parent = hierarchicalTree;\n\n if (currentHierarchicalLevel > 0) {\n var level = 0;\n\n parent = hierarchicalTree;\n\n while (level < currentHierarchicalLevel) {\n /**\n * @type {object[]]} hierarchical data\n */\n var data = parent && Array.isArray(parent.data) ? parent.data : [];\n parent = find(data, function (subtree) {\n return subtree.isRefined;\n });\n level++;\n }\n }\n\n // we found a refined parent, let's add current level data under it\n if (parent) {\n // filter values in case an object has multiple categories:\n // {\n // categories: {\n // level0: ['beers', 'bières'],\n // level1: ['beers > IPA', 'bières > Belges']\n // }\n // }\n //\n // If parent refinement is `beers`, then we do not want to have `bières > Belges`\n // showing up\n\n var picked = Object.keys(hierarchicalFacetResult.data)\n .map(function (facetValue) {\n return [facetValue, hierarchicalFacetResult.data[facetValue]];\n })\n .filter(function (tuple) {\n var facetValue = tuple[0];\n return onlyMatchingTree(\n facetValue,\n parent.path || hierarchicalRootPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n );\n });\n\n parent.data = orderBy(\n picked.map(function (tuple) {\n var facetValue = tuple[0];\n var facetCount = tuple[1];\n\n return format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n unescapeFacetValue(currentRefinement),\n hierarchicalFacetResult.exhaustive\n );\n }),\n sortBy[0],\n sortBy[1]\n );\n }\n\n return hierarchicalTree;\n };\n}\n\n// eslint-disable-next-line max-params\nfunction onlyMatchingTree(\n facetValue,\n parentPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n) {\n // we want the facetValue is a child of hierarchicalRootPath\n if (\n hierarchicalRootPath &&\n (facetValue.indexOf(hierarchicalRootPath) !== 0 ||\n hierarchicalRootPath === facetValue)\n ) {\n return false;\n }\n\n // we always want root levels (only when there is no prefix path)\n return (\n (!hierarchicalRootPath &&\n facetValue.indexOf(hierarchicalSeparator) === -1) ||\n // if there is a rootPath, being root level mean 1 level under rootPath\n (hierarchicalRootPath &&\n facetValue.split(hierarchicalSeparator).length -\n hierarchicalRootPath.split(hierarchicalSeparator).length ===\n 1) ||\n // if current refinement is a root level and current facetValue is a root level,\n // keep the facetValue\n (facetValue.indexOf(hierarchicalSeparator) === -1 &&\n currentRefinement.indexOf(hierarchicalSeparator) === -1) ||\n // currentRefinement is a child of the facet value\n currentRefinement.indexOf(facetValue) === 0 ||\n // facetValue is a child of the current parent, add it\n (facetValue.indexOf(parentPath + hierarchicalSeparator) === 0 &&\n (hierarchicalShowParentLevel ||\n facetValue.indexOf(currentRefinement) === 0))\n );\n}\n\nfunction format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n currentRefinement,\n exhaustive\n) {\n var parts = facetValue.split(hierarchicalSeparator);\n return {\n name: parts[parts.length - 1].trim(),\n path: facetValue,\n escapedValue: escapeFacetValue(facetValue),\n count: facetCount,\n isRefined:\n currentRefinement === facetValue ||\n currentRefinement.indexOf(facetValue + hierarchicalSeparator) === 0,\n exhaustive: exhaustive,\n data: null,\n };\n}\n","'use strict';\n\nvar compact = require('../functions/compact');\nvar defaultsPure = require('../functions/defaultsPure');\nvar fv = require('../functions/escapeFacetValue');\nvar find = require('../functions/find');\nvar findIndex = require('../functions/findIndex');\nvar formatSort = require('../functions/formatSort');\nvar merge = require('../functions/merge');\nvar orderBy = require('../functions/orderBy');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nvar generateHierarchicalTree = require('./generate-hierarchical-tree');\n\n/**\n * @typedef SearchResults.Facet\n * @type {object}\n * @property {string} name name of the attribute in the record\n * @property {object} data the faceting data: value, number of entries\n * @property {object} stats undefined unless facet_stats is retrieved from algolia\n */\n\n/**\n * @typedef SearchResults.HierarchicalFacet\n * @type {object}\n * @property {string} name name of the current value given the hierarchical level, trimmed.\n * If root node, you get the facet name\n * @property {number} count number of objects matching this hierarchical value\n * @property {string} path the current hierarchical value full path\n * @property {boolean} isRefined `true` if the current value was refined, `false` otherwise\n * @property {HierarchicalFacet[]} data sub values for the current level\n */\n\n/**\n * @typedef SearchResults.FacetValue\n * @type {object}\n * @property {string} name the facet value itself\n * @property {number} count times this facet appears in the results\n * @property {boolean} isRefined is the facet currently selected\n * @property {boolean} isExcluded is the facet currently excluded (only for conjunctive facets)\n */\n\n/**\n * @typedef Refinement\n * @type {object}\n * @property {string} type the type of filter used:\n * `numeric`, `facet`, `exclude`, `disjunctive`, `hierarchical`\n * @property {string} attributeName name of the attribute used for filtering\n * @property {string} name the value of the filter\n * @property {number} numericValue the value as a number. Only for numeric filters.\n * @property {string} operator the operator used. Only for numeric filters.\n * @property {number} count the number of computed hits for this filter. Only on facets.\n * @property {boolean} exhaustive if the count is exhaustive\n */\n\n/**\n * Turn an array of attributes in an object of attributes with their position in the array as value\n * @param {string[]} attributes the list of attributes in the record\n * @return {object} the list of attributes indexed by attribute name\n */\nfunction getIndices(attributes) {\n var indices = {};\n\n attributes.forEach(function (val, idx) {\n indices[val] = idx;\n });\n\n return indices;\n}\n\nfunction assignFacetStats(dest, facetStats, key) {\n if (facetStats && facetStats[key]) {\n dest.stats = facetStats[key];\n }\n}\n\n/**\n * @typedef {Object} HierarchicalFacet\n * @property {string} name\n * @property {string[]} attributes\n */\n\n/**\n * @param {HierarchicalFacet[]} hierarchicalFacets All hierarchical facets\n * @param {string} hierarchicalAttributeName The name of the hierarchical attribute\n * @return {HierarchicalFacet} The hierarchical facet matching the attribute name\n */\nfunction findMatchingHierarchicalFacetFromAttributeName(\n hierarchicalFacets,\n hierarchicalAttributeName\n) {\n return find(\n hierarchicalFacets,\n function facetKeyMatchesAttribute(hierarchicalFacet) {\n var facetNames = hierarchicalFacet.attributes || [];\n return facetNames.indexOf(hierarchicalAttributeName) > -1;\n }\n );\n}\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * Constructor for SearchResults\n * @class\n * @classdesc SearchResults contains the results of a query to Algolia using the\n * {@link AlgoliaSearchHelper}.\n * @param {SearchParameters} state state that led to the response\n * @param {array.} results the results from algolia client\n * @example SearchResults of the first query in\n * the instant search demo\n{\n \"hitsPerPage\": 10,\n \"processingTimeMS\": 2,\n \"facets\": [\n {\n \"name\": \"type\",\n \"data\": {\n \"HardGood\": 6627,\n \"BlackTie\": 550,\n \"Music\": 665,\n \"Software\": 131,\n \"Game\": 456,\n \"Movie\": 1571\n },\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"Free shipping\": 5507\n },\n \"name\": \"shipping\"\n }\n ],\n \"hits\": [\n {\n \"thumbnailImage\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_54x108_s.gif\",\n \"_highlightResult\": {\n \"shortDescription\": {\n \"matchLevel\": \"none\",\n \"value\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"matchedWords\": []\n },\n \"category\": {\n \"matchLevel\": \"none\",\n \"value\": \"Computer Security Software\",\n \"matchedWords\": []\n },\n \"manufacturer\": {\n \"matchedWords\": [],\n \"value\": \"Webroot\",\n \"matchLevel\": \"none\"\n },\n \"name\": {\n \"value\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"matchedWords\": [],\n \"matchLevel\": \"none\"\n }\n },\n \"image\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_105x210_sc.jpg\",\n \"shipping\": \"Free shipping\",\n \"bestSellingRank\": 4,\n \"shortDescription\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"url\": \"http://www.bestbuy.com/site/webroot-secureanywhere-internet-security-3-devi…d=1219060687969&skuId=1688832&cmp=RMX&ky=2d3GfEmNIzjA0vkzveHdZEBgpPCyMnLTJ\",\n \"name\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"category\": \"Computer Security Software\",\n \"salePrice_range\": \"1 - 50\",\n \"objectID\": \"1688832\",\n \"type\": \"Software\",\n \"customerReviewCount\": 5980,\n \"salePrice\": 49.99,\n \"manufacturer\": \"Webroot\"\n },\n ....\n ],\n \"nbHits\": 10000,\n \"disjunctiveFacets\": [\n {\n \"exhaustive\": false,\n \"data\": {\n \"5\": 183,\n \"12\": 112,\n \"7\": 149,\n ...\n },\n \"name\": \"customerReviewCount\",\n \"stats\": {\n \"max\": 7461,\n \"avg\": 157.939,\n \"min\": 1\n }\n },\n {\n \"data\": {\n \"Printer Ink\": 142,\n \"Wireless Speakers\": 60,\n \"Point & Shoot Cameras\": 48,\n ...\n },\n \"name\": \"category\",\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"> 5000\": 2,\n \"1 - 50\": 6524,\n \"501 - 2000\": 566,\n \"201 - 500\": 1501,\n \"101 - 200\": 1360,\n \"2001 - 5000\": 47\n },\n \"name\": \"salePrice_range\"\n },\n {\n \"data\": {\n \"Dynex™\": 202,\n \"Insignia™\": 230,\n \"PNY\": 72,\n ...\n },\n \"name\": \"manufacturer\",\n \"exhaustive\": false\n }\n ],\n \"query\": \"\",\n \"nbPages\": 100,\n \"page\": 0,\n \"index\": \"bestbuy\"\n}\n **/\nfunction SearchResults(state, results, options) {\n var mainSubResponse = results[0];\n\n this._rawResults = results;\n\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // https://www.algolia.com/doc/api-reference/api-methods/search/#response\n Object.keys(mainSubResponse).forEach(function (key) {\n self[key] = mainSubResponse[key];\n });\n\n // Make every key of the result options reachable from the instance\n Object.keys(options || {}).forEach(function (key) {\n self[key] = options[key];\n });\n\n /**\n * query used to generate the results\n * @name query\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The query as parsed by the engine given all the rules.\n * @name parsedQuery\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * all the records that match the search parameters. Each record is\n * augmented with a new attribute `_highlightResult`\n * which is an object keyed by attribute and with the following properties:\n * - `value` : the value of the facet highlighted (html)\n * - `matchLevel`: `full`, `partial` or `none`, depending on how the query terms match\n * @name hits\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * index where the results come from\n * @name index\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * number of hits per page requested\n * @name hitsPerPage\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of hits of this query on the index\n * @name nbHits\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of pages with respect to the number of hits per page and the total number of hits\n * @name nbPages\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * current page\n * @name page\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The position if the position was guessed by IP.\n * @name aroundLatLng\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"48.8637,2.3615\",\n */\n /**\n * The radius computed by Algolia.\n * @name automaticRadius\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"126792922\",\n */\n /**\n * String identifying the server used to serve this request.\n *\n * getRankingInfo needs to be set to `true` for this to be returned\n *\n * @name serverUsed\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"c7-use-2.algolia.net\",\n */\n /**\n * Boolean that indicates if the computation of the counts did time out.\n * @deprecated\n * @name timeoutCounts\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Boolean that indicates if the computation of the hits did time out.\n * @deprecated\n * @name timeoutHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the counts of the facets is exhaustive\n * @name exhaustiveFacetsCount\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the number of hits is exhaustive\n * @name exhaustiveNbHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Contains the userData if they are set by a [query rule](https://www.algolia.com/doc/guides/query-rules/query-rules-overview/).\n * @name userData\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * queryID is the unique identifier of the query used to generate the current search results.\n * This value is only available if the `clickAnalytics` search parameter is set to `true`.\n * @name queryID\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n\n /**\n * sum of the processing time of all the queries\n * @name processingTimeMS\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n this.processingTimeMS = results.reduce(function (sum, result) {\n return result.processingTimeMS === undefined\n ? sum\n : sum + result.processingTimeMS;\n }, 0);\n\n /**\n * disjunctive facets results\n * @member {SearchResults.Facet[]}\n */\n this.disjunctiveFacets = [];\n /**\n * disjunctive facets results\n * @member {SearchResults.HierarchicalFacet[]}\n */\n this.hierarchicalFacets = state.hierarchicalFacets.map(\n function initFutureTree() {\n return [];\n }\n );\n /**\n * other facets results\n * @member {SearchResults.Facet[]}\n */\n this.facets = [];\n\n var disjunctiveFacets = state.getRefinedDisjunctiveFacets();\n\n var facetsIndices = getIndices(state.facets);\n var disjunctiveFacetsIndices = getIndices(state.disjunctiveFacets);\n var nextDisjunctiveResult = 1;\n\n // Since we send request only for disjunctive facets that have been refined,\n // we get the facets information from the first, general, response.\n\n var mainFacets = mainSubResponse.facets || {};\n\n Object.keys(mainFacets).forEach(function (facetKey) {\n var facetValueObject = mainFacets[facetKey];\n\n var hierarchicalFacet = findMatchingHierarchicalFacetFromAttributeName(\n state.hierarchicalFacets,\n facetKey\n );\n\n if (hierarchicalFacet) {\n // Place the hierarchicalFacet data at the correct index depending on\n // the attributes order that was defined at the helper initialization\n var facetIndex = hierarchicalFacet.attributes.indexOf(facetKey);\n var idxAttributeName = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n self.hierarchicalFacets[idxAttributeName][facetIndex] = {\n attribute: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n } else {\n var isFacetDisjunctive = state.disjunctiveFacets.indexOf(facetKey) !== -1;\n var isFacetConjunctive = state.facets.indexOf(facetKey) !== -1;\n var position;\n\n if (isFacetDisjunctive) {\n position = disjunctiveFacetsIndices[facetKey];\n self.disjunctiveFacets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.disjunctiveFacets[position],\n mainSubResponse.facets_stats,\n facetKey\n );\n }\n if (isFacetConjunctive) {\n position = facetsIndices[facetKey];\n self.facets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.facets[position],\n mainSubResponse.facets_stats,\n facetKey\n );\n }\n }\n });\n\n // Make sure we do not keep holes within the hierarchical facets\n this.hierarchicalFacets = compact(this.hierarchicalFacets);\n\n // aggregate the refined disjunctive facets\n disjunctiveFacets.forEach(function (disjunctiveFacet) {\n var result = results[nextDisjunctiveResult];\n var facets = result && result.facets ? result.facets : {};\n var hierarchicalFacet = state.getHierarchicalFacetByName(disjunctiveFacet);\n\n // There should be only item in facets.\n Object.keys(facets).forEach(function (dfacet) {\n var facetResults = facets[dfacet];\n\n var position;\n\n if (hierarchicalFacet) {\n position = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(\n self.hierarchicalFacets[position],\n function (f) {\n return f.attribute === dfacet;\n }\n );\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n self.hierarchicalFacets[position][attributeIndex].data = merge(\n {},\n self.hierarchicalFacets[position][attributeIndex].data,\n facetResults\n );\n } else {\n position = disjunctiveFacetsIndices[dfacet];\n\n var dataFromMainRequest =\n (mainSubResponse.facets && mainSubResponse.facets[dfacet]) || {};\n\n self.disjunctiveFacets[position] = {\n name: dfacet,\n data: defaultsPure({}, facetResults, dataFromMainRequest),\n exhaustive: result.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.disjunctiveFacets[position],\n result.facets_stats,\n dfacet\n );\n\n if (state.disjunctiveFacetsRefinements[dfacet]) {\n state.disjunctiveFacetsRefinements[dfacet].forEach(function (\n refinementValue\n ) {\n // add the disjunctive refinements if it is no more retrieved\n if (\n !self.disjunctiveFacets[position].data[refinementValue] &&\n state.disjunctiveFacetsRefinements[dfacet].indexOf(\n unescapeFacetValue(refinementValue)\n ) > -1\n ) {\n self.disjunctiveFacets[position].data[refinementValue] = 0;\n }\n });\n }\n }\n });\n nextDisjunctiveResult++;\n });\n\n // if we have some parent level values for hierarchical facets, merge them\n state.getRefinedHierarchicalFacets().forEach(function (refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n // if we are already at a root refinement (or no refinement at all), there is no\n // root level values request\n if (\n currentRefinement.length === 0 ||\n currentRefinement[0].split(separator).length < 2\n ) {\n return;\n }\n\n results.slice(nextDisjunctiveResult).forEach(function (result) {\n var facets = result && result.facets ? result.facets : {};\n\n Object.keys(facets).forEach(function (dfacet) {\n var facetResults = facets[dfacet];\n var position = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(\n self.hierarchicalFacets[position],\n function (f) {\n return f.attribute === dfacet;\n }\n );\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n // when we always get root levels, if the hits refinement is `beers > IPA` (count: 5),\n // then the disjunctive values will be `beers` (count: 100),\n // but we do not want to display\n // | beers (100)\n // > IPA (5)\n // We want\n // | beers (5)\n // > IPA (5)\n var defaultData = {};\n\n if (currentRefinement.length > 0) {\n var root = currentRefinement[0].split(separator)[0];\n defaultData[root] =\n self.hierarchicalFacets[position][attributeIndex].data[root];\n }\n\n self.hierarchicalFacets[position][attributeIndex].data = defaultsPure(\n defaultData,\n facetResults,\n self.hierarchicalFacets[position][attributeIndex].data\n );\n });\n\n nextDisjunctiveResult++;\n });\n });\n\n // add the excludes\n Object.keys(state.facetsExcludes).forEach(function (facetName) {\n var excludes = state.facetsExcludes[facetName];\n var position = facetsIndices[facetName];\n\n self.facets[position] = {\n name: facetName,\n data: mainFacets[facetName],\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n excludes.forEach(function (facetValue) {\n self.facets[position] = self.facets[position] || { name: facetName };\n self.facets[position].data = self.facets[position].data || {};\n self.facets[position].data[facetValue] = 0;\n });\n });\n\n /**\n * @type {Array}\n */\n this.hierarchicalFacets = this.hierarchicalFacets.map(\n generateHierarchicalTree(state)\n );\n\n /**\n * @type {Array}\n */\n this.facets = compact(this.facets);\n /**\n * @type {Array}\n */\n this.disjunctiveFacets = compact(this.disjunctiveFacets);\n\n this._state = state;\n}\n\n/**\n * Get a facet object with its name\n * @deprecated\n * @param {string} name name of the faceted attribute\n * @return {SearchResults.Facet} the facet object\n */\nSearchResults.prototype.getFacetByName = function (name) {\n function predicate(facet) {\n return facet.name === name;\n }\n\n return (\n find(this.facets, predicate) ||\n find(this.disjunctiveFacets, predicate) ||\n find(this.hierarchicalFacets, predicate)\n );\n};\n\n/**\n * Get the facet values of a specified attribute from a SearchResults object.\n * @private\n * @param {SearchResults} results the search results to search in\n * @param {string} attribute name of the faceted attribute to search for\n * @return {array|object} facet values. For the hierarchical facets it is an object.\n */\nfunction extractNormalizedFacetValues(results, attribute) {\n function predicate(facet) {\n return facet.name === attribute;\n }\n\n if (results._state.isConjunctiveFacet(attribute)) {\n var facet = find(results.facets, predicate);\n if (!facet) return [];\n\n return Object.keys(facet.data).map(function (name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: facet.data[name],\n isRefined: results._state.isFacetRefined(attribute, value),\n isExcluded: results._state.isExcludeRefined(attribute, name),\n };\n });\n } else if (results._state.isDisjunctiveFacet(attribute)) {\n var disjunctiveFacet = find(results.disjunctiveFacets, predicate);\n if (!disjunctiveFacet) return [];\n\n return Object.keys(disjunctiveFacet.data).map(function (name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: disjunctiveFacet.data[name],\n isRefined: results._state.isDisjunctiveFacetRefined(attribute, value),\n };\n });\n } else if (results._state.isHierarchicalFacet(attribute)) {\n var hierarchicalFacetValues = find(results.hierarchicalFacets, predicate);\n if (!hierarchicalFacetValues) return hierarchicalFacetValues;\n\n var hierarchicalFacet =\n results._state.getHierarchicalFacetByName(attribute);\n var separator =\n results._state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var currentRefinement = unescapeFacetValue(\n results._state.getHierarchicalRefinement(attribute)[0] || ''\n );\n\n if (currentRefinement.indexOf(hierarchicalFacet.rootPath) === 0) {\n currentRefinement = currentRefinement.replace(\n hierarchicalFacet.rootPath + separator,\n ''\n );\n }\n\n var currentRefinementSplit = currentRefinement.split(separator);\n currentRefinementSplit.unshift(attribute);\n\n setIsRefined(hierarchicalFacetValues, currentRefinementSplit, 0);\n\n return hierarchicalFacetValues;\n }\n\n return undefined;\n}\n\n/**\n * Set the isRefined of a hierarchical facet result based on the current state.\n * @param {SearchResults.HierarchicalFacet} item Hierarchical facet to fix\n * @param {string[]} currentRefinement array of parts of the current hierarchical refinement\n * @param {number} depth recursion depth in the currentRefinement\n * @return {undefined} function mutates the item\n */\nfunction setIsRefined(item, currentRefinement, depth) {\n item.isRefined = item.name === currentRefinement[depth];\n if (item.data) {\n item.data.forEach(function (child) {\n setIsRefined(child, currentRefinement, depth + 1);\n });\n }\n}\n\n/**\n * Sort nodes of a hierarchical or disjunctive facet results\n * @private\n * @param {function} sortFn sort function to apply\n * @param {HierarchicalFacet|Array} node node upon which we want to apply the sort\n * @param {string[]} names attribute names\n * @param {number} [level=0] current index in the names array\n * @return {HierarchicalFacet|Array} sorted node\n */\nfunction recSort(sortFn, node, names, level) {\n level = level || 0;\n\n if (Array.isArray(node)) {\n return sortFn(node, names[level]);\n }\n\n if (!node.data || node.data.length === 0) {\n return node;\n }\n\n var children = node.data.map(function (childNode) {\n return recSort(sortFn, childNode, names, level + 1);\n });\n var sortedChildren = sortFn(children, names[level]);\n var newNode = defaultsPure({ data: sortedChildren }, node);\n return newNode;\n}\n\nSearchResults.DEFAULT_SORT = ['isRefined:desc', 'count:desc', 'name:asc'];\n\nfunction vanillaSortFn(order, data) {\n return data.sort(order);\n}\n\n/**\n * @typedef FacetOrdering\n * @type {Object}\n * @property {string[]} [order]\n * @property {'count' | 'alpha' | 'hidden'} [sortRemainingBy]\n */\n\n/**\n * Sorts facet arrays via their facet ordering\n * @param {Array} facetValues the values\n * @param {FacetOrdering} facetOrdering the ordering\n * @returns {Array} the sorted facet values\n */\nfunction sortViaFacetOrdering(facetValues, facetOrdering) {\n var orderedFacets = [];\n var remainingFacets = [];\n\n var order = facetOrdering.order || [];\n /**\n * an object with the keys being the values in order, the values their index:\n * ['one', 'two'] -> { one: 0, two: 1 }\n */\n var reverseOrder = order.reduce(function (acc, name, i) {\n acc[name] = i;\n return acc;\n }, {});\n\n facetValues.forEach(function (item) {\n // hierarchical facets get sorted using their raw name\n var name = item.path || item.name;\n if (reverseOrder[name] !== undefined) {\n orderedFacets[reverseOrder[name]] = item;\n } else {\n remainingFacets.push(item);\n }\n });\n\n orderedFacets = orderedFacets.filter(function (facet) {\n return facet;\n });\n\n var sortRemainingBy = facetOrdering.sortRemainingBy;\n var ordering;\n if (sortRemainingBy === 'hidden') {\n return orderedFacets;\n } else if (sortRemainingBy === 'alpha') {\n ordering = [\n ['path', 'name'],\n ['asc', 'asc'],\n ];\n } else {\n ordering = [['count'], ['desc']];\n }\n\n return orderedFacets.concat(\n orderBy(remainingFacets, ordering[0], ordering[1])\n );\n}\n\n/**\n * @param {SearchResults} results the search results class\n * @param {string} attribute the attribute to retrieve ordering of\n * @returns {FacetOrdering | undefined} the facet ordering\n */\nfunction getFacetOrdering(results, attribute) {\n return (\n results.renderingContent &&\n results.renderingContent.facetOrdering &&\n results.renderingContent.facetOrdering.values &&\n results.renderingContent.facetOrdering.values[attribute]\n );\n}\n\n/**\n * Get a the list of values for a given facet attribute. Those values are sorted\n * refinement first, descending count (bigger value on top), and name ascending\n * (alphabetical order). The sort formula can overridden using either string based\n * predicates or a function.\n *\n * This method will return all the values returned by the Algolia engine plus all\n * the values already refined. This means that it can happen that the\n * `maxValuesPerFacet` [configuration](https://www.algolia.com/doc/rest-api/search#param-maxValuesPerFacet)\n * might not be respected if you have facet values that are already refined.\n * @param {string} attribute attribute name\n * @param {object} opts configuration options.\n * @param {boolean} [opts.facetOrdering]\n * Force the use of facetOrdering from the result if a sortBy is present. If\n * sortBy isn't present, facetOrdering will be used automatically.\n * @param {Array. | function} opts.sortBy\n * When using strings, it consists of\n * the name of the [FacetValue](#SearchResults.FacetValue) or the\n * [HierarchicalFacet](#SearchResults.HierarchicalFacet) attributes with the\n * order (`asc` or `desc`). For example to order the value by count, the\n * argument would be `['count:asc']`.\n *\n * If only the attribute name is specified, the ordering defaults to the one\n * specified in the default value for this attribute.\n *\n * When not specified, the order is\n * ascending. This parameter can also be a function which takes two facet\n * values and should return a number, 0 if equal, 1 if the first argument is\n * bigger or -1 otherwise.\n *\n * The default value for this attribute `['isRefined:desc', 'count:desc', 'name:asc']`\n * @return {FacetValue[]|HierarchicalFacet|undefined} depending on the type of facet of\n * the attribute requested (hierarchical, disjunctive or conjunctive)\n * @example\n * helper.on('result', function(event){\n * //get values ordered only by name ascending using the string predicate\n * event.results.getFacetValues('city', {sortBy: ['name:asc']});\n * //get values ordered only by count ascending using a function\n * event.results.getFacetValues('city', {\n * // this is equivalent to ['count:asc']\n * sortBy: function(a, b) {\n * if (a.count === b.count) return 0;\n * if (a.count > b.count) return 1;\n * if (b.count > a.count) return -1;\n * }\n * });\n * });\n */\nSearchResults.prototype.getFacetValues = function (attribute, opts) {\n var facetValues = extractNormalizedFacetValues(this, attribute);\n if (!facetValues) {\n return undefined;\n }\n\n var options = defaultsPure({}, opts, {\n sortBy: SearchResults.DEFAULT_SORT,\n // if no sortBy is given, attempt to sort based on facetOrdering\n // if it is given, we still allow to sort via facet ordering first\n facetOrdering: !(opts && opts.sortBy),\n });\n\n // eslint-disable-next-line consistent-this\n var results = this;\n var attributes;\n if (Array.isArray(facetValues)) {\n attributes = [attribute];\n } else {\n var config = results._state.getHierarchicalFacetByName(facetValues.name);\n attributes = config.attributes;\n }\n\n return recSort(\n function (data, facetName) {\n if (options.facetOrdering) {\n var facetOrdering = getFacetOrdering(results, facetName);\n if (facetOrdering) {\n return sortViaFacetOrdering(data, facetOrdering);\n }\n }\n\n if (Array.isArray(options.sortBy)) {\n var order = formatSort(options.sortBy, SearchResults.DEFAULT_SORT);\n return orderBy(data, order[0], order[1]);\n } else if (typeof options.sortBy === 'function') {\n return vanillaSortFn(options.sortBy, data);\n }\n throw new Error(\n 'options.sortBy is optional but if defined it must be ' +\n 'either an array of string (predicates) or a sorting function'\n );\n },\n facetValues,\n attributes\n );\n};\n\n/**\n * Returns the facet stats if attribute is defined and the facet contains some.\n * Otherwise returns undefined.\n * @param {string} attribute name of the faceted attribute\n * @return {object} The stats of the facet\n */\nSearchResults.prototype.getFacetStats = function (attribute) {\n if (this._state.isConjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.facets, attribute);\n } else if (this._state.isDisjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.disjunctiveFacets, attribute);\n }\n\n return undefined;\n};\n\n/**\n * @typedef {Object} FacetListItem\n * @property {string} name\n */\n\n/**\n * @param {FacetListItem[]} facetList (has more items, but enough for here)\n * @param {string} facetName The attribute to look for\n * @return {object|undefined} The stats of the facet\n */\nfunction getFacetStatsIfAvailable(facetList, facetName) {\n var data = find(facetList, function (facet) {\n return facet.name === facetName;\n });\n return data && data.stats;\n}\n\n/**\n * Returns all refinements for all filters + tags. It also provides\n * additional information: count and exhaustiveness for each filter.\n *\n * See the [refinement type](#Refinement) for an exhaustive view of the available\n * data.\n *\n * Note that for a numeric refinement, results are grouped per operator, this\n * means that it will return responses for operators which are empty.\n *\n * @return {Array.} all the refinements\n */\nSearchResults.prototype.getRefinements = function () {\n var state = this._state;\n // eslint-disable-next-line consistent-this\n var results = this;\n var res = [];\n\n Object.keys(state.facetsRefinements).forEach(function (attributeName) {\n state.facetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getRefinement(state, 'facet', attributeName, name, results.facets)\n );\n });\n });\n\n Object.keys(state.facetsExcludes).forEach(function (attributeName) {\n state.facetsExcludes[attributeName].forEach(function (name) {\n res.push(\n getRefinement(state, 'exclude', attributeName, name, results.facets)\n );\n });\n });\n\n Object.keys(state.disjunctiveFacetsRefinements).forEach(function (\n attributeName\n ) {\n state.disjunctiveFacetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getRefinement(\n state,\n 'disjunctive',\n attributeName,\n name,\n results.disjunctiveFacets\n )\n );\n });\n });\n\n Object.keys(state.hierarchicalFacetsRefinements).forEach(function (\n attributeName\n ) {\n state.hierarchicalFacetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getHierarchicalRefinement(\n state,\n attributeName,\n name,\n results.hierarchicalFacets\n )\n );\n });\n });\n\n Object.keys(state.numericRefinements).forEach(function (attributeName) {\n var operators = state.numericRefinements[attributeName];\n Object.keys(operators).forEach(function (operator) {\n operators[operator].forEach(function (value) {\n res.push({\n type: 'numeric',\n attributeName: attributeName,\n name: value,\n numericValue: value,\n operator: operator,\n });\n });\n });\n });\n\n state.tagRefinements.forEach(function (name) {\n res.push({ type: 'tag', attributeName: '_tags', name: name });\n });\n\n return res;\n};\n\n/**\n * @typedef {Object} Facet\n * @property {string} name\n * @property {Object} data\n * @property {boolean} exhaustive\n */\n\n/**\n * @param {SearchParameters} state the current state\n * @param {string} type the type of the refinement\n * @param {string} attributeName The attribute of the facet\n * @param {*} name The name of the facet\n * @param {Facet[]} resultsFacets facets from the results\n * @return {Refinement} the refinement\n */\nfunction getRefinement(state, type, attributeName, name, resultsFacets) {\n var facet = find(resultsFacets, function (f) {\n return f.name === attributeName;\n });\n var count = facet && facet.data && facet.data[name] ? facet.data[name] : 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n\n return {\n type: type,\n attributeName: attributeName,\n name: name,\n count: count,\n exhaustive: exhaustive,\n };\n}\n\n/**\n * @param {SearchParameters} state the current state\n * @param {string} attributeName the attribute of the hierarchical facet\n * @param {string} name the name of the facet\n * @param {Facet[]} resultsFacets facets from the results\n * @return {HierarchicalFacet} the hierarchical facet\n */\nfunction getHierarchicalRefinement(state, attributeName, name, resultsFacets) {\n var facetDeclaration = state.getHierarchicalFacetByName(attributeName);\n var separator = state._getHierarchicalFacetSeparator(facetDeclaration);\n var split = name.split(separator);\n var rootFacet = find(resultsFacets, function (facet) {\n return facet.name === attributeName;\n });\n\n var facet = split.reduce(function (intermediateFacet, part) {\n var newFacet =\n intermediateFacet &&\n find(intermediateFacet.data, function (f) {\n return f.name === part;\n });\n return newFacet !== undefined ? newFacet : intermediateFacet;\n }, rootFacet);\n\n var count = (facet && facet.count) || 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n var path = (facet && facet.path) || '';\n\n return {\n type: 'hierarchical',\n attributeName: attributeName,\n name: path,\n count: count,\n exhaustive: exhaustive,\n };\n}\n\nmodule.exports = SearchResults;\n","'use strict';\n\nvar EventEmitter = require('@algolia/events');\n\nvar DerivedHelper = require('./DerivedHelper');\nvar escapeFacetValue = require('./functions/escapeFacetValue').escapeFacetValue;\nvar inherits = require('./functions/inherits');\nvar merge = require('./functions/merge');\nvar objectHasKeys = require('./functions/objectHasKeys');\nvar omit = require('./functions/omit');\nvar requestBuilder = require('./requestBuilder');\nvar SearchParameters = require('./SearchParameters');\nvar SearchResults = require('./SearchResults');\nvar version = require('./version');\n\n/**\n * Event triggered when a parameter is set or updated\n * @event AlgoliaSearchHelper#event:change\n * @property {object} event\n * @property {SearchParameters} event.state the current parameters with the latest changes applied\n * @property {SearchResults} event.results the previous results received from Algolia. `null` before the first request\n * @example\n * helper.on('change', function(event) {\n * console.log('The parameters have changed');\n * });\n */\n\n/**\n * Event triggered when a main search is sent to Algolia\n * @event AlgoliaSearchHelper#event:search\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search\n * @property {SearchResults} event.results the results from the previous search. `null` if it is the first search.\n * @example\n * helper.on('search', function(event) {\n * console.log('Search sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchForFacetValues` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchForFacetValues\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @property {string} event.facet the facet searched into\n * @property {string} event.query the query used to search in the facets\n * @example\n * helper.on('searchForFacetValues', function(event) {\n * console.log('searchForFacetValues sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchOnce` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchOnce\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @example\n * helper.on('searchOnce', function(event) {\n * console.log('searchOnce sent');\n * });\n */\n\n/**\n * Event triggered when the results are retrieved from Algolia\n * @event AlgoliaSearchHelper#event:result\n * @property {object} event\n * @property {SearchResults} event.results the results received from Algolia\n * @property {SearchParameters} event.state the parameters used to query Algolia. Those might be different from the one in the helper instance (for example if the network is unreliable).\n * @example\n * helper.on('result', function(event) {\n * console.log('Search results received');\n * });\n */\n\n/**\n * Event triggered when Algolia sends back an error. For example, if an unknown parameter is\n * used, the error can be caught using this event.\n * @event AlgoliaSearchHelper#event:error\n * @property {object} event\n * @property {Error} event.error the error returned by the Algolia.\n * @example\n * helper.on('error', function(event) {\n * console.log('Houston we got a problem.');\n * });\n */\n\n/**\n * Event triggered when the queue of queries have been depleted (with any result or outdated queries)\n * @event AlgoliaSearchHelper#event:searchQueueEmpty\n * @example\n * helper.on('searchQueueEmpty', function() {\n * console.log('No more search pending');\n * // This is received before the result event if we're not expecting new results\n * });\n *\n * helper.search();\n */\n\n/**\n * Initialize a new AlgoliaSearchHelper\n * @class\n * @classdesc The AlgoliaSearchHelper is a class that ease the management of the\n * search. It provides an event based interface for search callbacks:\n * - change: when the internal search state is changed.\n * This event contains a {@link SearchParameters} object and the\n * {@link SearchResults} of the last result if any.\n * - search: when a search is triggered using the `search()` method.\n * - result: when the response is retrieved from Algolia and is processed.\n * This event contains a {@link SearchResults} object and the\n * {@link SearchParameters} corresponding to this answer.\n * - error: when the response is an error. This event contains the error returned by the server.\n * @param {AlgoliaSearch} client an AlgoliaSearch client\n * @param {string} index the index name to query\n * @param {SearchParameters | object} options an object defining the initial\n * config of the search. It doesn't have to be a {SearchParameters},\n * just an object containing the properties you need from it.\n */\nfunction AlgoliaSearchHelper(client, index, options) {\n if (typeof client.addAlgoliaAgent === 'function') {\n client.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n\n this.setClient(client);\n var opts = options || {};\n opts.index = index;\n this.state = SearchParameters.make(opts);\n this.lastResults = null;\n this._queryId = 0;\n this._lastQueryIdReceived = -1;\n this.derivedHelpers = [];\n this._currentNbQueries = 0;\n}\n\ninherits(AlgoliaSearchHelper, EventEmitter);\n\n/**\n * Start the search with the parameters set in the state. When the\n * method is called, it triggers a `search` event. The results will\n * be available through the `result` event. If an error occurs, an\n * `error` will be fired instead.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires search\n * @fires result\n * @fires error\n * @chainable\n */\nAlgoliaSearchHelper.prototype.search = function () {\n this._search({ onlyWithDerivedHelpers: false });\n return this;\n};\n\nAlgoliaSearchHelper.prototype.searchOnlyWithDerivedHelpers = function () {\n this._search({ onlyWithDerivedHelpers: true });\n return this;\n};\n\n/**\n * Gets the search query parameters that would be sent to the Algolia Client\n * for the hits\n * @return {object} Query Parameters\n */\nAlgoliaSearchHelper.prototype.getQuery = function () {\n var state = this.state;\n return requestBuilder._getHitsSearchParams(state);\n};\n\n/**\n * Start a search using a modified version of the current state. This method does\n * not trigger the helper lifecycle and does not modify the state kept internally\n * by the helper. This second aspect means that the next search call will be the\n * same as a search call before calling searchOnce.\n * @param {object} options can contain all the parameters that can be set to SearchParameters\n * plus the index\n * @param {function} [cb] optional callback executed when the response from the\n * server is back.\n * @return {promise|undefined} if a callback is passed the method returns undefined\n * otherwise it returns a promise containing an object with two keys :\n * - content with a SearchResults\n * - state with the state used for the query as a SearchParameters\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the callback API\n * var state = helper.searchOnce({hitsPerPage: 1},\n * function(error, content, state) {\n * // if an error occurred it will be passed in error, otherwise its value is null\n * // content contains the results formatted as a SearchResults\n * // state is the instance of SearchParameters used for this search\n * });\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the promise API\n * var state1 = helper.searchOnce({hitsPerPage: 1})\n * .then(promiseHandler);\n *\n * function promiseHandler(res) {\n * // res contains\n * // {\n * // content : SearchResults\n * // state : SearchParameters (the one used for this specific search)\n * // }\n * }\n */\nAlgoliaSearchHelper.prototype.searchOnce = function (options, cb) {\n var tempState = !options\n ? this.state\n : this.state.setQueryParameters(options);\n var queries = requestBuilder._getQueries(tempState.index, tempState);\n // eslint-disable-next-line consistent-this\n var self = this;\n\n this._currentNbQueries++;\n\n this.emit('searchOnce', {\n state: tempState,\n });\n\n if (cb) {\n this.client\n .search(queries)\n .then(function (content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(null, new SearchResults(tempState, content.results), tempState);\n })\n .catch(function (err) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(err, null, tempState);\n });\n\n return undefined;\n }\n\n return this.client.search(queries).then(\n function (content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n return {\n content: new SearchResults(tempState, content.results),\n state: tempState,\n _originalResponse: content,\n };\n },\n function (e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n }\n );\n};\n\n/**\n * Start the search for answers with the parameters set in the state.\n * This method returns a promise.\n * @param {Object} options - the options for answers API call\n * @param {string[]} options.attributesForPrediction - Attributes to use for predictions. If empty, `searchableAttributes` is used instead.\n * @param {string[]} options.queryLanguages - The languages in the query. Currently only supports ['en'].\n * @param {number} options.nbHits - Maximum number of answers to retrieve from the Answers Engine. Cannot be greater than 1000.\n *\n * @return {promise} the answer results\n * @deprecated answers is deprecated and will be replaced with new initiatives\n */\nAlgoliaSearchHelper.prototype.findAnswers = function (options) {\n // eslint-disable-next-line no-console\n console.warn('[algoliasearch-helper] answers is no longer supported');\n var state = this.state;\n var derivedHelper = this.derivedHelpers[0];\n if (!derivedHelper) {\n return Promise.resolve([]);\n }\n var derivedState = derivedHelper.getModifiedState(state);\n var data = merge(\n {\n attributesForPrediction: options.attributesForPrediction,\n nbHits: options.nbHits,\n },\n {\n params: omit(requestBuilder._getHitsSearchParams(derivedState), [\n 'attributesToSnippet',\n 'hitsPerPage',\n 'restrictSearchableAttributes',\n 'snippetEllipsisText',\n ]),\n }\n );\n\n var errorMessage =\n 'search for answers was called, but this client does not have a function client.initIndex(index).findAnswers';\n if (typeof this.client.initIndex !== 'function') {\n throw new Error(errorMessage);\n }\n var index = this.client.initIndex(derivedState.index);\n if (typeof index.findAnswers !== 'function') {\n throw new Error(errorMessage);\n }\n return index.findAnswers(derivedState.query, options.queryLanguages, data);\n};\n\n/**\n * Structure of each result when using\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * @typedef FacetSearchHit\n * @type {object}\n * @property {string} value the facet value\n * @property {string} highlighted the facet value highlighted with the query string\n * @property {number} count number of occurrence of this facet value\n * @property {boolean} isRefined true if the value is already refined\n */\n\n/**\n * Structure of the data resolved by the\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * promise.\n * @typedef FacetSearchResult\n * @type {object}\n * @property {FacetSearchHit} facetHits the results for this search for facet values\n * @property {number} processingTimeMS time taken by the query inside the engine\n */\n\n/**\n * Search for facet values based on an query and the name of a faceted attribute. This\n * triggers a search and will return a promise. On top of using the query, it also sends\n * the parameters from the state so that the search is narrowed down to only the possible values.\n *\n * See the description of [FacetSearchResult](reference.html#FacetSearchResult)\n * @param {string} facet the name of the faceted attribute\n * @param {string} query the string query for the search\n * @param {number} [maxFacetHits] the maximum number values returned. Should be > 0 and <= 100\n * @param {object} [userState] the set of custom parameters to use on top of the current state. Setting a property to `undefined` removes\n * it in the generated query.\n * @return {promise.} the results of the search\n */\nAlgoliaSearchHelper.prototype.searchForFacetValues = function (\n facet,\n query,\n maxFacetHits,\n userState\n) {\n var clientHasSFFV = typeof this.client.searchForFacetValues === 'function';\n var clientHasInitIndex = typeof this.client.initIndex === 'function';\n if (\n !clientHasSFFV &&\n !clientHasInitIndex &&\n typeof this.client.search !== 'function'\n ) {\n throw new Error(\n 'search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues'\n );\n }\n\n var state = this.state.setQueryParameters(userState || {});\n var isDisjunctive = state.isDisjunctiveFacet(facet);\n var algoliaQuery = requestBuilder.getSearchForFacetQuery(\n facet,\n query,\n maxFacetHits,\n state\n );\n\n this._currentNbQueries++;\n // eslint-disable-next-line consistent-this\n var self = this;\n var searchForFacetValuesPromise;\n // newer algoliasearch ^3.27.1 - ~4.0.0\n if (clientHasSFFV) {\n searchForFacetValuesPromise = this.client.searchForFacetValues([\n { indexName: state.index, params: algoliaQuery },\n ]);\n // algoliasearch < 3.27.1\n } else if (clientHasInitIndex) {\n searchForFacetValuesPromise = this.client\n .initIndex(state.index)\n .searchForFacetValues(algoliaQuery);\n // algoliasearch ~5.0.0\n } else {\n // @MAJOR only use client.search\n delete algoliaQuery.facetName;\n searchForFacetValuesPromise = this.client\n .search([\n {\n type: 'facet',\n facet: facet,\n indexName: state.index,\n params: algoliaQuery,\n },\n ])\n .then(function processResponse(response) {\n return response.results[0];\n });\n }\n\n this.emit('searchForFacetValues', {\n state: state,\n facet: facet,\n query: query,\n });\n\n return searchForFacetValuesPromise.then(\n function addIsRefined(content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n\n content = Array.isArray(content) ? content[0] : content;\n\n content.facetHits.forEach(function (f) {\n f.escapedValue = escapeFacetValue(f.value);\n f.isRefined = isDisjunctive\n ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)\n : state.isFacetRefined(facet, f.escapedValue);\n });\n\n return content;\n },\n function (e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n }\n );\n};\n\n/**\n * Sets the text query used for the search.\n *\n * This method resets the current page to 0.\n * @param {string} q the user query\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setQuery = function (q) {\n this._change({\n state: this.state.resetPage().setQuery(q),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Remove all the types of refinements except tags. A string can be provided to remove\n * only the refinements of a specific attribute. For more advanced use case, you can\n * provide a function instead. This function should follow the\n * [clearCallback definition](#SearchParameters.clearCallback).\n *\n * This method resets the current page to 0.\n * @param {string} [name] optional name of the facet / attribute on which we want to remove all refinements\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * // Removing all the refinements\n * helper.clearRefinements().search();\n * @example\n * // Removing all the filters on a the category attribute.\n * helper.clearRefinements('category').search();\n * @example\n * // Removing only the exclude filters on the category facet.\n * helper.clearRefinements(function(value, attribute, type) {\n * return type === 'exclude' && attribute === 'category';\n * }).search();\n */\nAlgoliaSearchHelper.prototype.clearRefinements = function (name) {\n this._change({\n state: this.state.resetPage().clearRefinements(name),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Remove all the tag filters.\n *\n * This method resets the current page to 0.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.clearTags = function () {\n this._change({\n state: this.state.resetPage().clearTags(),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveFacetRefinement = function (\n facet,\n value\n) {\n this._change({\n state: this.state.resetPage().addDisjunctiveFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveRefine = function () {\n return this.addDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds a refinement on a hierarchical facet. It will throw\n * an exception if the facet is not defined or if the facet\n * is already refined.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error if the facet is not defined or if the facet is refined\n * @chainable\n * @fires change\n */\nAlgoliaSearchHelper.prototype.addHierarchicalFacetRefinement = function (\n facet,\n path\n) {\n this._change({\n state: this.state.resetPage().addHierarchicalFacetRefinement(facet, path),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} operator the operator of the filter\n * @param {number} value the value of the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addNumericRefinement = function (\n attribute,\n operator,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .addNumericRefinement(attribute, operator, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().addFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addRefine = function () {\n return this.addFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds a an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().addExcludeRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.addExclude = function () {\n return this.addFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds a tag filter with the `tag` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag the tag to add to the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addTag = function (tag) {\n this._change({\n state: this.state.resetPage().addTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * Some parameters are optional, triggering different behavior:\n * - if the value is not provided, then all the numeric value will be removed for the\n * specified attribute/operator couple.\n * - if the operator is not provided either, then all the numeric filter on this attribute\n * will be removed.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} [operator] the operator of the filter\n * @param {number} [value] the value of the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeNumericRefinement = function (\n attribute,\n operator,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .removeNumericRefinement(attribute, operator, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveFacetRefinement = function (\n facet,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .removeDisjunctiveFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveRefine = function () {\n return this.removeDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error if the facet is not defined or if the facet is not refined\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeHierarchicalFacetRefinement = function (\n facet\n) {\n this._change({\n state: this.state.resetPage().removeHierarchicalFacetRefinement(facet),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes a filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().removeFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeRefine = function () {\n return this.removeFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().removeExcludeRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.removeExclude = function () {\n return this.removeFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Removes a tag filter with the `tag` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove from the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeTag = function (tag) {\n this._change({\n state: this.state.resetPage().removeTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds or removes an exclusion filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().toggleExcludeFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.toggleExclude = function () {\n return this.toggleFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n * @deprecated since version 2.19.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefinement = function (facet, value) {\n return this.toggleFacetRefinement(facet, value);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().toggleFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefine = function () {\n return this.toggleFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds or removes a tag filter with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove or add\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleTag = function (tag) {\n this._change({\n state: this.state.resetPage().toggleTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Increments the page number by one.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * helper.setPage(0).nextPage().getPage();\n * // returns 1\n */\nAlgoliaSearchHelper.prototype.nextPage = function () {\n var page = this.state.page || 0;\n return this.setPage(page + 1);\n};\n\n/**\n * Decrements the page number by one.\n * @fires change\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @chainable\n * @example\n * helper.setPage(1).previousPage().getPage();\n * // returns 0\n */\nAlgoliaSearchHelper.prototype.previousPage = function () {\n var page = this.state.page || 0;\n return this.setPage(page - 1);\n};\n\n/**\n * @private\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @chainable\n * @fires change\n */\nfunction setCurrentPage(page) {\n if (page < 0) throw new Error('Page requested below 0.');\n\n this._change({\n state: this.state.setPage(page),\n isPageReset: false,\n });\n\n return this;\n}\n\n/**\n * Change the current page\n * @deprecated\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setCurrentPage = setCurrentPage;\n\n/**\n * Updates the current page.\n * @function\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setPage = setCurrentPage;\n\n/**\n * Updates the name of the index that will be targeted by the query.\n *\n * This method resets the current page to 0.\n * @param {string} name the index name\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setIndex = function (name) {\n this._change({\n state: this.state.resetPage().setIndex(name),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Update a parameter of the search. This method reset the page\n *\n * The complete list of parameters is available on the\n * [Algolia website](https://www.algolia.com/doc/rest#query-an-index).\n * The most commonly used parameters have their own [shortcuts](#query-parameters-shortcuts)\n * or benefit from higher-level APIs (all the kind of filters and facets have their own API)\n *\n * This method resets the current page to 0.\n * @param {string} parameter name of the parameter to update\n * @param {any} value new value of the parameter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * helper.setQueryParameter('hitsPerPage', 20).search();\n */\nAlgoliaSearchHelper.prototype.setQueryParameter = function (parameter, value) {\n this._change({\n state: this.state.resetPage().setQueryParameter(parameter, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Set the whole state (warning: will erase previous state)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setState = function (newState) {\n this._change({\n state: SearchParameters.make(newState),\n isPageReset: false,\n });\n\n return this;\n};\n\n/**\n * Override the current state without triggering a change event.\n * Do not use this method unless you know what you are doing. (see the example\n * for a legit use case)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @example\n * helper.on('change', function(state){\n * // In this function you might want to find a way to store the state in the url/history\n * updateYourURL(state)\n * })\n * window.onpopstate = function(event){\n * // This is naive though as you should check if the state is really defined etc.\n * helper.overrideStateWithoutTriggeringChangeEvent(event.state).search()\n * }\n * @chainable\n */\nAlgoliaSearchHelper.prototype.overrideStateWithoutTriggeringChangeEvent =\n function (newState) {\n this.state = new SearchParameters(newState);\n return this;\n };\n\n/**\n * Check if an attribute has any numeric, conjunctive, disjunctive or hierarchical filters.\n * @param {string} attribute the name of the attribute\n * @return {boolean} true if the attribute is filtered by at least one value\n * @example\n * // hasRefinements works with numeric, conjunctive, disjunctive and hierarchical filters\n * helper.hasRefinements('price'); // false\n * helper.addNumericRefinement('price', '>', 100);\n * helper.hasRefinements('price'); // true\n *\n * helper.hasRefinements('color'); // false\n * helper.addFacetRefinement('color', 'blue');\n * helper.hasRefinements('color'); // true\n *\n * helper.hasRefinements('material'); // false\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * helper.hasRefinements('material'); // true\n *\n * helper.hasRefinements('categories'); // false\n * helper.toggleFacetRefinement('categories', 'kitchen > knife');\n * helper.hasRefinements('categories'); // true\n *\n */\nAlgoliaSearchHelper.prototype.hasRefinements = function (attribute) {\n if (objectHasKeys(this.state.getNumericRefinements(attribute))) {\n return true;\n } else if (this.state.isConjunctiveFacet(attribute)) {\n return this.state.isFacetRefined(attribute);\n } else if (this.state.isDisjunctiveFacet(attribute)) {\n return this.state.isDisjunctiveFacetRefined(attribute);\n } else if (this.state.isHierarchicalFacet(attribute)) {\n return this.state.isHierarchicalFacetRefined(attribute);\n }\n\n // there's currently no way to know that the user did call `addNumericRefinement` at some point\n // thus we cannot distinguish if there once was a numeric refinement that was cleared\n // so we will return false in every other situations to be consistent\n // while what we should do here is throw because we did not find the attribute in any type\n // of refinement\n return false;\n};\n\n/**\n * Check if a value is excluded for a specific faceted attribute. If the value\n * is omitted then the function checks if there is any excluding refinements.\n *\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} true if refined\n * @example\n * helper.isExcludeRefined('color'); // false\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // false\n *\n * helper.addFacetExclusion('color', 'red');\n *\n * helper.isExcludeRefined('color'); // true\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // true\n */\nAlgoliaSearchHelper.prototype.isExcluded = function (facet, value) {\n return this.state.isExcludeRefined(facet, value);\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasRefinements}\n */\nAlgoliaSearchHelper.prototype.isDisjunctiveRefined = function (facet, value) {\n return this.state.isDisjunctiveFacetRefined(facet, value);\n};\n\n/**\n * Check if the string is a currently filtering tag.\n * @param {string} tag tag to check\n * @return {boolean} true if the tag is currently refined\n */\nAlgoliaSearchHelper.prototype.hasTag = function (tag) {\n return this.state.isTagRefined(tag);\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasTag}\n */\nAlgoliaSearchHelper.prototype.isTagRefined = function () {\n return this.hasTagRefinements.apply(this, arguments);\n};\n\n/**\n * Get the name of the currently used index.\n * @return {string} name of the index\n * @example\n * helper.setIndex('highestPrice_products').getIndex();\n * // returns 'highestPrice_products'\n */\nAlgoliaSearchHelper.prototype.getIndex = function () {\n return this.state.index;\n};\n\nfunction getCurrentPage() {\n return this.state.page;\n}\n\n/**\n * Get the currently selected page\n * @deprecated\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getCurrentPage = getCurrentPage;\n/**\n * Get the currently selected page\n * @function\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getPage = getCurrentPage;\n\n/**\n * Get all the tags currently set to filters the results.\n *\n * @return {string[]} The list of tags currently set.\n */\nAlgoliaSearchHelper.prototype.getTags = function () {\n return this.state.tagRefinements;\n};\n\n/**\n * Get the list of refinements for a given attribute. This method works with\n * conjunctive, disjunctive, excluding and numerical filters.\n *\n * See also SearchResults#getRefinements\n *\n * @param {string} facetName attribute name used for faceting\n * @return {Array.} All Refinement are objects that contain a value, and\n * a type. Numeric also contains an operator.\n * @example\n * helper.addNumericRefinement('price', '>', 100);\n * helper.getRefinements('price');\n * // [\n * // {\n * // \"value\": [\n * // 100\n * // ],\n * // \"operator\": \">\",\n * // \"type\": \"numeric\"\n * // }\n * // ]\n * @example\n * helper.addFacetRefinement('color', 'blue');\n * helper.addFacetExclusion('color', 'red');\n * helper.getRefinements('color');\n * // [\n * // {\n * // \"value\": \"blue\",\n * // \"type\": \"conjunctive\"\n * // },\n * // {\n * // \"value\": \"red\",\n * // \"type\": \"exclude\"\n * // }\n * // ]\n * @example\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * // [\n * // {\n * // \"value\": \"plastic\",\n * // \"type\": \"disjunctive\"\n * // }\n * // ]\n */\nAlgoliaSearchHelper.prototype.getRefinements = function (facetName) {\n var refinements = [];\n\n if (this.state.isConjunctiveFacet(facetName)) {\n var conjRefinements = this.state.getConjunctiveRefinements(facetName);\n\n conjRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'conjunctive',\n });\n });\n\n var excludeRefinements = this.state.getExcludeRefinements(facetName);\n\n excludeRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'exclude',\n });\n });\n } else if (this.state.isDisjunctiveFacet(facetName)) {\n var disjunctiveRefinements =\n this.state.getDisjunctiveRefinements(facetName);\n\n disjunctiveRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'disjunctive',\n });\n });\n }\n\n var numericRefinements = this.state.getNumericRefinements(facetName);\n\n Object.keys(numericRefinements).forEach(function (operator) {\n var value = numericRefinements[operator];\n\n refinements.push({\n value: value,\n operator: operator,\n type: 'numeric',\n });\n });\n\n return refinements;\n};\n\n/**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\nAlgoliaSearchHelper.prototype.getNumericRefinement = function (\n attribute,\n operator\n) {\n return this.state.getNumericRefinement(attribute, operator);\n};\n\n/**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\nAlgoliaSearchHelper.prototype.getHierarchicalFacetBreadcrumb = function (\n facetName\n) {\n return this.state.getHierarchicalFacetBreadcrumb(facetName);\n};\n\n// /////////// PRIVATE\n\n/**\n * Perform the underlying queries\n * @private\n * @param {object} options options for the query\n * @param {boolean} [options.onlyWithDerivedHelpers=false] if true, only the derived helpers will be queried\n * @return {undefined} does not return anything\n * @fires search\n * @fires result\n * @fires error\n */\nAlgoliaSearchHelper.prototype._search = function (options) {\n var state = this.state;\n var states = [];\n var mainQueries = [];\n\n if (!options.onlyWithDerivedHelpers) {\n mainQueries = requestBuilder._getQueries(state.index, state);\n\n states.push({\n state: state,\n queriesCount: mainQueries.length,\n helper: this,\n });\n\n this.emit('search', {\n state: state,\n results: this.lastResults,\n });\n }\n\n var derivedQueries = this.derivedHelpers.map(function (derivedHelper) {\n var derivedState = derivedHelper.getModifiedState(state);\n var derivedStateQueries = derivedState.index\n ? requestBuilder._getQueries(derivedState.index, derivedState)\n : [];\n\n states.push({\n state: derivedState,\n queriesCount: derivedStateQueries.length,\n helper: derivedHelper,\n });\n\n derivedHelper.emit('search', {\n state: derivedState,\n results: derivedHelper.lastResults,\n });\n\n return derivedStateQueries;\n });\n\n var queries = Array.prototype.concat.apply(mainQueries, derivedQueries);\n\n var queryId = this._queryId++;\n this._currentNbQueries++;\n\n if (!queries.length) {\n return Promise.resolve({ results: [] }).then(\n this._dispatchAlgoliaResponse.bind(this, states, queryId)\n );\n }\n\n try {\n this.client\n .search(queries)\n .then(this._dispatchAlgoliaResponse.bind(this, states, queryId))\n .catch(this._dispatchAlgoliaError.bind(this, queryId));\n } catch (error) {\n // If we reach this part, we're in an internal error state\n this.emit('error', {\n error: error,\n });\n }\n\n return undefined;\n};\n\n/**\n * Transform the responses as sent by the server and transform them into a user\n * usable object that merge the results of all the batch requests. It will dispatch\n * over the different helper + derived helpers (when there are some).\n * @private\n * @param {array.<{SearchParameters, AlgoliaQueries, AlgoliaSearchHelper}>} states state used to generate the request\n * @param {number} queryId id of the current request\n * @param {object} content content of the response\n * @return {undefined}\n */\nAlgoliaSearchHelper.prototype._dispatchAlgoliaResponse = function (\n states,\n queryId,\n content\n) {\n // @TODO remove the number of outdated queries discarded instead of just one\n\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= queryId - this._lastQueryIdReceived;\n this._lastQueryIdReceived = queryId;\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n\n var results = content.results.slice();\n\n states.forEach(function (s) {\n var state = s.state;\n var queriesCount = s.queriesCount;\n var helper = s.helper;\n var specificResults = results.splice(0, queriesCount);\n\n if (!state.index) {\n helper.emit('result', {\n results: null,\n state: state,\n });\n return;\n }\n\n helper.lastResults = new SearchResults(state, specificResults);\n\n helper.emit('result', {\n results: helper.lastResults,\n state: state,\n });\n });\n};\n\nAlgoliaSearchHelper.prototype._dispatchAlgoliaError = function (\n queryId,\n error\n) {\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= queryId - this._lastQueryIdReceived;\n this._lastQueryIdReceived = queryId;\n\n this.emit('error', {\n error: error,\n });\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n};\n\nAlgoliaSearchHelper.prototype.containsRefinement = function (\n query,\n facetFilters,\n numericFilters,\n tagFilters\n) {\n return (\n query ||\n facetFilters.length !== 0 ||\n numericFilters.length !== 0 ||\n tagFilters.length !== 0\n );\n};\n\n/**\n * Test if there are some disjunctive refinements on the facet\n * @private\n * @param {string} facet the attribute to test\n * @return {boolean} true if there are refinements on this attribute\n */\nAlgoliaSearchHelper.prototype._hasDisjunctiveRefinements = function (facet) {\n return (\n this.state.disjunctiveRefinements[facet] &&\n this.state.disjunctiveRefinements[facet].length > 0\n );\n};\n\nAlgoliaSearchHelper.prototype._change = function (event) {\n var state = event.state;\n var isPageReset = event.isPageReset;\n\n if (state !== this.state) {\n this.state = state;\n\n this.emit('change', {\n state: this.state,\n results: this.lastResults,\n isPageReset: isPageReset,\n });\n }\n};\n\n/**\n * Clears the cache of the underlying Algolia client.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n */\nAlgoliaSearchHelper.prototype.clearCache = function () {\n if (this.client.clearCache) this.client.clearCache();\n return this;\n};\n\n/**\n * Updates the internal client instance. If the reference of the clients\n * are equal then no update is actually done.\n * @param {AlgoliaSearch} newClient an AlgoliaSearch client\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n */\nAlgoliaSearchHelper.prototype.setClient = function (newClient) {\n if (this.client === newClient) return this;\n\n if (typeof newClient.addAlgoliaAgent === 'function') {\n newClient.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n this.client = newClient;\n\n return this;\n};\n\n/**\n * Gets the instance of the currently used client.\n * @return {AlgoliaSearch} the currently used client\n */\nAlgoliaSearchHelper.prototype.getClient = function () {\n return this.client;\n};\n\n/**\n * Creates an derived instance of the Helper. A derived helper\n * is a way to request other indices synchronised with the lifecycle\n * of the main Helper. This mechanism uses the multiqueries feature\n * of Algolia to aggregate all the requests in a single network call.\n *\n * This method takes a function that is used to create a new SearchParameter\n * that will be used to create requests to Algolia. Those new requests\n * are created just before the `search` event. The signature of the function\n * is `SearchParameters -> SearchParameters`.\n *\n * This method returns a new DerivedHelper which is an EventEmitter\n * that fires the same `search`, `result` and `error` events. Those\n * events, however, will receive data specific to this DerivedHelper\n * and the SearchParameters that is returned by the call of the\n * parameter function.\n * @param {function} fn SearchParameters -> SearchParameters\n * @return {DerivedHelper} a new DerivedHelper\n */\nAlgoliaSearchHelper.prototype.derive = function (fn) {\n var derivedHelper = new DerivedHelper(this, fn);\n this.derivedHelpers.push(derivedHelper);\n return derivedHelper;\n};\n\n/**\n * This method detaches a derived Helper from the main one. Prefer using the one from the\n * derived helper itself, to remove the event listeners too.\n * @private\n * @param {DerivedHelper} derivedHelper the derived helper to detach\n * @return {undefined} nothing is returned\n * @throws Error\n */\nAlgoliaSearchHelper.prototype.detachDerivedHelper = function (derivedHelper) {\n var pos = this.derivedHelpers.indexOf(derivedHelper);\n if (pos === -1) throw new Error('Derived helper already detached');\n this.derivedHelpers.splice(pos, 1);\n};\n\n/**\n * This method returns true if there is currently at least one on-going search.\n * @return {boolean} true if there is a search pending\n */\nAlgoliaSearchHelper.prototype.hasPendingRequests = function () {\n return this._currentNbQueries > 0;\n};\n\n/**\n * @typedef AlgoliaSearchHelper.NumericRefinement\n * @type {object}\n * @property {number[]} value the numbers that are used for filtering this attribute with\n * the operator specified.\n * @property {string} operator the faceting data: value, number of entries\n * @property {string} type will be 'numeric'\n */\n\n/**\n * @typedef AlgoliaSearchHelper.FacetRefinement\n * @type {object}\n * @property {string} value the string use to filter the attribute\n * @property {string} type the type of filter: 'conjunctive', 'disjunctive', 'exclude'\n */\n\nmodule.exports = AlgoliaSearchHelper;\n","'use strict';\n\nmodule.exports = function compact(array) {\n if (!Array.isArray(array)) {\n return [];\n }\n\n return array.filter(Boolean);\n};\n","'use strict';\n\n// NOTE: this behaves like lodash/defaults, but doesn't mutate the target\n// it also preserve keys order\nmodule.exports = function defaultsPure() {\n var sources = Array.prototype.slice.call(arguments);\n\n return sources.reduceRight(function (acc, source) {\n Object.keys(Object(source)).forEach(function (key) {\n if (source[key] === undefined) {\n return;\n }\n if (acc[key] !== undefined) {\n // remove if already added, so that we can add it in correct order\n delete acc[key];\n }\n acc[key] = source[key];\n });\n return acc;\n }, {});\n};\n","'use strict';\n\n/**\n * Replaces a leading - with \\-\n * @private\n * @param {any} value the facet value to replace\n * @returns {any} the escaped facet value or the value if it was not a string\n */\nfunction escapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return String(value).replace(/^-/, '\\\\-');\n}\n\n/**\n * Replaces a leading \\- with -\n * @private\n * @param {any} value the escaped facet value\n * @returns {any} the unescaped facet value or the value if it was not a string\n */\nfunction unescapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return value.replace(/^\\\\-/, '-');\n}\n\nmodule.exports = {\n escapeFacetValue: escapeFacetValue,\n unescapeFacetValue: unescapeFacetValue,\n};\n","'use strict';\n\n// @MAJOR can be replaced by native Array#find when we change support\nmodule.exports = function find(array, comparator) {\n if (!Array.isArray(array)) {\n return undefined;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return array[i];\n }\n }\n\n return undefined;\n};\n","'use strict';\n\n// @MAJOR can be replaced by native Array#findIndex when we change support\nmodule.exports = function find(array, comparator) {\n if (!Array.isArray(array)) {\n return -1;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return i;\n }\n }\n return -1;\n};\n","'use strict';\n\nvar find = require('./find');\n\n/**\n * Transform sort format from user friendly notation to lodash format\n * @param {string[]} sortBy array of predicate of the form \"attribute:order\"\n * @param {string[]} [defaults] array of predicate of the form \"attribute:order\"\n * @return {array.} array containing 2 elements : attributes, orders\n */\nmodule.exports = function formatSort(sortBy, defaults) {\n var defaultInstructions = (defaults || []).map(function (sort) {\n return sort.split(':');\n });\n\n return sortBy.reduce(\n function preparePredicate(out, sort) {\n var sortInstruction = sort.split(':');\n\n var matchingDefault = find(\n defaultInstructions,\n function (defaultInstruction) {\n return defaultInstruction[0] === sortInstruction[0];\n }\n );\n\n if (sortInstruction.length > 1 || !matchingDefault) {\n out[0].push(sortInstruction[0]);\n out[1].push(sortInstruction[1]);\n return out;\n }\n\n out[0].push(matchingDefault[0]);\n out[1].push(matchingDefault[1]);\n return out;\n },\n [[], []]\n );\n};\n","'use strict';\n\nfunction inherits(ctor, superCtor) {\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n });\n}\n\nmodule.exports = inherits;\n","'use strict';\n\nfunction intersection(arr1, arr2) {\n return arr1.filter(function (value, index) {\n return (\n arr2.indexOf(value) > -1 &&\n arr1.indexOf(value) === index /* skips duplicates */\n );\n });\n}\n\nmodule.exports = intersection;\n","'use strict';\n\nfunction clone(value) {\n if (typeof value === 'object' && value !== null) {\n return _merge(Array.isArray(value) ? [] : {}, value);\n }\n return value;\n}\n\nfunction isObjectOrArrayOrFunction(value) {\n return (\n typeof value === 'function' ||\n Array.isArray(value) ||\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n\nfunction _merge(target, source) {\n if (target === source) {\n return target;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (var key in source) {\n if (\n !Object.prototype.hasOwnProperty.call(source, key) ||\n key === '__proto__' ||\n key === 'constructor'\n ) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n var sourceVal = source[key];\n var targetVal = target[key];\n\n if (typeof targetVal !== 'undefined' && typeof sourceVal === 'undefined') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (\n isObjectOrArrayOrFunction(targetVal) &&\n isObjectOrArrayOrFunction(sourceVal)\n ) {\n target[key] = _merge(targetVal, sourceVal);\n } else {\n target[key] = clone(sourceVal);\n }\n }\n return target;\n}\n\n/**\n * This method is like Object.assign, but recursively merges own and inherited\n * enumerable keyed properties of source objects into the destination object.\n *\n * NOTE: this behaves like lodash/merge, but:\n * - does mutate functions if they are a source\n * - treats non-plain objects as plain\n * - does not work for circular objects\n * - treats sparse arrays as sparse\n * - does not convert Array-like objects (Arguments, NodeLists, etc.) to arrays\n *\n * @param {Object} target The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n */\nfunction merge(target) {\n if (!isObjectOrArrayOrFunction(target)) {\n target = {};\n }\n\n for (var i = 1, l = arguments.length; i < l; i++) {\n var source = arguments[i];\n\n if (isObjectOrArrayOrFunction(source)) {\n _merge(target, source);\n }\n }\n return target;\n}\n\nmodule.exports = merge;\n","'use strict';\n\nfunction objectHasKeys(obj) {\n return obj && Object.keys(obj).length > 0;\n}\n\nmodule.exports = objectHasKeys;\n","'use strict';\n\n// https://github.com/babel/babel/blob/3aaafae053fa75febb3aa45d45b6f00646e30ba4/packages/babel-helpers/src/helpers.js#L604-L620\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source === null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key;\n var i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n // eslint-disable-next-line no-continue\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\n","'use strict';\n\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined;\n var valIsNull = value === null;\n\n var othIsDefined = other !== undefined;\n var othIsNull = other === null;\n\n if (\n (!othIsNull && value > other) ||\n (valIsNull && othIsDefined) ||\n !valIsDefined\n ) {\n return 1;\n }\n if (\n (!valIsNull && value < other) ||\n (othIsNull && valIsDefined) ||\n !othIsDefined\n ) {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * @param {Array} collection object with keys in attributes\n * @param {Array} iteratees attributes\n * @param {Array} orders asc | desc\n * @return {Array} sorted collection\n */\nfunction orderBy(collection, iteratees, orders) {\n if (!Array.isArray(collection)) {\n return [];\n }\n\n if (!Array.isArray(orders)) {\n orders = [];\n }\n\n var result = collection.map(function (value, index) {\n return {\n criteria: iteratees.map(function (iteratee) {\n return value[iteratee];\n }),\n index: index,\n value: value,\n };\n });\n\n result.sort(function comparer(object, other) {\n var index = -1;\n\n while (++index < object.criteria.length) {\n var res = compareAscending(object.criteria[index], other.criteria[index]);\n if (res) {\n if (index >= orders.length) {\n return res;\n }\n if (orders[index] === 'desc') {\n return -res;\n }\n return res;\n }\n }\n\n // This ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n });\n\n return result.map(function (res) {\n return res.value;\n });\n}\n\nmodule.exports = orderBy;\n","'use strict';\n\nfunction valToNumber(v) {\n if (typeof v === 'number') {\n return v;\n } else if (typeof v === 'string') {\n return parseFloat(v);\n } else if (Array.isArray(v)) {\n return v.map(valToNumber);\n }\n\n throw new Error(\n 'The value should be a number, a parsable string or an array of those.'\n );\n}\n\nmodule.exports = valToNumber;\n","'use strict';\n\nvar merge = require('./functions/merge');\n\nfunction sortObject(obj) {\n return Object.keys(obj)\n .sort()\n .reduce(function (acc, curr) {\n acc[curr] = obj[curr];\n return acc;\n }, {});\n}\n\nvar requestBuilder = {\n /**\n * Get all the queries to send to the client, those queries can used directly\n * with the Algolia client.\n * @private\n * @param {string} index The name of the index\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object[]} The queries\n */\n _getQueries: function getQueries(index, state) {\n var queries = [];\n\n // One query for the hits\n queries.push({\n indexName: index,\n params: requestBuilder._getHitsSearchParams(state),\n });\n\n // One for each disjunctive facets\n state.getRefinedDisjunctiveFacets().forEach(function (refinedFacet) {\n queries.push({\n indexName: index,\n params: requestBuilder._getDisjunctiveFacetSearchParams(\n state,\n refinedFacet\n ),\n });\n });\n\n // More to get the parent levels of the hierarchical facets when refined\n state.getRefinedHierarchicalFacets().forEach(function (refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n // If we are deeper than level 0 (starting from `beer > IPA`)\n // we want to get all parent values\n if (\n currentRefinement.length > 0 &&\n currentRefinement[0].split(separator).length > 1\n ) {\n // We generate a map of the filters we will use for our facet values queries\n var filtersMap = currentRefinement[0]\n .split(separator)\n .slice(0, -1)\n .reduce(function createFiltersMap(map, segment, level) {\n return map.concat({\n attribute: hierarchicalFacet.attributes[level],\n value:\n level === 0\n ? segment\n : [map[map.length - 1].value, segment].join(separator),\n });\n }, []);\n\n filtersMap.forEach(function (filter, level) {\n var params = requestBuilder._getDisjunctiveFacetSearchParams(\n state,\n filter.attribute,\n level === 0\n );\n\n // Keep facet filters unrelated to current hierarchical attributes\n function hasHierarchicalFacetFilter(value) {\n return hierarchicalFacet.attributes.some(function (attribute) {\n return attribute === value.split(':')[0];\n });\n }\n\n var filteredFacetFilters = (params.facetFilters || []).reduce(\n function (acc, facetFilter) {\n if (Array.isArray(facetFilter)) {\n var filtered = facetFilter.filter(function (filterValue) {\n return !hasHierarchicalFacetFilter(filterValue);\n });\n\n if (filtered.length > 0) {\n acc.push(filtered);\n }\n }\n\n if (\n typeof facetFilter === 'string' &&\n !hasHierarchicalFacetFilter(facetFilter)\n ) {\n acc.push(facetFilter);\n }\n\n return acc;\n },\n []\n );\n\n var parent = filtersMap[level - 1];\n if (level > 0) {\n params.facetFilters = filteredFacetFilters.concat(\n parent.attribute + ':' + parent.value\n );\n } else {\n params.facetFilters =\n filteredFacetFilters.length > 0\n ? filteredFacetFilters\n : undefined;\n }\n\n queries.push({ indexName: index, params: params });\n });\n }\n });\n\n return queries;\n },\n\n /**\n * Build search parameters used to fetch hits\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object.} The search parameters for hits\n */\n _getHitsSearchParams: function (state) {\n var facets = state.facets\n .concat(state.disjunctiveFacets)\n .concat(requestBuilder._getHitsHierarchicalFacetsAttributes(state))\n .sort();\n\n var facetFilters = requestBuilder._getFacetFilters(state);\n var numericFilters = requestBuilder._getNumericFilters(state);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {\n facets: facets.indexOf('*') > -1 ? ['*'] : facets,\n tagFilters: tagFilters,\n };\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Build search parameters used to fetch a disjunctive facet\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @param {string} facet the associated facet name\n * @param {boolean} hierarchicalRootLevel ?? FIXME\n * @return {object} The search parameters for a disjunctive facet\n */\n _getDisjunctiveFacetSearchParams: function (\n state,\n facet,\n hierarchicalRootLevel\n ) {\n var facetFilters = requestBuilder._getFacetFilters(\n state,\n facet,\n hierarchicalRootLevel\n );\n var numericFilters = requestBuilder._getNumericFilters(state, facet);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {\n hitsPerPage: 0,\n page: 0,\n analytics: false,\n clickAnalytics: false,\n };\n\n if (tagFilters.length > 0) {\n additionalParams.tagFilters = tagFilters;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facet);\n\n if (hierarchicalFacet) {\n additionalParams.facets =\n requestBuilder._getDisjunctiveHierarchicalFacetAttribute(\n state,\n hierarchicalFacet,\n hierarchicalRootLevel\n );\n } else {\n additionalParams.facets = facet;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Return the numeric filters in an algolia request fashion\n * @private\n * @param {SearchParameters} state the state from which to get the filters\n * @param {string} [facetName] the name of the attribute for which the filters should be excluded\n * @return {string[]} the numeric filters in the algolia format\n */\n _getNumericFilters: function (state, facetName) {\n if (state.numericFilters) {\n return state.numericFilters;\n }\n\n var numericFilters = [];\n\n Object.keys(state.numericRefinements).forEach(function (attribute) {\n var operators = state.numericRefinements[attribute] || {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator] || [];\n if (facetName !== attribute) {\n values.forEach(function (value) {\n if (Array.isArray(value)) {\n var vs = value.map(function (v) {\n return attribute + operator + v;\n });\n numericFilters.push(vs);\n } else {\n numericFilters.push(attribute + operator + value);\n }\n });\n }\n });\n });\n\n return numericFilters;\n },\n\n /**\n * Return the tags filters depending on which format is used, either tagFilters or tagRefinements\n * @private\n * @param {SearchParameters} state the state from which to get the filters\n * @return {string} Tag filters in a single string\n */\n _getTagFilters: function (state) {\n if (state.tagFilters) {\n return state.tagFilters;\n }\n\n return state.tagRefinements.join(',');\n },\n\n /**\n * Build facetFilters parameter based on current refinements. The array returned\n * contains strings representing the facet filters in the algolia format.\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @param {string} [facet] if set, the current disjunctive facet\n * @param {boolean} [hierarchicalRootLevel] ?? FIXME\n * @return {array.} The facet filters in the algolia format\n */\n _getFacetFilters: function (state, facet, hierarchicalRootLevel) {\n var facetFilters = [];\n\n var facetsRefinements = state.facetsRefinements || {};\n Object.keys(facetsRefinements)\n .sort()\n .forEach(function (facetName) {\n var facetValues = facetsRefinements[facetName] || [];\n facetValues.sort().forEach(function (facetValue) {\n facetFilters.push(facetName + ':' + facetValue);\n });\n });\n\n var facetsExcludes = state.facetsExcludes || {};\n Object.keys(facetsExcludes)\n .sort()\n .forEach(function (facetName) {\n var facetValues = facetsExcludes[facetName] || [];\n facetValues.sort().forEach(function (facetValue) {\n facetFilters.push(facetName + ':-' + facetValue);\n });\n });\n\n var disjunctiveFacetsRefinements = state.disjunctiveFacetsRefinements || {};\n Object.keys(disjunctiveFacetsRefinements)\n .sort()\n .forEach(function (facetName) {\n var facetValues = disjunctiveFacetsRefinements[facetName] || [];\n if (facetName === facet || !facetValues || facetValues.length === 0) {\n return;\n }\n var orFilters = [];\n\n facetValues.sort().forEach(function (facetValue) {\n orFilters.push(facetName + ':' + facetValue);\n });\n\n facetFilters.push(orFilters);\n });\n\n var hierarchicalFacetsRefinements =\n state.hierarchicalFacetsRefinements || {};\n Object.keys(hierarchicalFacetsRefinements)\n .sort()\n .forEach(function (facetName) {\n var facetValues = hierarchicalFacetsRefinements[facetName] || [];\n var facetValue = facetValues[0];\n\n if (facetValue === undefined) {\n return;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facetName);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeToRefine;\n var attributesIndex;\n\n // we ask for parent facet values only when the `facet` is the current hierarchical facet\n if (facet === facetName) {\n // if we are at the root level already, no need to ask for facet values, we get them from\n // the hits query\n if (\n facetValue.indexOf(separator) === -1 ||\n (!rootPath && hierarchicalRootLevel === true) ||\n (rootPath &&\n rootPath.split(separator).length ===\n facetValue.split(separator).length)\n ) {\n return;\n }\n\n if (!rootPath) {\n attributesIndex = facetValue.split(separator).length - 2;\n facetValue = facetValue.slice(0, facetValue.lastIndexOf(separator));\n } else {\n attributesIndex = rootPath.split(separator).length - 1;\n facetValue = rootPath;\n }\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n } else {\n attributesIndex = facetValue.split(separator).length - 1;\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n }\n\n if (attributeToRefine) {\n facetFilters.push([attributeToRefine + ':' + facetValue]);\n }\n });\n\n return facetFilters;\n },\n\n _getHitsHierarchicalFacetsAttributes: function (state) {\n var out = [];\n\n return state.hierarchicalFacets.reduce(\n // ask for as much levels as there's hierarchical refinements\n function getHitsAttributesForHierarchicalFacet(\n allAttributes,\n hierarchicalFacet\n ) {\n var hierarchicalRefinement = state.getHierarchicalRefinement(\n hierarchicalFacet.name\n )[0];\n\n // if no refinement, ask for root level\n if (!hierarchicalRefinement) {\n allAttributes.push(hierarchicalFacet.attributes[0]);\n return allAttributes;\n }\n\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var level = hierarchicalRefinement.split(separator).length;\n var newAttributes = hierarchicalFacet.attributes.slice(0, level + 1);\n\n return allAttributes.concat(newAttributes);\n },\n out\n );\n },\n\n _getDisjunctiveHierarchicalFacetAttribute: function (\n state,\n hierarchicalFacet,\n rootLevel\n ) {\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n if (rootLevel === true) {\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeIndex = 0;\n\n if (rootPath) {\n attributeIndex = rootPath.split(separator).length;\n }\n return [hierarchicalFacet.attributes[attributeIndex]];\n }\n\n var hierarchicalRefinement =\n state.getHierarchicalRefinement(hierarchicalFacet.name)[0] || '';\n // if refinement is 'beers > IPA > Flying dog',\n // then we want `facets: ['beers > IPA']` as disjunctive facet (parent level values)\n\n var parentLevel = hierarchicalRefinement.split(separator).length - 1;\n return hierarchicalFacet.attributes.slice(0, parentLevel + 1);\n },\n\n getSearchForFacetQuery: function (facetName, query, maxFacetHits, state) {\n var stateForSearchForFacetValues = state.isDisjunctiveFacet(facetName)\n ? state.clearRefinements(facetName)\n : state;\n var searchForFacetSearchParameters = {\n facetQuery: query,\n facetName: facetName,\n };\n if (typeof maxFacetHits === 'number') {\n searchForFacetSearchParameters.maxFacetHits = maxFacetHits;\n }\n return sortObject(\n merge(\n {},\n requestBuilder._getHitsSearchParams(stateForSearchForFacetValues),\n searchForFacetSearchParameters\n )\n );\n },\n};\n\nmodule.exports = requestBuilder;\n","'use strict';\n\nmodule.exports = function isValidUserToken(userToken) {\n if (userToken === null) {\n return false;\n }\n return /^[a-zA-Z0-9_-]{1,64}$/.test(userToken);\n};\n","'use strict';\n\nmodule.exports = '3.14.0';\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","!function(globals) {\n'use strict'\n\nvar _imports = {}\n\nif (typeof module !== 'undefined' && module.exports) { //CommonJS\n _imports.bytesToHex = require('convert-hex').bytesToHex\n _imports.convertString = require('convert-string')\n module.exports = sha256\n} else {\n _imports.bytesToHex = globals.convertHex.bytesToHex\n _imports.convertString = globals.convertString\n globals.sha256 = sha256\n}\n\n/*\nCryptoJS v3.1.2\ncode.google.com/p/crypto-js\n(c) 2009-2013 by Jeff Mott. All rights reserved.\ncode.google.com/p/crypto-js/wiki/License\n*/\n\n// Initialization round constants tables\nvar K = []\n\n// Compute constants\n!function () {\n function isPrime(n) {\n var sqrtN = Math.sqrt(n);\n for (var factor = 2; factor <= sqrtN; factor++) {\n if (!(n % factor)) return false\n }\n\n return true\n }\n\n function getFractionalBits(n) {\n return ((n - (n | 0)) * 0x100000000) | 0\n }\n\n var n = 2\n var nPrime = 0\n while (nPrime < 64) {\n if (isPrime(n)) {\n K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3))\n nPrime++\n }\n\n n++\n }\n}()\n\nvar bytesToWords = function (bytes) {\n var words = []\n for (var i = 0, b = 0; i < bytes.length; i++, b += 8) {\n words[b >>> 5] |= bytes[i] << (24 - b % 32)\n }\n return words\n}\n\nvar wordsToBytes = function (words) {\n var bytes = []\n for (var b = 0; b < words.length * 32; b += 8) {\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF)\n }\n return bytes\n}\n\n// Reusable object\nvar W = []\n\nvar processBlock = function (H, M, offset) {\n // Working variables\n var a = H[0], b = H[1], c = H[2], d = H[3]\n var e = H[4], f = H[5], g = H[6], h = H[7]\n\n // Computation\n for (var i = 0; i < 64; i++) {\n if (i < 16) {\n W[i] = M[offset + i] | 0\n } else {\n var gamma0x = W[i - 15]\n var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n ((gamma0x << 14) | (gamma0x >>> 18)) ^\n (gamma0x >>> 3)\n\n var gamma1x = W[i - 2];\n var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n ((gamma1x << 13) | (gamma1x >>> 19)) ^\n (gamma1x >>> 10)\n\n W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n }\n\n var ch = (e & f) ^ (~e & g);\n var maj = (a & b) ^ (a & c) ^ (b & c);\n\n var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n var t1 = h + sigma1 + ch + K[i] + W[i];\n var t2 = sigma0 + maj;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n // Intermediate hash value\n H[0] = (H[0] + a) | 0;\n H[1] = (H[1] + b) | 0;\n H[2] = (H[2] + c) | 0;\n H[3] = (H[3] + d) | 0;\n H[4] = (H[4] + e) | 0;\n H[5] = (H[5] + f) | 0;\n H[6] = (H[6] + g) | 0;\n H[7] = (H[7] + h) | 0;\n}\n\nfunction sha256(message, options) {;\n if (message.constructor === String) {\n message = _imports.convertString.UTF8.stringToBytes(message);\n }\n\n var H =[ 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A,\n 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19 ];\n\n var m = bytesToWords(message);\n var l = message.length * 8;\n\n m[l >> 5] |= 0x80 << (24 - l % 32);\n m[((l + 64 >> 9) << 4) + 15] = l;\n\n for (var i=0 ; i 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\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))for(t=0;t {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"https://opensourceweek.it/wp-content/plugins/opencalendar/app/\";","import type { MultipleQueriesQuery, RequestOptions } from 'searchkit'\nimport type Searchkit from 'searchkit'\n\ninterface InstantSearchElasticsearchAdapterConfig {\n url: string\n headers?: Record | (() => Record)\n}\n\ntype Config = InstantSearchElasticsearchAdapterConfig | Searchkit\n\nfunction isSearchkit(config: Config): config is Searchkit {\n return (config as Searchkit).handleInstantSearchRequests !== undefined\n}\n\nclass InstantSearchElasticsearchAdapter {\n private cache: Record = {}\n public transporter = {\n headers: {},\n queryParameters: {}\n }\n\n constructor(private config: Config, private requestOptions?: RequestOptions) {\n if (!isSearchkit(this.config) && !this.config.url) {\n throw new Error('Searchkit Instantsearch Client: url is required')\n }\n if (!isSearchkit(this.config) && this.requestOptions) {\n throw new Error(\n 'Searchkit Instantsearch Client: requestOptions is not supported when used with url. Add the request options to @searchkit/api instead.'\n )\n }\n }\n\n public clearCache(): Promise {\n this.cache = {}\n return Promise.resolve(undefined)\n }\n\n private getHeaders(): Record {\n let headers = {}\n if (!isSearchkit(this.config) && this.config.headers) {\n headers =\n typeof this.config.headers === 'function' ? this.config.headers() : this.config.headers\n }\n return headers\n }\n\n public async search(instantsearchRequests: readonly MultipleQueriesQuery[]): Promise {\n try {\n const key = JSON.stringify(instantsearchRequests)\n if (this.cache[key]) {\n return this.cache[key]\n }\n\n if (isSearchkit(this.config)) {\n const results = await this.config.handleInstantSearchRequests(\n instantsearchRequests,\n this.requestOptions\n )\n this.cache[key] = results\n return results\n }\n\n const response = await fetch(this.config.url, {\n body: JSON.stringify(instantsearchRequests),\n headers: {\n 'Content-Type': 'application/json',\n ...this.getHeaders()\n },\n method: 'POST'\n })\n\n const results = await response.json()\n this.cache[key] = results\n return results\n } catch (e) {\n console.error(e)\n return []\n }\n }\n\n public async searchForFacetValues(\n instantsearchRequests: readonly MultipleQueriesQuery[]\n ): Promise {\n const isr = instantsearchRequests.map((request) => {\n return {\n ...request,\n params: {\n ...request.params,\n hitsPerPage: 0\n }\n }\n })\n\n try {\n if (isSearchkit(this.config)) {\n const results = await this.config.handleInstantSearchRequests(isr)\n return results.results\n }\n\n const response = await fetch(this.config.url, {\n body: JSON.stringify(isr),\n headers: {\n 'Content-Type': 'application/json',\n ...this.getHeaders()\n },\n method: 'POST'\n })\n\n const results = await response.json()\n return results.results\n } catch (e) {\n console.error(e)\n return []\n }\n }\n}\n\nconst createClient = (config: Config, requestOptions?: RequestOptions) =>\n new InstantSearchElasticsearchAdapter(config, requestOptions)\n\nexport default createClient\n","import logoImage from \"../assets/image/main_logo.png\";\n\nconst WrapperOpenCalendar = ({ children }: { children: React.ReactNode }) => {\n return (\n <>\n
\n
\n \n \n \n
\n\n
\n \n \n \n
\n
\n {children}\n \n );\n};\n\nexport default WrapperOpenCalendar;\n","/**\n * Throws an error if the condition is not met.\n *\n * The error is exhaustive in development, and becomes generic in production.\n *\n * This is used to make development a better experience to provide guidance as\n * to where the error comes from.\n */\nexport function invariant(condition, message) {\n if (condition) {\n return;\n }\n if (!(process.env.NODE_ENV === 'development')) {\n throw new Error('Invariant failed');\n }\n if (process.env.NODE_ENV === 'development') {\n throw new Error(\"[InstantSearch] \".concat(typeof message === 'function' ? message() : message));\n }\n}","import { createContext } from 'react';\nexport var InstantSearchContext = /*#__PURE__*/createContext(null);\nif (process.env.NODE_ENV === 'development') {\n InstantSearchContext.displayName = 'InstantSearch';\n}","import { useContext } from 'react';\nimport { invariant } from \"./invariant.js\";\nimport { InstantSearchContext } from \"./InstantSearchContext.js\";\nexport function useInstantSearchContext() {\n var search = useContext(InstantSearchContext);\n invariant(search !== null, 'Hooks must be used inside the component.\\n\\n' + 'They are not compatible with the `react-instantsearch-core` and `react-instantsearch-dom` packages, so make sure to use the component from `react-instantsearch-hooks`.');\n return search;\n}","import { useEffect, useLayoutEffect } from 'react';\n\n/**\n * `useLayoutEffect` that doesn't show a warning when server-side rendering.\n *\n * It uses `useEffect` on the server (no-op), and `useLayoutEffect` on the browser.\n */\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;","import algoliasearchHelper from 'algoliasearch-helper';\nexport function createSearchResults(state) {\n var _state$query, _state$page, _state$hitsPerPage;\n return new algoliasearchHelper.SearchResults(state, [{\n query: (_state$query = state.query) !== null && _state$query !== void 0 ? _state$query : '',\n page: (_state$page = state.page) !== null && _state$page !== void 0 ? _state$page : 0,\n hitsPerPage: (_state$hitsPerPage = state.hitsPerPage) !== null && _state$hitsPerPage !== void 0 ? _state$hitsPerPage : 20,\n hits: [],\n nbHits: 0,\n nbPages: 0,\n params: '',\n exhaustiveNbHits: true,\n exhaustiveFacetsCount: true,\n processingTimeMS: 0,\n index: state.index\n }], {\n /** used by connectors to prevent persisting these results */\n __isArtificial: true\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createSearchResults } from \"./createSearchResults.js\";\nexport function getIndexSearchResults(indexWidget) {\n var helper = indexWidget.getHelper();\n var results =\n // On SSR, we get the results injected on the Index.\n indexWidget.getResults() ||\n // On the browser, we create fallback results based on the helper state.\n createSearchResults(helper.state);\n var scopedResults = indexWidget.getScopedResults().map(function (scopedResult) {\n var fallbackResults = scopedResult.indexId === indexWidget.getIndexId() ? results : createSearchResults(scopedResult.helper.state);\n return _objectSpread(_objectSpread({}, scopedResult), {}, {\n // We keep `results` from being `null`.\n results: scopedResult.results || fallbackResults\n });\n });\n return {\n results: results,\n scopedResults: scopedResults\n };\n}","import { createContext } from 'react';\nexport var IndexContext = /*#__PURE__*/createContext(null);\nif (process.env.NODE_ENV === 'development') {\n IndexContext.displayName = 'Index';\n}","import { useContext } from 'react';\nimport { invariant } from \"./invariant.js\";\nimport { IndexContext } from \"./IndexContext.js\";\nexport function useIndexContext() {\n var context = useContext(IndexContext);\n invariant(context !== null, 'The component must be used within .');\n return context;\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { useEffect, useState } from 'react';\nimport { getIndexSearchResults } from \"./getIndexSearchResults.js\";\nimport { useIndexContext } from \"./useIndexContext.js\";\nimport { useInstantSearchContext } from \"./useInstantSearchContext.js\";\nexport function useSearchResults() {\n var search = useInstantSearchContext();\n var searchIndex = useIndexContext();\n var _useState = useState(function () {\n return getIndexSearchResults(searchIndex);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n searchResults = _useState2[0],\n setSearchResults = _useState2[1];\n useEffect(function () {\n function handleRender() {\n var results = searchIndex.getResults();\n\n // Results can be `null` when the first search is stalled.\n // In this case, we skip the update.\n // See: https://github.com/algolia/instantsearch.js/blob/20996c7a159988c58e00ff24d2d2dc98af8b980f/src/widgets/index/index.ts#L652-L657\n if (results !== null) {\n setSearchResults({\n results: results,\n scopedResults: searchIndex.getScopedResults()\n });\n }\n }\n search.addListener('render', handleRender);\n return function () {\n search.removeListener('render', handleRender);\n };\n }, [search, searchIndex]);\n return searchResults;\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { useCallback, useEffect, useState } from 'react';\nimport { useIndexContext } from \"./useIndexContext.js\";\nimport { useInstantSearchContext } from \"./useInstantSearchContext.js\";\nexport function useSearchState() {\n var search = useInstantSearchContext();\n var searchIndex = useIndexContext();\n var indexId = searchIndex.getIndexId();\n var _useState = useState(function () {\n return search.getUiState();\n }),\n _useState2 = _slicedToArray(_useState, 2),\n uiState = _useState2[0],\n setLocalUiState = _useState2[1];\n var indexUiState = uiState[indexId];\n var setUiState = useCallback(function (nextUiState) {\n search.setUiState(nextUiState);\n }, [search]);\n var setIndexUiState = useCallback(function (nextIndexUiState) {\n searchIndex.setIndexUiState(nextIndexUiState);\n }, [searchIndex]);\n useEffect(function () {\n function handleRender() {\n setLocalUiState(search.getUiState());\n }\n search.addListener('render', handleRender);\n return function () {\n search.removeListener('render', handleRender);\n };\n }, [search]);\n return {\n uiState: uiState,\n setUiState: setUiState,\n indexUiState: indexUiState,\n setIndexUiState: setIndexUiState\n };\n}","import { useCallback } from 'react';\nimport { useInstantSearchContext } from \"../lib/useInstantSearchContext.js\";\nimport { useIsomorphicLayoutEffect } from \"../lib/useIsomorphicLayoutEffect.js\";\nimport { useSearchResults } from \"../lib/useSearchResults.js\";\nimport { useSearchState } from \"../lib/useSearchState.js\";\nimport { warn } from \"../lib/warn.js\";\nexport function useInstantSearch() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n catchError = _ref.catchError;\n var search = useInstantSearchContext();\n var _useSearchState = useSearchState(),\n uiState = _useSearchState.uiState,\n setUiState = _useSearchState.setUiState,\n indexUiState = _useSearchState.indexUiState,\n setIndexUiState = _useSearchState.setIndexUiState;\n var _useSearchResults = useSearchResults(),\n results = _useSearchResults.results,\n scopedResults = _useSearchResults.scopedResults;\n var addMiddlewares = useCallback(function () {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n search.use.apply(search, middlewares);\n return function () {\n search.unuse.apply(search, middlewares);\n };\n }, [search]);\n\n // @MAJOR: Remove in v7\n var use = useCallback(function () {\n process.env.NODE_ENV === 'development' ? warn(false, 'The `use` function is deprecated and will be removed in the next major version. Please use `addMiddlewares` instead.') : void 0;\n return addMiddlewares.apply(void 0, arguments);\n }, [addMiddlewares]);\n var refresh = useCallback(function () {\n search.refresh();\n }, [search]);\n useIsomorphicLayoutEffect(function () {\n if (catchError) {\n var onError = function onError() {};\n search.addListener('error', onError);\n return function () {\n return search.removeListener('error', onError);\n };\n }\n return function () {};\n }, [search, catchError]);\n return {\n results: results,\n scopedResults: scopedResults,\n uiState: uiState,\n setUiState: setUiState,\n indexUiState: indexUiState,\n setIndexUiState: setIndexUiState,\n addMiddlewares: addMiddlewares,\n use: use,\n refresh: refresh,\n status: search.status,\n error: search.error\n };\n}","export function createDocumentationLink(_ref) {\n var name = _ref.name,\n _ref$connector = _ref.connector,\n connector = _ref$connector === void 0 ? false : _ref$connector;\n return ['https://www.algolia.com/doc/api-reference/widgets/', name, '/js/', connector ? '#connector' : ''].join('');\n}\nexport function createDocumentationMessageGenerator() {\n for (var _len = arguments.length, widgets = new Array(_len), _key = 0; _key < _len; _key++) {\n widgets[_key] = arguments[_key];\n }\n var links = widgets.map(function (widget) {\n return createDocumentationLink(widget);\n }).join(', ');\n return function (message) {\n return [message, \"See documentation: \".concat(links)].filter(Boolean).join('\\n\\n');\n };\n}","export function noop() {}","import { getObjectType } from \"./getObjectType.js\";\nexport function checkRendering(rendering, usage) {\n if (rendering === undefined || typeof rendering !== 'function') {\n throw new Error(\"The render function is not valid (received type \".concat(getObjectType(rendering), \").\\n\\n\").concat(usage));\n }\n}","export function getObjectType(object) {\n return Object.prototype.toString.call(object).slice(8, -1);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { checkRendering, createDocumentationMessageGenerator, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'search-box',\n connector: true\n});\nvar defaultQueryHook = function defaultQueryHook(query, hook) {\n return hook(query);\n};\n\n/**\n * **SearchBox** connector provides the logic to build a widget that will let the user search for a query.\n *\n * The connector provides to the rendering: `refine()` to set the query. The behaviour of this function\n * may be impacted by the `queryHook` widget parameter.\n */\nvar connectSearchBox = function connectSearchBox(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n _ref$queryHook = _ref.queryHook,\n queryHook = _ref$queryHook === void 0 ? defaultQueryHook : _ref$queryHook;\n var _refine;\n var _clear;\n return {\n $$type: 'ais.searchBox',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref2) {\n var state = _ref2.state;\n unmountFn();\n return state.setQueryParameter('query', undefined);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n searchBox: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref3) {\n var helper = _ref3.helper,\n searchMetadata = _ref3.searchMetadata,\n state = _ref3.state;\n if (!_refine) {\n _refine = function _refine(query) {\n queryHook(query, function (q) {\n return helper.setQuery(q).search();\n });\n };\n _clear = function _clear() {\n helper.setQuery('').search();\n };\n }\n return {\n query: state.query || '',\n refine: _refine,\n clear: _clear,\n widgetParams: widgetParams,\n isSearchStalled: searchMetadata.isSearchStalled\n };\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var query = searchParameters.query || '';\n if (query === '' || uiState && uiState.query === query) {\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n query: query\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n return searchParameters.setQueryParameter('query', uiState.query || '');\n }\n };\n };\n};\nexport default connectSearchBox;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/* eslint-disable complexity */\n\n/*\n * Code taken from dequal/lite v2.0.0\n * https://github.com/lukeed/dequal/blob/9aa73181ac7e081cd330cac67d313632ac04bb02/src/lite.js\n *\n * It adds a 3rd argument `compare(a, b)` that lets execute custom logic to\n * compare values.\n * We use it to skip comparing function references.\n */\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nvar has = Object.prototype.hasOwnProperty;\nexport function dequal(foo, bar, compare) {\n // start of custom implementation\n if (compare !== null && compare !== void 0 && compare(foo, bar)) {\n return true;\n }\n // end of custom implementation\n\n var ctor;\n var len;\n if (foo === bar) return true;\n if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n if (ctor === Date) return foo.getTime() === bar.getTime();\n if (ctor === RegExp) return foo.toString() === bar.toString();\n if (ctor === Array) {\n if ((len = foo.length) === bar.length) {\n while (len-- && dequal(foo[len], bar[len], compare));\n }\n return len === -1;\n }\n if (!ctor || _typeof(foo) === 'object') {\n len = 0;\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (ctor in foo) {\n if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor], compare)) return false;\n }\n return Object.keys(bar).length === len;\n }\n }\n\n // eslint-disable-next-line no-self-compare\n return foo !== foo && bar !== bar;\n}","import { createContext } from 'react';\nexport var InstantSearchServerContext = /*#__PURE__*/createContext(null);\nif (process.env.NODE_ENV === 'development') {\n InstantSearchServerContext.displayName = 'InstantSearchServer';\n}","import { useContext } from 'react';\nimport { InstantSearchServerContext } from \"../components/InstantSearchServerContext.js\";\nexport function useInstantSearchServerContext() {\n return useContext(InstantSearchServerContext);\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { useState } from 'react';\nimport { dequal } from \"./dequal.js\";\nexport function useStableValue(value) {\n var _useState = useState(function () {\n return value;\n }),\n _useState2 = _slicedToArray(_useState, 2),\n stableValue = _useState2[0],\n setStableValue = _useState2[1];\n if (!dequal(stableValue, value)) {\n setStableValue(value);\n }\n return stableValue;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"instantSearchInstance\", \"widgetParams\"],\n _excluded2 = [\"widgetParams\"];\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useMemo, useRef, useState } from 'react';\nimport { dequal } from \"../lib/dequal.js\";\nimport { getIndexSearchResults } from \"../lib/getIndexSearchResults.js\";\nimport { useIndexContext } from \"../lib/useIndexContext.js\";\nimport { useInstantSearchContext } from \"../lib/useInstantSearchContext.js\";\nimport { useInstantSearchServerContext } from \"../lib/useInstantSearchServerContext.js\";\nimport { useStableValue } from \"../lib/useStableValue.js\";\nimport { useWidget } from \"../lib/useWidget.js\";\nexport function useConnector(connector) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var additionalWidgetProperties = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var serverContext = useInstantSearchServerContext();\n var search = useInstantSearchContext();\n var parentIndex = useIndexContext();\n var stableProps = useStableValue(props);\n var stableAdditionalWidgetProperties = useStableValue(additionalWidgetProperties);\n var shouldSetStateRef = useRef(true);\n var previousRenderStateRef = useRef(null);\n var previousStatusRef = useRef(search.status);\n var widget = useMemo(function () {\n var createWidget = connector(function (connectorState, isFirstRender) {\n // We skip the `init` widget render because:\n // - We rely on `getWidgetRenderState` to compute the initial state before\n // the InstantSearch.js lifecycle starts.\n // - It prevents UI flashes when updating the widget props.\n if (isFirstRender) {\n shouldSetStateRef.current = true;\n return;\n }\n\n // There are situations where InstantSearch.js may render widgets slightly\n // after they're removed by React, and thus try to update the React state\n // on unmounted components. React 16 and 17 consider them as memory leaks\n // and display a warning.\n // This happens in when `attributesToRender` contains a\n // value without an attribute previously mounted. React will unmount the\n // component controlled by that attribute, but InstantSearch.js will stay\n // unaware of this change until the render pass finishes, and therefore\n // notifies of a state change.\n // This ref lets us track this situation and ignore these state updates.\n if (shouldSetStateRef.current) {\n var instantSearchInstance = connectorState.instantSearchInstance,\n widgetParams = connectorState.widgetParams,\n renderState = _objectWithoutProperties(connectorState, _excluded);\n\n // We only update the state when a widget render state param changes,\n // except for functions. We ignore function reference changes to avoid\n // infinite loops. It's safe to omit them because they get updated\n // every time another render param changes.\n if (!dequal(renderState, previousRenderStateRef.current, function (a, b) {\n return (a === null || a === void 0 ? void 0 : a.constructor) === Function && (b === null || b === void 0 ? void 0 : b.constructor) === Function;\n }) || instantSearchInstance.status !== previousStatusRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n setState(renderState);\n previousRenderStateRef.current = renderState;\n previousStatusRef.current = instantSearchInstance.status;\n }\n }\n }, function () {\n // We'll ignore the next state update until we know for sure that\n // InstantSearch.js re-inits the component.\n shouldSetStateRef.current = false;\n });\n return _objectSpread(_objectSpread({}, createWidget(stableProps)), stableAdditionalWidgetProperties);\n }, [connector, stableProps, stableAdditionalWidgetProperties]);\n var _useState = useState(function () {\n if (widget.getWidgetRenderState) {\n var _widget$getWidgetSear;\n // The helper exists because we've started InstantSearch.\n var helper = parentIndex.getHelper();\n var uiState = parentIndex.getWidgetUiState({})[parentIndex.getIndexId()];\n helper.state = ((_widget$getWidgetSear = widget.getWidgetSearchParameters) === null || _widget$getWidgetSear === void 0 ? void 0 : _widget$getWidgetSear.call(widget, helper.state, {\n uiState: uiState\n })) || helper.state;\n var _getIndexSearchResult = getIndexSearchResults(parentIndex),\n results = _getIndexSearchResult.results,\n scopedResults = _getIndexSearchResult.scopedResults;\n\n // We get the widget render state by providing the same parameters as\n // InstantSearch provides to the widget's `render` method.\n // See https://github.com/algolia/instantsearch.js/blob/019cd18d0de6dd320284aa4890541b7fe2198c65/src/widgets/index/index.ts#L604-L617\n var _widget$getWidgetRend = widget.getWidgetRenderState({\n helper: helper,\n parent: parentIndex,\n instantSearchInstance: search,\n results: results,\n scopedResults: scopedResults,\n state: helper.state,\n renderState: search.renderState,\n templatesConfig: search.templatesConfig,\n createURL: parentIndex.createURL,\n searchMetadata: {\n isSearchStalled: search.status === 'stalled'\n },\n status: search.status,\n error: search.error\n }),\n widgetParams = _widget$getWidgetRend.widgetParams,\n renderState = _objectWithoutProperties(_widget$getWidgetRend, _excluded2);\n return renderState;\n }\n return {};\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n useWidget({\n widget: widget,\n parentIndex: parentIndex,\n props: stableProps,\n shouldSsr: Boolean(serverContext)\n });\n return state;\n}","import { useEffect, useRef } from 'react';\nimport { dequal } from \"./dequal.js\";\nimport { useInstantSearchContext } from \"./useInstantSearchContext.js\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect.js\";\nexport function useWidget(_ref) {\n var widget = _ref.widget,\n parentIndex = _ref.parentIndex,\n props = _ref.props,\n shouldSsr = _ref.shouldSsr;\n var prevPropsRef = useRef(props);\n useEffect(function () {\n prevPropsRef.current = props;\n }, [props]);\n var prevWidgetRef = useRef(widget);\n useEffect(function () {\n prevWidgetRef.current = widget;\n }, [widget]);\n var cleanupTimerRef = useRef(null);\n var shouldAddWidgetEarly = shouldSsr && !parentIndex.getWidgets().includes(widget);\n var search = useInstantSearchContext();\n\n // This effect is responsible for adding, removing, and updating the widget.\n // We need to support scenarios where the widget is remounted quickly, like in\n // Strict Mode, so that we don't lose its state, and therefore that we don't\n // break routing.\n useIsomorphicLayoutEffect(function () {\n var previousWidget = prevWidgetRef.current;\n\n // Scenario 1: the widget is added for the first time.\n if (!cleanupTimerRef.current) {\n if (!shouldAddWidgetEarly) {\n parentIndex.addWidgets([widget]);\n }\n }\n // Scenario 2: the widget is rerendered or updated.\n else {\n // We cancel the original effect cleanup because it may not be necessary if\n // props haven't changed. (We manually call it if it is below.)\n clearTimeout(cleanupTimerRef.current);\n\n // Warning: if an unstable function prop is provided, `dequal` is not able\n // to keep its reference and therefore will consider that props did change.\n // This could unsollicitely remove/add the widget, therefore forget its state,\n // and could be a source of confusion.\n // If users face this issue, we should advise them to provide stable function\n // references.\n var arePropsEqual = dequal(props, prevPropsRef.current);\n\n // If props did change, then we execute the cleanup function instantly\n // and then add the widget back. This lets us add the widget without\n // waiting for the scheduled cleanup function to finish (that we canceled\n // above).\n if (!arePropsEqual) {\n parentIndex.removeWidgets([previousWidget]);\n parentIndex.addWidgets([widget]);\n }\n }\n return function () {\n // We don't remove the widget right away, but rather schedule it so that\n // we're able to cancel it in the next effect.\n cleanupTimerRef.current = setTimeout(function () {\n search._schedule(function () {\n if (search._preventWidgetCleanup) return;\n parentIndex.removeWidgets([previousWidget]);\n });\n });\n };\n }, [parentIndex, widget, shouldAddWidgetEarly, search, props]);\n if (shouldAddWidgetEarly) {\n parentIndex.addWidgets([widget]);\n }\n}","export function cx() {\n for (var _len = arguments.length, classNames = new Array(_len), _key = 0; _key < _len; _key++) {\n classNames[_key] = arguments[_key];\n }\n return classNames.filter(Boolean).join(' ');\n}","var _excluded = [\"formRef\", \"inputRef\", \"isSearchStalled\", \"onChange\", \"onReset\", \"onSubmit\", \"placeholder\", \"value\", \"autoFocus\", \"resetIconComponent\", \"submitIconComponent\", \"loadingIconComponent\", \"classNames\", \"translations\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport { cx } from \"./lib/cx.js\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.804 29.01c-2.832 2.34-6.465 3.746-10.426 3.746C7.333 32.756 0 25.424 0 16.378 0 7.333 7.333 0 16.378 0c9.046 0 16.378 7.333 16.378 16.378 0 3.96-1.406 7.594-3.746 10.426l10.534 10.534c.607.607.61 1.59-.004 2.202-.61.61-1.597.61-2.202.004L26.804 29.01zm-10.426.627c7.323 0 13.26-5.936 13.26-13.26 0-7.32-5.937-13.257-13.26-13.257C9.056 3.12 3.12 9.056 3.12 16.378c0 7.323 5.936 13.26 13.258 13.26z\"\n});\nfunction DefaultSubmitIcon(_ref) {\n var classNames = _ref.classNames;\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: cx('ais-SearchBox-submitIcon', classNames.submitIcon),\n width: \"10\",\n height: \"10\",\n viewBox: \"0 0 40 40\",\n \"aria-hidden\": \"true\"\n }, _ref2);\n}\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z\"\n});\nfunction DefaultResetIcon(_ref3) {\n var classNames = _ref3.classNames;\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: cx('ais-SearchBox-resetIcon', classNames.resetIcon),\n viewBox: \"0 0 20 20\",\n width: \"10\",\n height: \"10\",\n \"aria-hidden\": \"true\"\n }, _ref4);\n}\nvar _ref6 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n strokeOpacity: \".5\",\n cx: \"18\",\n cy: \"18\",\n r: \"18\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 18c0-9.94-8.06-18-18-18\"\n}, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"1s\",\n repeatCount: \"indefinite\"\n}))));\nfunction DefaultLoadingIcon(_ref5) {\n var classNames = _ref5.classNames;\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 38 38\",\n stroke: \"#444\",\n className: cx('ais-SearchBox-loadingIcon', classNames.loadingIcon),\n \"aria-hidden\": \"true\"\n }, _ref6);\n}\nexport function SearchBox(_ref7) {\n var formRef = _ref7.formRef,\n inputRef = _ref7.inputRef,\n isSearchStalled = _ref7.isSearchStalled,\n onChange = _ref7.onChange,\n onReset = _ref7.onReset,\n onSubmit = _ref7.onSubmit,\n placeholder = _ref7.placeholder,\n value = _ref7.value,\n autoFocus = _ref7.autoFocus,\n _ref7$resetIconCompon = _ref7.resetIconComponent,\n ResetIcon = _ref7$resetIconCompon === void 0 ? DefaultResetIcon : _ref7$resetIconCompon,\n _ref7$submitIconCompo = _ref7.submitIconComponent,\n SubmitIcon = _ref7$submitIconCompo === void 0 ? DefaultSubmitIcon : _ref7$submitIconCompo,\n _ref7$loadingIconComp = _ref7.loadingIconComponent,\n LoadingIcon = _ref7$loadingIconComp === void 0 ? DefaultLoadingIcon : _ref7$loadingIconComp,\n _ref7$classNames = _ref7.classNames,\n classNames = _ref7$classNames === void 0 ? {} : _ref7$classNames,\n translations = _ref7.translations,\n props = _objectWithoutProperties(_ref7, _excluded);\n function handleSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n if (onSubmit) {\n onSubmit(event);\n }\n if (inputRef.current) {\n inputRef.current.blur();\n }\n }\n function handleReset(event) {\n event.preventDefault();\n event.stopPropagation();\n onReset(event);\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: cx('ais-SearchBox', classNames.root, props.className)\n }), /*#__PURE__*/React.createElement(\"form\", {\n ref: formRef,\n action: \"\",\n className: cx('ais-SearchBox-form', classNames.form),\n noValidate: true,\n onSubmit: handleSubmit,\n onReset: handleReset\n }, /*#__PURE__*/React.createElement(\"input\", {\n ref: inputRef,\n className: cx('ais-SearchBox-input', classNames.input),\n autoComplete: \"off\",\n autoCorrect: \"off\",\n autoCapitalize: \"off\",\n placeholder: placeholder,\n spellCheck: false,\n maxLength: 512,\n type: \"search\",\n value: value,\n onChange: onChange,\n autoFocus: autoFocus\n }), /*#__PURE__*/React.createElement(\"button\", {\n className: cx('ais-SearchBox-submit', classNames.submit),\n type: \"submit\",\n title: translations.submitButtonTitle\n }, /*#__PURE__*/React.createElement(SubmitIcon, {\n classNames: classNames\n })), /*#__PURE__*/React.createElement(\"button\", {\n className: cx('ais-SearchBox-reset', classNames.reset),\n type: \"reset\",\n title: translations.resetButtonTitle,\n hidden: value.length === 0 || isSearchStalled\n }, /*#__PURE__*/React.createElement(ResetIcon, {\n classNames: classNames\n })), /*#__PURE__*/React.createElement(\"span\", {\n className: cx('ais-SearchBox-loadingIndicator', classNames.loadingIndicator)\n // @ts-ignore (this error is due to conflict with @algolia/ui-components-highlight-vdom, which declares \"too global\" type for span in case there's no @types/react or preact)\n ,\n hidden: !isSearchStalled\n }, /*#__PURE__*/React.createElement(LoadingIcon, {\n classNames: classNames\n }))));\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"queryHook\", \"searchAsYouType\", \"translations\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useRef, useState } from 'react';\nimport { useSearchBox } from 'react-instantsearch-hooks';\nimport { SearchBox as SearchBoxUiComponent } from \"../ui/SearchBox.js\";\nexport function SearchBox(_ref) {\n var queryHook = _ref.queryHook,\n _ref$searchAsYouType = _ref.searchAsYouType,\n searchAsYouType = _ref$searchAsYouType === void 0 ? true : _ref$searchAsYouType,\n translations = _ref.translations,\n props = _objectWithoutProperties(_ref, _excluded);\n var _useSearchBox = useSearchBox({\n queryHook: queryHook\n }, {\n $$widgetType: 'ais.searchBox'\n }),\n query = _useSearchBox.query,\n refine = _useSearchBox.refine,\n isSearchStalled = _useSearchBox.isSearchStalled;\n var _useState = useState(query),\n _useState2 = _slicedToArray(_useState, 2),\n inputValue = _useState2[0],\n setInputValue = _useState2[1];\n var inputRef = useRef(null);\n function setQuery(newQuery) {\n setInputValue(newQuery);\n if (searchAsYouType) {\n refine(newQuery);\n }\n }\n function onReset() {\n setQuery('');\n if (!searchAsYouType) {\n refine('');\n }\n }\n function onChange(event) {\n setQuery(event.currentTarget.value);\n }\n function onSubmit(event) {\n if (!searchAsYouType) {\n refine(inputValue);\n }\n if (props.onSubmit) {\n props.onSubmit(event);\n }\n }\n\n // Track when the InstantSearch query changes to synchronize it with\n // the React state.\n // We bypass the state update if the input is focused to avoid concurrent\n // updates when typing.\n if (query !== inputValue && document.activeElement !== inputRef.current) {\n setInputValue(query);\n }\n var uiProps = {\n inputRef: inputRef,\n isSearchStalled: isSearchStalled,\n onChange: onChange,\n onReset: onReset,\n onSubmit: onSubmit,\n value: inputValue,\n translations: _objectSpread({\n submitButtonTitle: 'Submit the search query',\n resetButtonTitle: 'Clear the search query'\n }, translations)\n };\n return /*#__PURE__*/React.createElement(SearchBoxUiComponent, _extends({}, props, uiProps));\n}","import connectSearchBox from \"instantsearch.js/es/connectors/search-box/connectSearchBox.js\";\nimport { useConnector } from \"../hooks/useConnector.js\";\nexport function useSearchBox(props, additionalWidgetProperties) {\n return useConnector(connectSearchBox, props, additionalWidgetProperties);\n}","/**\n * This implementation is taken from Lodash implementation.\n * See: https://github.com/lodash/lodash/blob/4.17.11-npm/escape.js\n */\n\n// Used to map characters to HTML entities.\nvar htmlEntities = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\n// Used to match HTML entities and HTML characters.\nvar regexUnescapedHtml = /[&<>\"']/g;\nvar regexHasUnescapedHtml = RegExp(regexUnescapedHtml.source);\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n */\nexport function escape(value) {\n return value && regexHasUnescapedHtml.test(value) ? value.replace(regexUnescapedHtml, function (character) {\n return htmlEntities[character];\n }) : value;\n}\n\n/**\n * This implementation is taken from Lodash implementation.\n * See: https://github.com/lodash/lodash/blob/4.17.11-npm/unescape.js\n */\n\n// Used to map HTML entities to characters.\nvar htmlCharacters = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n};\n\n// Used to match HTML entities and HTML characters.\nvar regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nvar regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\n/**\n * Converts the HTML entities \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * characters.\n */\nexport function unescape(value) {\n return value && regexHasEscapedHtml.test(value) ? value.replace(regexEscapedHtml, function (character) {\n return htmlCharacters[character];\n }) : value;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/**\n * This implementation is taken from Lodash implementation.\n * See: https://github.com/lodash/lodash/blob/master/isPlainObject.js\n */\n\nfunction getTag(value) {\n if (value === null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\nfunction isObjectLike(value) {\n return _typeof(value) === 'object' && value !== null;\n}\n\n/**\n * Checks if `value` is a plain object.\n *\n * A plain object is an object created by the `Object`\n * constructor or with a `[[Prototype]]` of `null`.\n */\nexport function isPlainObject(value) {\n if (!isObjectLike(value) || getTag(value) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n var proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError(\"Cannot destructure \" + obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { escape } from \"./escape-html.js\";\nimport { isPlainObject } from \"./isPlainObject.js\";\nexport var TAG_PLACEHOLDER = {\n highlightPreTag: '__ais-highlight__',\n highlightPostTag: '__/ais-highlight__'\n};\nexport var TAG_REPLACEMENT = {\n highlightPreTag: '',\n highlightPostTag: ''\n};\n\n// @MAJOR: in the future, this should only escape, not replace\nfunction replaceTagsAndEscape(value) {\n return escape(value).replace(new RegExp(TAG_PLACEHOLDER.highlightPreTag, 'g'), TAG_REPLACEMENT.highlightPreTag).replace(new RegExp(TAG_PLACEHOLDER.highlightPostTag, 'g'), TAG_REPLACEMENT.highlightPostTag);\n}\nfunction recursiveEscape(input) {\n if (isPlainObject(input) && typeof input.value !== 'string') {\n return Object.keys(input).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, recursiveEscape(input[key])));\n }, {});\n }\n if (Array.isArray(input)) {\n return input.map(recursiveEscape);\n }\n return _objectSpread(_objectSpread({}, input), {}, {\n value: replaceTagsAndEscape(input.value)\n });\n}\nexport function escapeHits(hits) {\n if (hits.__escaped === undefined) {\n // We don't override the value on hit because it will mutate the raw results\n // instead we make a shallow copy and we assign the escaped values on it.\n hits = hits.map(function (_ref) {\n var hit = _extends({}, (_objectDestructuringEmpty(_ref), _ref));\n if (hit._highlightResult) {\n hit._highlightResult = recursiveEscape(hit._highlightResult);\n }\n if (hit._snippetResult) {\n hit._snippetResult = recursiveEscape(hit._snippetResult);\n }\n return hit;\n });\n hits.__escaped = true;\n }\n return hits;\n}\nexport function escapeFacets(facetHits) {\n return facetHits.map(function (h) {\n return _objectSpread(_objectSpread({}, h), {}, {\n highlighted: replaceTagsAndEscape(h.highlighted)\n });\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { isFacetRefined } from \"./isFacetRefined.js\";\nexport function createSendEventForFacet(_ref) {\n var instantSearchInstance = _ref.instantSearchInstance,\n helper = _ref.helper,\n attr = _ref.attribute,\n widgetType = _ref.widgetType;\n var sendEventForFacet = function sendEventForFacet() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var facetValue = args[1],\n _args$ = args[2],\n eventName = _args$ === void 0 ? 'Filter Applied' : _args$;\n var _args$0$split = args[0].split(':'),\n _args$0$split2 = _slicedToArray(_args$0$split, 2),\n eventType = _args$0$split2[0],\n eventModifier = _args$0$split2[1];\n var attribute = typeof attr === 'string' ? attr : attr(facetValue);\n if (args.length === 1 && _typeof(args[0]) === 'object') {\n instantSearchInstance.sendEventToInsights(args[0]);\n } else if (eventType === 'click' && (args.length === 2 || args.length === 3)) {\n if (!isFacetRefined(helper, attribute, facetValue)) {\n // send event only when the facet is being checked \"ON\"\n instantSearchInstance.sendEventToInsights({\n insightsMethod: 'clickedFilters',\n widgetType: widgetType,\n eventType: eventType,\n eventModifier: eventModifier,\n payload: {\n eventName: eventName,\n index: helper.getIndex(),\n filters: [\"\".concat(attribute, \":\").concat(facetValue)]\n },\n attribute: attribute\n });\n }\n } else if (process.env.NODE_ENV === 'development') {\n throw new Error(\"You need to pass two arguments like:\\n sendEvent('click', facetValue);\\n\\nIf you want to send a custom payload, you can pass one object: sendEvent(customPayload);\\n\");\n }\n };\n return sendEventForFacet;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"name\", \"escapedValue\"],\n _excluded2 = [\"escapedValue\", \"value\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { escapeFacets, TAG_PLACEHOLDER, TAG_REPLACEMENT, checkRendering, createDocumentationMessageGenerator, createSendEventForFacet, noop, warning } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'refinement-list',\n connector: true\n});\nvar DEFAULT_SORT = ['isRefined', 'count:desc', 'name:asc'];\n/**\n * **RefinementList** connector provides the logic to build a custom widget that\n * will let the user filter the results based on the values of a specific facet.\n *\n * **Requirement:** the attribute passed as `attribute` must be present in\n * attributesForFaceting of the searched index.\n *\n * This connector provides:\n * - a `refine()` function to select an item.\n * - a `toggleShowMore()` function to display more or less items\n * - a `searchForItems()` function to search within the items.\n */\nvar connectRefinementList = function connectRefinementList(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n attribute = _ref.attribute,\n _ref$operator = _ref.operator,\n operator = _ref$operator === void 0 ? 'or' : _ref$operator,\n _ref$limit = _ref.limit,\n limit = _ref$limit === void 0 ? 10 : _ref$limit,\n _ref$showMore = _ref.showMore,\n showMore = _ref$showMore === void 0 ? false : _ref$showMore,\n _ref$showMoreLimit = _ref.showMoreLimit,\n showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,\n _ref$escapeFacetValue = _ref.escapeFacetValues,\n escapeFacetValues = _ref$escapeFacetValue === void 0 ? true : _ref$escapeFacetValue,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems;\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n if (!/^(and|or)$/.test(operator)) {\n throw new Error(withUsage(\"The `operator` must one of: `\\\"and\\\"`, `\\\"or\\\"` (got \\\"\".concat(operator, \"\\\").\")));\n }\n if (showMore === true && showMoreLimit <= limit) {\n throw new Error(withUsage('`showMoreLimit` should be greater than `limit`.'));\n }\n var formatItems = function formatItems(_ref2) {\n var label = _ref2.name,\n value = _ref2.escapedValue,\n item = _objectWithoutProperties(_ref2, _excluded);\n return _objectSpread(_objectSpread({}, item), {}, {\n value: value,\n label: label,\n highlighted: label\n });\n };\n var lastResultsFromMainSearch;\n var lastItemsFromMainSearch = [];\n var hasExhaustiveItems = true;\n var triggerRefine;\n var sendEvent;\n var isShowingMore = false;\n // Provide the same function to the `renderFn` so that way the user\n // has to only bind it once when `isFirstRendering` for instance\n var toggleShowMore = function toggleShowMore() {};\n function cachedToggleShowMore() {\n toggleShowMore();\n }\n function createToggleShowMore(renderOptions, widget) {\n return function () {\n isShowingMore = !isShowingMore;\n widget.render(renderOptions);\n };\n }\n function getLimit() {\n return isShowingMore ? showMoreLimit : limit;\n }\n var searchForFacetValues = function searchForFacetValues() {\n return function () {};\n };\n var createSearchForFacetValues = function createSearchForFacetValues(helper, widget) {\n return function (renderOptions) {\n return function (query) {\n var instantSearchInstance = renderOptions.instantSearchInstance,\n searchResults = renderOptions.results;\n if (query === '' && lastItemsFromMainSearch) {\n // render with previous data from the helper.\n renderFn(_objectSpread(_objectSpread({}, widget.getWidgetRenderState(_objectSpread(_objectSpread({}, renderOptions), {}, {\n results: lastResultsFromMainSearch\n }))), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n } else {\n var tags = {\n highlightPreTag: escapeFacetValues ? TAG_PLACEHOLDER.highlightPreTag : TAG_REPLACEMENT.highlightPreTag,\n highlightPostTag: escapeFacetValues ? TAG_PLACEHOLDER.highlightPostTag : TAG_REPLACEMENT.highlightPostTag\n };\n helper.searchForFacetValues(attribute, query,\n // We cap the `maxFacetHits` value to 100 because the Algolia API\n // doesn't support a greater number.\n // See https://www.algolia.com/doc/api-reference/api-parameters/maxFacetHits/\n Math.min(getLimit(), 100), tags).then(function (results) {\n var facetValues = escapeFacetValues ? escapeFacets(results.facetHits) : results.facetHits;\n var normalizedFacetValues = transformItems(facetValues.map(function (_ref3) {\n var escapedValue = _ref3.escapedValue,\n value = _ref3.value,\n item = _objectWithoutProperties(_ref3, _excluded2);\n return _objectSpread(_objectSpread({}, item), {}, {\n value: escapedValue,\n label: value\n });\n }), {\n results: searchResults\n });\n renderFn(_objectSpread(_objectSpread({}, widget.getWidgetRenderState(_objectSpread(_objectSpread({}, renderOptions), {}, {\n results: lastResultsFromMainSearch\n }))), {}, {\n items: normalizedFacetValues,\n canToggleShowMore: false,\n canRefine: true,\n isFromSearch: true,\n instantSearchInstance: instantSearchInstance\n }), false);\n });\n }\n };\n };\n };\n return {\n $$type: 'ais.refinementList',\n init: function init(initOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: initOptions.instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: renderOptions.instantSearchInstance\n }), false);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n refinementList: _objectSpread(_objectSpread({}, renderState.refinementList), {}, _defineProperty({}, attribute, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(renderOptions) {\n var _this = this;\n var results = renderOptions.results,\n state = renderOptions.state,\n _createURL = renderOptions.createURL,\n instantSearchInstance = renderOptions.instantSearchInstance,\n helper = renderOptions.helper;\n var items = [];\n var facetValues = [];\n if (!sendEvent || !triggerRefine || !searchForFacetValues) {\n sendEvent = createSendEventForFacet({\n instantSearchInstance: instantSearchInstance,\n helper: helper,\n attribute: attribute,\n widgetType: this.$$type\n });\n triggerRefine = function triggerRefine(facetValue) {\n sendEvent('click:internal', facetValue);\n helper.toggleFacetRefinement(attribute, facetValue).search();\n };\n searchForFacetValues = createSearchForFacetValues(helper, this);\n }\n if (results) {\n var values = results.getFacetValues(attribute, {\n sortBy: sortBy,\n facetOrdering: sortBy === DEFAULT_SORT\n });\n facetValues = values && Array.isArray(values) ? values : [];\n items = transformItems(facetValues.slice(0, getLimit()).map(formatItems), {\n results: results\n });\n var maxValuesPerFacetConfig = state.maxValuesPerFacet;\n var currentLimit = getLimit();\n // If the limit is the max number of facet retrieved it is impossible to know\n // if the facets are exhaustive. The only moment we are sure it is exhaustive\n // is when it is strictly under the number requested unless we know that another\n // widget has requested more values (maxValuesPerFacet > getLimit()).\n // Because this is used for making the search of facets unable or not, it is important\n // to be conservative here.\n hasExhaustiveItems = maxValuesPerFacetConfig > currentLimit ? facetValues.length <= currentLimit : facetValues.length < currentLimit;\n lastResultsFromMainSearch = results;\n lastItemsFromMainSearch = items;\n if (renderOptions.results) {\n toggleShowMore = createToggleShowMore(renderOptions, this);\n }\n }\n\n // Do not mistake searchForFacetValues and searchFacetValues which is the actual search\n // function\n var searchFacetValues = searchForFacetValues && searchForFacetValues(renderOptions);\n var canShowLess = isShowingMore && lastItemsFromMainSearch.length > limit;\n var canShowMore = showMore && !hasExhaustiveItems;\n var canToggleShowMore = canShowLess || canShowMore;\n return {\n createURL: function createURL(facetValue) {\n return _createURL(function (uiState) {\n return _this.getWidgetUiState(uiState, {\n searchParameters: state.resetPage().toggleFacetRefinement(attribute, facetValue),\n helper: helper\n });\n });\n },\n items: items,\n refine: triggerRefine,\n searchForItems: searchFacetValues,\n isFromSearch: false,\n canRefine: items.length > 0,\n widgetParams: widgetParams,\n isShowingMore: isShowingMore,\n canToggleShowMore: canToggleShowMore,\n toggleShowMore: cachedToggleShowMore,\n sendEvent: sendEvent,\n hasExhaustiveItems: hasExhaustiveItems\n };\n },\n dispose: function dispose(_ref4) {\n var state = _ref4.state;\n unmountFn();\n var withoutMaxValuesPerFacet = state.setQueryParameter('maxValuesPerFacet', undefined);\n if (operator === 'and') {\n return withoutMaxValuesPerFacet.removeFacet(attribute);\n }\n return withoutMaxValuesPerFacet.removeDisjunctiveFacet(attribute);\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n var values = operator === 'or' ? searchParameters.getDisjunctiveRefinements(attribute) : searchParameters.getConjunctiveRefinements(attribute);\n if (!values.length) {\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n refinementList: _objectSpread(_objectSpread({}, uiState.refinementList), {}, _defineProperty({}, attribute, values))\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n var isDisjunctive = operator === 'or';\n if (searchParameters.isHierarchicalFacet(attribute)) {\n process.env.NODE_ENV === 'development' ? warning(false, \"RefinementList: Attribute \\\"\".concat(attribute, \"\\\" is already used by another widget applying hierarchical faceting.\\nAs this is not supported, please make sure to remove this other widget or this RefinementList widget will not work at all.\")) : void 0;\n return searchParameters;\n }\n if (isDisjunctive && searchParameters.isConjunctiveFacet(attribute) || !isDisjunctive && searchParameters.isDisjunctiveFacet(attribute)) {\n process.env.NODE_ENV === 'development' ? warning(false, \"RefinementList: Attribute \\\"\".concat(attribute, \"\\\" is used by another refinement list with a different operator.\\nAs this is not supported, please make sure to only use this attribute with one of the two operators.\")) : void 0;\n return searchParameters;\n }\n var values = uiState.refinementList && uiState.refinementList[attribute];\n var withoutRefinements = searchParameters.clearRefinements(attribute);\n var withFacetConfiguration = isDisjunctive ? withoutRefinements.addDisjunctiveFacet(attribute) : withoutRefinements.addFacet(attribute);\n var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;\n var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);\n var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);\n if (!values) {\n var key = isDisjunctive ? 'disjunctiveFacetsRefinements' : 'facetsRefinements';\n return withMaxValuesPerFacet.setQueryParameters(_defineProperty({}, key, _objectSpread(_objectSpread({}, withMaxValuesPerFacet[key]), {}, _defineProperty({}, attribute, []))));\n }\n return values.reduce(function (parameters, value) {\n return isDisjunctive ? parameters.addDisjunctiveFacetRefinement(attribute, value) : parameters.addFacetRefinement(attribute, value);\n }, withMaxValuesPerFacet);\n }\n };\n };\n};\nexport default connectRefinementList;","export function isFacetRefined(helper, facet, value) {\n if (helper.state.isHierarchicalFacet(facet)) {\n return helper.state.isHierarchicalFacetRefined(facet, value);\n } else if (helper.state.isConjunctiveFacet(facet)) {\n return helper.state.isFacetRefined(facet, value);\n } else {\n return helper.state.isDisjunctiveFacetRefined(facet, value);\n }\n}","import connectRefinementList from \"instantsearch.js/es/connectors/refinement-list/connectRefinementList.js\";\nimport { useConnector } from \"../hooks/useConnector.js\";\nexport function useRefinementList(props, additionalWidgetProperties) {\n return useConnector(connectRefinementList, props, additionalWidgetProperties);\n}","import { TAG_REPLACEMENT } from \"./escape-highlight.js\";\nexport function getHighlightedParts(highlightedValue) {\n // @MAJOR: this should use TAG_PLACEHOLDER\n var highlightPostTag = TAG_REPLACEMENT.highlightPostTag,\n highlightPreTag = TAG_REPLACEMENT.highlightPreTag;\n var splitByPreTag = highlightedValue.split(highlightPreTag);\n var firstValue = splitByPreTag.shift();\n var elements = !firstValue ? [] : [{\n value: firstValue,\n isHighlighted: false\n }];\n splitByPreTag.forEach(function (split) {\n var splitByPostTag = split.split(highlightPostTag);\n elements.push({\n value: splitByPostTag[0],\n isHighlighted: true\n });\n if (splitByPostTag[1] !== '') {\n elements.push({\n value: splitByPostTag[1],\n isHighlighted: false\n });\n }\n });\n return elements;\n}","var _excluded = [\"parts\", \"highlightedTagName\", \"nonHighlightedTagName\", \"separator\", \"className\", \"classNames\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { Fragment } from 'react';\nimport { cx } from \"./lib/cx.js\";\nfunction HighlightPart(_ref) {\n var classNames = _ref.classNames,\n children = _ref.children,\n highlightedTagName = _ref.highlightedTagName,\n isHighlighted = _ref.isHighlighted,\n nonHighlightedTagName = _ref.nonHighlightedTagName;\n var TagName = isHighlighted ? highlightedTagName : nonHighlightedTagName;\n return /*#__PURE__*/React.createElement(TagName, {\n className: isHighlighted ? classNames.highlighted : classNames.nonHighlighted\n }, children);\n}\nexport function InternalHighlight(_ref2) {\n var parts = _ref2.parts,\n _ref2$highlightedTagN = _ref2.highlightedTagName,\n highlightedTagName = _ref2$highlightedTagN === void 0 ? 'mark' : _ref2$highlightedTagN,\n _ref2$nonHighlightedT = _ref2.nonHighlightedTagName,\n nonHighlightedTagName = _ref2$nonHighlightedT === void 0 ? 'span' : _ref2$nonHighlightedT,\n _ref2$separator = _ref2.separator,\n separator = _ref2$separator === void 0 ? ', ' : _ref2$separator,\n className = _ref2.className,\n classNames = _ref2.classNames,\n props = _objectWithoutProperties(_ref2, _excluded);\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, {\n className: cx(classNames.root, className)\n }), parts.map(function (part, partIndex) {\n var isLastPart = partIndex === parts.length - 1;\n return /*#__PURE__*/React.createElement(Fragment, {\n key: partIndex\n }, part.map(function (subPart, subPartIndex) {\n return /*#__PURE__*/React.createElement(HighlightPart, {\n key: subPartIndex,\n classNames: classNames,\n highlightedTagName: highlightedTagName,\n nonHighlightedTagName: nonHighlightedTagName,\n isHighlighted: subPart.isHighlighted\n }, subPart.value);\n }), !isLastPart && /*#__PURE__*/React.createElement(\"span\", {\n className: classNames.separator\n }, separator));\n }));\n}","var _excluded = [\"classNames\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport { InternalHighlight } from \"./InternalHighlight.js\";\nimport { cx } from \"./lib/cx.js\";\nexport function Highlight(_ref) {\n var _ref$classNames = _ref.classNames,\n classNames = _ref$classNames === void 0 ? {} : _ref$classNames,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(InternalHighlight, _extends({\n classNames: {\n root: cx('ais-Highlight', classNames.root),\n highlighted: cx('ais-Highlight-highlighted', classNames.highlighted),\n nonHighlighted: cx('ais-Highlight-nonHighlighted', classNames.nonHighlighted),\n separator: cx('ais-Highlight-separator', classNames.separator)\n }\n }, props));\n}","var _excluded = [\"isShowingMore\", \"translations\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nexport function ShowMoreButton(_ref) {\n var isShowingMore = _ref.isShowingMore,\n translations = _ref.translations,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"button\", props, translations.showMoreButtonText({\n isShowingMore: isShowingMore\n }));\n}","var _excluded = [\"canRefine\", \"items\", \"onRefine\", \"query\", \"searchBox\", \"noResults\", \"showMore\", \"canToggleShowMore\", \"onToggleShowMore\", \"isShowingMore\", \"className\", \"classNames\", \"translations\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { getHighlightedParts, unescape } from \"instantsearch.js/es/lib/utils/index.js\";\nimport React from 'react';\nimport { Highlight } from \"./Highlight.js\";\nimport { cx } from \"./lib/cx.js\";\nimport { ShowMoreButton } from \"./ShowMoreButton.js\";\nexport function RefinementList(_ref) {\n var canRefine = _ref.canRefine,\n items = _ref.items,\n onRefine = _ref.onRefine,\n query = _ref.query,\n searchBox = _ref.searchBox,\n noResults = _ref.noResults,\n showMore = _ref.showMore,\n canToggleShowMore = _ref.canToggleShowMore,\n onToggleShowMore = _ref.onToggleShowMore,\n isShowingMore = _ref.isShowingMore,\n className = _ref.className,\n _ref$classNames = _ref.classNames,\n classNames = _ref$classNames === void 0 ? {} : _ref$classNames,\n translations = _ref.translations,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, props, {\n className: cx('ais-RefinementList', classNames.root, !canRefine && cx('ais-RefinementList--noRefinement', classNames.noRefinementRoot), className)\n }), searchBox && /*#__PURE__*/React.createElement(\"div\", {\n className: cx('ais-RefinementList-searchBox', classNames.searchBox)\n }, searchBox), noResults ? /*#__PURE__*/React.createElement(\"div\", {\n className: cx('ais-RefinementList-noResults', classNames.noResults)\n }, noResults) : /*#__PURE__*/React.createElement(\"ul\", {\n className: cx('ais-RefinementList-list', classNames.list)\n }, items.map(function (item) {\n return /*#__PURE__*/React.createElement(\"li\", {\n key: item.value,\n className: cx('ais-RefinementList-item', classNames.item, item.isRefined && cx('ais-RefinementList-item--selected', classNames.selectedItem))\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: cx('ais-RefinementList-label', classNames.label)\n }, /*#__PURE__*/React.createElement(\"input\", {\n checked: item.isRefined,\n className: cx('ais-RefinementList-checkbox', classNames.checkbox),\n type: \"checkbox\",\n value: item.value,\n onChange: function onChange() {\n onRefine(item);\n }\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: cx('ais-RefinementList-labelText', classNames.labelText)\n }, query.length > 0 ? /*#__PURE__*/React.createElement(Highlight, {\n parts: [getHighlightedParts(unescape(item.highlighted || ''))]\n }) : item.label), /*#__PURE__*/React.createElement(\"span\", {\n className: cx('ais-RefinementList-count', classNames.count)\n }, item.count)));\n })), showMore && /*#__PURE__*/React.createElement(ShowMoreButton, {\n className: cx('ais-RefinementList-showMore', classNames.showMore, !canToggleShowMore && cx('ais-RefinementList-showMore--disabled', classNames.disabledShowMore)),\n disabled: !canToggleShowMore,\n onClick: onToggleShowMore,\n isShowingMore: isShowingMore,\n translations: translations\n }));\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"searchable\", \"searchablePlaceholder\", \"attribute\", \"operator\", \"limit\", \"showMore\", \"showMoreLimit\", \"sortBy\", \"escapeFacetValues\", \"transformItems\", \"translations\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useRef, useState } from 'react';\nimport { useRefinementList } from 'react-instantsearch-hooks';\nimport { RefinementList as RefinementListUiComponent } from \"../ui/RefinementList.js\";\nimport { SearchBox as SearchBoxUiComponent } from \"../ui/SearchBox.js\";\nexport function RefinementList(_ref) {\n var searchable = _ref.searchable,\n searchablePlaceholder = _ref.searchablePlaceholder,\n attribute = _ref.attribute,\n operator = _ref.operator,\n limit = _ref.limit,\n showMore = _ref.showMore,\n showMoreLimit = _ref.showMoreLimit,\n sortBy = _ref.sortBy,\n escapeFacetValues = _ref.escapeFacetValues,\n transformItems = _ref.transformItems,\n translations = _ref.translations,\n props = _objectWithoutProperties(_ref, _excluded);\n var _useRefinementList = useRefinementList({\n attribute: attribute,\n operator: operator,\n limit: limit,\n showMore: showMore,\n showMoreLimit: showMoreLimit,\n sortBy: sortBy,\n escapeFacetValues: escapeFacetValues,\n transformItems: transformItems\n }, {\n $$widgetType: 'ais.refinementList'\n }),\n canRefine = _useRefinementList.canRefine,\n canToggleShowMore = _useRefinementList.canToggleShowMore,\n isFromSearch = _useRefinementList.isFromSearch,\n isShowingMore = _useRefinementList.isShowingMore,\n items = _useRefinementList.items,\n refine = _useRefinementList.refine,\n searchForItems = _useRefinementList.searchForItems,\n toggleShowMore = _useRefinementList.toggleShowMore;\n var _useState = useState(''),\n _useState2 = _slicedToArray(_useState, 2),\n inputValue = _useState2[0],\n setInputValue = _useState2[1];\n var inputRef = useRef(null);\n function setQuery(newQuery) {\n setInputValue(newQuery);\n searchForItems(newQuery);\n }\n function onRefine(item) {\n refine(item.value);\n setQuery('');\n }\n function onChange(event) {\n setQuery(event.currentTarget.value);\n }\n function onReset() {\n setQuery('');\n }\n function onSubmit() {\n if (items.length > 0) {\n refine(items[0].value);\n setQuery('');\n }\n }\n var mergedTranslations = _objectSpread({\n resetButtonTitle: 'Clear the search query',\n submitButtonTitle: 'Submit the search query',\n noResultsText: 'No results.',\n showMoreButtonText: function showMoreButtonText(options) {\n return options.isShowingMore ? 'Show less' : 'Show more';\n }\n }, translations);\n var uiProps = {\n items: items,\n canRefine: canRefine,\n onRefine: onRefine,\n query: inputValue,\n searchBox: searchable && /*#__PURE__*/React.createElement(SearchBoxUiComponent, {\n inputRef: inputRef,\n placeholder: searchablePlaceholder,\n isSearchStalled: false,\n value: inputValue,\n onChange: onChange,\n onReset: onReset,\n onSubmit: onSubmit,\n translations: {\n submitButtonTitle: mergedTranslations.submitButtonTitle,\n resetButtonTitle: mergedTranslations.resetButtonTitle\n }\n }),\n noResults: searchable && isFromSearch && items.length === 0 && mergedTranslations.noResultsText,\n canToggleShowMore: canToggleShowMore,\n onToggleShowMore: toggleShowMore,\n isShowingMore: isShowingMore,\n translations: {\n showMoreButtonText: mergedTranslations.showMoreButtonText\n }\n };\n return /*#__PURE__*/React.createElement(RefinementListUiComponent, _extends({}, props, uiProps, {\n showMore: showMore\n }));\n}","import Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport Skeleton from \"@mui/material/Skeleton\";\nimport { useInstantSearch } from \"react-instantsearch-hooks-web\";\n\nconst NoResultsEventCard = () => {\n const { results } = useInstantSearch();\n\n const hasRefinements = results.getRefinements().length > 0;\n const description = hasRefinements\n ? \"Prova a rimuovere i filtri applicati.\"\n : \"Prova con altri termini di ricerca.\";\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 Oops!, we didn't find any events matching your search\n

\n

\n {description}\n

\n
\n );\n};\n\nconst NoResultsSideBar = () => {\n const numberOfSkeletons = 4;\n return (\n
\n {Array.from({ length: numberOfSkeletons }).map((_, index) => (\n \n \n {/* Avatar Skeleton */}\n \n\n {/* Text Skeletons */}\n
\n \n \n
\n
\n
\n ))}\n
\n );\n};\n\nexport { NoResultsEventCard, NoResultsSideBar };\n","import { useInstantSearch } from \"react-instantsearch-hooks-web\"; \n\nconst NoResultsBoundary = ({\n children,\n fallback,\n}: {\n children: any;\n fallback: any;\n}) => {\n const { results } = useInstantSearch();\n\n // The `__isArtificial` flag makes sure not to display the No Results message\n // when no hits have been returned.\n if (!results.__isArtificial && results.nbHits === 0) {\n return (\n <>\n {fallback}\n \n \n );\n }\n\n return children;\n};\n\nexport default NoResultsBoundary;","const IndexNotFound = () => {\n return (\n
\n \n \n \n \n \n \n \n {/* ... (other defs and filters for shadows and gradients) ... */}\n \n \n \n \n \n \n \n \n \n\n
\n

\n Oops!, something went wrong.\n

\n
\n
\n );\n};\n\nexport default IndexNotFound;\n","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n // @TODO avoid for..of because of the large polyfill\n // eslint-disable-next-line no-restricted-syntax\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export function serializePayload(payload) {\n return btoa(encodeURIComponent(JSON.stringify(payload)));\n}\nexport function deserializePayload(serialized) {\n return JSON.parse(decodeURIComponent(atob(serialized)));\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { serializePayload } from \"./serializer.js\";\nfunction chunk(arr) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n for (var i = 0; i < Math.ceil(arr.length / chunkSize); i++) {\n chunks.push(arr.slice(i * chunkSize, (i + 1) * chunkSize));\n }\n return chunks;\n}\nexport function _buildEventPayloadsForHits(_ref) {\n var index = _ref.index,\n widgetType = _ref.widgetType,\n methodName = _ref.methodName,\n args = _ref.args,\n instantSearchInstance = _ref.instantSearchInstance;\n // when there's only one argument, that means it's custom\n if (args.length === 1 && _typeof(args[0]) === 'object') {\n return [args[0]];\n }\n var _args$0$split = args[0].split(':'),\n _args$0$split2 = _slicedToArray(_args$0$split, 2),\n eventType = _args$0$split2[0],\n eventModifier = _args$0$split2[1];\n var hits = args[1];\n var eventName = args[2];\n if (!hits) {\n if (process.env.NODE_ENV === 'development') {\n throw new Error(\"You need to pass hit or hits as the second argument like:\\n \".concat(methodName, \"(eventType, hit);\\n \"));\n } else {\n return [];\n }\n }\n if ((eventType === 'click' || eventType === 'conversion') && !eventName) {\n if (process.env.NODE_ENV === 'development') {\n throw new Error(\"You need to pass eventName as the third argument for 'click' or 'conversion' events like:\\n \".concat(methodName, \"('click', hit, 'Product Purchased');\\n\\n To learn more about event naming: https://www.algolia.com/doc/guides/getting-insights-and-analytics/search-analytics/click-through-and-conversions/in-depth/clicks-conversions-best-practices/\\n \"));\n } else {\n return [];\n }\n }\n var hitsArray = Array.isArray(hits) ? hits : [hits];\n if (hitsArray.length === 0) {\n return [];\n }\n var queryID = hitsArray[0].__queryID;\n var hitsChunks = chunk(hitsArray);\n var objectIDsByChunk = hitsChunks.map(function (batch) {\n return batch.map(function (hit) {\n return hit.objectID;\n });\n });\n var positionsByChunk = hitsChunks.map(function (batch) {\n return batch.map(function (hit) {\n return hit.__position;\n });\n });\n if (eventType === 'view') {\n if (instantSearchInstance.status !== 'idle') {\n return [];\n }\n return hitsChunks.map(function (batch, i) {\n return {\n insightsMethod: 'viewedObjectIDs',\n widgetType: widgetType,\n eventType: eventType,\n payload: {\n eventName: eventName || 'Hits Viewed',\n index: index,\n objectIDs: objectIDsByChunk[i]\n },\n hits: batch,\n eventModifier: eventModifier\n };\n });\n } else if (eventType === 'click') {\n return hitsChunks.map(function (batch, i) {\n return {\n insightsMethod: 'clickedObjectIDsAfterSearch',\n widgetType: widgetType,\n eventType: eventType,\n payload: {\n eventName: eventName || 'Hit Clicked',\n index: index,\n queryID: queryID,\n objectIDs: objectIDsByChunk[i],\n positions: positionsByChunk[i]\n },\n hits: batch,\n eventModifier: eventModifier\n };\n });\n } else if (eventType === 'conversion') {\n return hitsChunks.map(function (batch, i) {\n return {\n insightsMethod: 'convertedObjectIDsAfterSearch',\n widgetType: widgetType,\n eventType: eventType,\n payload: {\n eventName: eventName || 'Hit Converted',\n index: index,\n queryID: queryID,\n objectIDs: objectIDsByChunk[i]\n },\n hits: batch,\n eventModifier: eventModifier\n };\n });\n } else if (process.env.NODE_ENV === 'development') {\n throw new Error(\"eventType(\\\"\".concat(eventType, \"\\\") is not supported.\\n If you want to send a custom payload, you can pass one object: \").concat(methodName, \"(customPayload);\\n \"));\n } else {\n return [];\n }\n}\nexport function createSendEventForHits(_ref2) {\n var instantSearchInstance = _ref2.instantSearchInstance,\n index = _ref2.index,\n widgetType = _ref2.widgetType;\n var sentEvents = {};\n var timer = undefined;\n var sendEventForHits = function sendEventForHits() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var payloads = _buildEventPayloadsForHits({\n widgetType: widgetType,\n index: index,\n methodName: 'sendEvent',\n args: args,\n instantSearchInstance: instantSearchInstance\n });\n payloads.forEach(function (payload) {\n if (payload.eventType === 'click' && payload.eventModifier === 'internal' && sentEvents[payload.eventType]) {\n return;\n }\n sentEvents[payload.eventType] = true;\n instantSearchInstance.sendEventToInsights(payload);\n });\n clearTimeout(timer);\n timer = setTimeout(function () {\n sentEvents = {};\n }, 0);\n };\n return sendEventForHits;\n}\nexport function createBindEventForHits(_ref3) {\n var index = _ref3.index,\n widgetType = _ref3.widgetType,\n instantSearchInstance = _ref3.instantSearchInstance;\n var bindEventForHits = function bindEventForHits() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var payloads = _buildEventPayloadsForHits({\n widgetType: widgetType,\n index: index,\n methodName: 'bindEvent',\n args: args,\n instantSearchInstance: instantSearchInstance\n });\n return payloads.length ? \"data-insights-event=\".concat(serializePayload(payloads)) : '';\n };\n return bindEventForHits;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nexport function addAbsolutePosition(hits, page, hitsPerPage) {\n return hits.map(function (hit, idx) {\n return _objectSpread(_objectSpread({}, hit), {}, {\n __position: hitsPerPage * page + idx + 1\n });\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nexport function addQueryID(hits, queryID) {\n if (!queryID) {\n return hits;\n }\n return hits.map(function (hit) {\n return _objectSpread(_objectSpread({}, hit), {}, {\n __queryID: queryID\n });\n });\n}","export function isIndexWidget(widget) {\n return widget.$$type === 'ais.index';\n}","import { isIndexWidget } from \"./isIndexWidget.js\";\n/**\n * Recurse over all child indices\n */\nexport function walkIndex(indexWidget, callback) {\n callback(indexWidget);\n indexWidget.getWidgets().forEach(function (widget) {\n if (isIndexWidget(widget)) {\n walkIndex(widget, callback);\n }\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"page\"],\n _excluded2 = [\"clickAnalytics\", \"userToken\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, isEqual, addAbsolutePosition, addQueryID, noop, createSendEventForHits, createBindEventForHits, walkIndex } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'infinite-hits',\n connector: true\n});\nfunction getStateWithoutPage(state) {\n var _ref = state || {},\n page = _ref.page,\n rest = _objectWithoutProperties(_ref, _excluded);\n return rest;\n}\nfunction normalizeState(state) {\n var _ref2 = state || {},\n clickAnalytics = _ref2.clickAnalytics,\n userToken = _ref2.userToken,\n rest = _objectWithoutProperties(_ref2, _excluded2);\n return rest;\n}\nfunction getInMemoryCache() {\n var cachedHits = null;\n var cachedState = null;\n return {\n read: function read(_ref3) {\n var state = _ref3.state;\n return isEqual(cachedState, getStateWithoutPage(state)) ? cachedHits : null;\n },\n write: function write(_ref4) {\n var state = _ref4.state,\n hits = _ref4.hits;\n cachedState = getStateWithoutPage(state);\n cachedHits = hits;\n }\n };\n}\nfunction extractHitsFromCachedHits(cachedHits) {\n return Object.keys(cachedHits).map(Number).sort(function (a, b) {\n return a - b;\n }).reduce(function (acc, page) {\n return acc.concat(cachedHits[page]);\n }, []);\n}\nvar connectInfiniteHits = function connectInfiniteHits(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n\n // @TODO: this should be a generic, but a Connector can not yet be generic itself\n\n return function (widgetParams) {\n var _ref5 = widgetParams || {},\n _ref5$escapeHTML = _ref5.escapeHTML,\n escapeHTML = _ref5$escapeHTML === void 0 ? true : _ref5$escapeHTML,\n _ref5$transformItems = _ref5.transformItems,\n transformItems = _ref5$transformItems === void 0 ? function (items) {\n return items;\n } : _ref5$transformItems,\n _ref5$cache = _ref5.cache,\n cache = _ref5$cache === void 0 ? getInMemoryCache() : _ref5$cache;\n var showPrevious;\n var showMore;\n var sendEvent;\n var bindEvent;\n var getFirstReceivedPage = function getFirstReceivedPage(state, cachedHits) {\n var _state$page = state.page,\n page = _state$page === void 0 ? 0 : _state$page;\n var pages = Object.keys(cachedHits).map(Number);\n if (pages.length === 0) {\n return page;\n } else {\n return Math.min.apply(Math, [page].concat(_toConsumableArray(pages)));\n }\n };\n var getLastReceivedPage = function getLastReceivedPage(state, cachedHits) {\n var _state$page2 = state.page,\n page = _state$page2 === void 0 ? 0 : _state$page2;\n var pages = Object.keys(cachedHits).map(Number);\n if (pages.length === 0) {\n return page;\n } else {\n return Math.max.apply(Math, [page].concat(_toConsumableArray(pages)));\n }\n };\n var getShowPrevious = function getShowPrevious(helper) {\n return function () {\n // Using the helper's `overrideStateWithoutTriggeringChangeEvent` method\n // avoid updating the browser URL when the user displays the previous page.\n helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {\n page: getFirstReceivedPage(helper.state, cache.read({\n state: normalizeState(helper.state)\n }) || {}) - 1\n })).searchWithoutTriggeringOnStateChange();\n };\n };\n var getShowMore = function getShowMore(helper) {\n return function () {\n helper.setPage(getLastReceivedPage(helper.state, cache.read({\n state: normalizeState(helper.state)\n }) || {}) + 1).search();\n };\n };\n return {\n $$type: 'ais.infiniteHits',\n init: function init(initOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: initOptions.instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n var widgetRenderState = this.getWidgetRenderState(renderOptions);\n renderFn(_objectSpread(_objectSpread({}, widgetRenderState), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n sendEvent('view:internal', widgetRenderState.currentPageHits);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n infiniteHits: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref6) {\n var results = _ref6.results,\n helper = _ref6.helper,\n parent = _ref6.parent,\n existingState = _ref6.state,\n instantSearchInstance = _ref6.instantSearchInstance;\n var isFirstPage;\n var currentPageHits = [];\n /**\n * We bail out of optimistic UI here, as the cache is based on search\n * parameters, and we don't want to invalidate the cache when the search\n * is loading.\n */\n var state = parent.getPreviousState() || existingState;\n var cachedHits = cache.read({\n state: normalizeState(state)\n }) || {};\n if (!results) {\n showPrevious = getShowPrevious(helper);\n showMore = getShowMore(helper);\n sendEvent = createSendEventForHits({\n instantSearchInstance: instantSearchInstance,\n index: helper.getIndex(),\n widgetType: this.$$type\n });\n bindEvent = createBindEventForHits({\n index: helper.getIndex(),\n widgetType: this.$$type,\n instantSearchInstance: instantSearchInstance\n });\n isFirstPage = state.page === undefined || getFirstReceivedPage(state, cachedHits) === 0;\n } else {\n var _state$disjunctiveFac, _state$hierarchicalFa;\n var _state$page3 = state.page,\n _page = _state$page3 === void 0 ? 0 : _state$page3;\n if (escapeHTML && results.hits.length > 0) {\n results.hits = escapeHits(results.hits);\n }\n var hitsWithAbsolutePosition = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);\n var hitsWithAbsolutePositionAndQueryID = addQueryID(hitsWithAbsolutePosition, results.queryID);\n var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {\n results: results\n });\n\n /*\n With dynamic widgets, facets are not included in the state before their relevant widgets are mounted. Until then, we need to bail out of writing this incomplete state representation in cache.\n */\n var hasDynamicWidgets = false;\n walkIndex(instantSearchInstance.mainIndex, function (indexWidget) {\n if (!hasDynamicWidgets && indexWidget.getWidgets().some(function (_ref7) {\n var $$type = _ref7.$$type;\n return $$type === 'ais.dynamicWidgets';\n })) {\n hasDynamicWidgets = true;\n }\n });\n var hasNoFacets = !((_state$disjunctiveFac = state.disjunctiveFacets) !== null && _state$disjunctiveFac !== void 0 && _state$disjunctiveFac.length) && !(state.facets || []).filter(function (f) {\n return f !== '*';\n }).length && !((_state$hierarchicalFa = state.hierarchicalFacets) !== null && _state$hierarchicalFa !== void 0 && _state$hierarchicalFa.length);\n if (cachedHits[_page] === undefined && !results.__isArtificial && instantSearchInstance.status === 'idle' && !(hasDynamicWidgets && hasNoFacets)) {\n cachedHits[_page] = transformedHits;\n cache.write({\n state: normalizeState(state),\n hits: cachedHits\n });\n }\n currentPageHits = transformedHits;\n isFirstPage = getFirstReceivedPage(state, cachedHits) === 0;\n }\n var hits = extractHitsFromCachedHits(cachedHits);\n var isLastPage = results ? results.nbPages <= getLastReceivedPage(state, cachedHits) + 1 : true;\n return {\n hits: hits,\n currentPageHits: currentPageHits,\n sendEvent: sendEvent,\n bindEvent: bindEvent,\n results: results,\n showPrevious: showPrevious,\n showMore: showMore,\n isFirstPage: isFirstPage,\n isLastPage: isLastPage,\n widgetParams: widgetParams\n };\n },\n dispose: function dispose(_ref8) {\n var state = _ref8.state;\n unmountFn();\n var stateWithoutPage = state.setQueryParameter('page', undefined);\n if (!escapeHTML) {\n return stateWithoutPage;\n }\n return stateWithoutPage.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));\n }, {}));\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref9) {\n var searchParameters = _ref9.searchParameters;\n var page = searchParameters.page || 0;\n if (!page) {\n // return without adding `page` to uiState\n // because we don't want `page=1` in the URL\n return uiState;\n }\n return _objectSpread(_objectSpread({}, uiState), {}, {\n // The page in the UI state is incremented by one\n // to expose the user value (not `0`).\n page: page + 1\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref10) {\n var uiState = _ref10.uiState;\n var widgetSearchParameters = searchParameters;\n if (escapeHTML) {\n widgetSearchParameters = searchParameters.setQueryParameters(TAG_PLACEHOLDER);\n }\n\n // The page in the search parameters is decremented by one\n // to get to the actual parameter value from the UI state.\n var page = uiState.page ? uiState.page - 1 : 0;\n return widgetSearchParameters.setQueryParameter('page', page);\n }\n };\n };\n};\nexport default connectInfiniteHits;","import connectInfiniteHits from \"instantsearch.js/es/connectors/infinite-hits/connectInfiniteHits.js\";\nimport { useConnector } from \"../hooks/useConnector.js\";\nexport function useInfiniteHits(props, additionalWidgetProperties) {\n return useConnector(connectInfiniteHits, props, additionalWidgetProperties);\n}","import { useState, useEffect } from 'react';\n\nfunction useScroll() {\n const [isBottom, setIsBottom] = useState(false);\n\n useEffect(() => {\n function handleScroll() {\n const currentScroll = window.pageYOffset;\n const maxScroll = document.documentElement.scrollHeight - document.documentElement.clientHeight;\n\n // Se l'utente ha raggiunto il fondo della pagina, imposta isBottom a true\n if (currentScroll >= maxScroll) {\n setIsBottom(true);\n } else {\n setIsBottom(false);\n }\n }\n\n // Aggiunge un event listener per lo scroll\n window.addEventListener('scroll', handleScroll);\n\n // Rimuove l'event listener al unmount\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, []);\n\n return isBottom;\n}\n\nexport default useScroll;","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-c39617d8.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-c39617d8.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.2\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","export function isUnitless(value) {\n return String(parseFloat(value)).length === String(value).length;\n}\n\n// Ported from Compass\n// https://github.com/Compass/compass/blob/master/core/stylesheets/compass/typography/_units.scss\n// Emulate the sass function \"unit\"\nexport function getUnit(input) {\n return String(input).match(/[\\d.\\-+]*\\s*(.*)/)[1] || '';\n}\n\n// Emulate the sass function \"unitless\"\nexport function toUnitless(length) {\n return parseFloat(length);\n}\n\n// Convert any CSS or value to any another.\n// From https://github.com/KyleAMathews/convert-css-length\nexport function convertLength(baseFontSize) {\n return (length, toUnit) => {\n const fromUnit = getUnit(length);\n\n // Optimize for cases where `from` and `to` units are accidentally the same.\n if (fromUnit === toUnit) {\n return length;\n }\n\n // Convert input length to pixels.\n let pxLength = toUnitless(length);\n if (fromUnit !== 'px') {\n if (fromUnit === 'em') {\n pxLength = toUnitless(length) * toUnitless(baseFontSize);\n } else if (fromUnit === 'rem') {\n pxLength = toUnitless(length) * toUnitless(baseFontSize);\n }\n }\n\n // Convert length in pixels to the output unit\n let outputLength = pxLength;\n if (toUnit !== 'px') {\n if (toUnit === 'em') {\n outputLength = pxLength / toUnitless(baseFontSize);\n } else if (toUnit === 'rem') {\n outputLength = pxLength / toUnitless(baseFontSize);\n } else {\n return length;\n }\n }\n return parseFloat(outputLength.toFixed(5)) + toUnit;\n };\n}\nexport function alignProperty({\n size,\n grid\n}) {\n const sizeBelow = size - size % grid;\n const sizeAbove = sizeBelow + grid;\n return size - sizeBelow < sizeAbove - size ? sizeBelow : sizeAbove;\n}\n\n// fontGrid finds a minimal grid (in rem) for the fontSize values so that the\n// lineHeight falls under a x pixels grid, 4px in the case of Material Design,\n// without changing the relative line height\nexport function fontGrid({\n lineHeight,\n pixels,\n htmlFontSize\n}) {\n return pixels / (lineHeight * htmlFontSize);\n}\n\n/**\n * generate a responsive version of a given CSS property\n * @example\n * responsiveProperty({\n * cssProperty: 'fontSize',\n * min: 15,\n * max: 20,\n * unit: 'px',\n * breakpoints: [300, 600],\n * })\n *\n * // this returns\n *\n * {\n * fontSize: '15px',\n * '@media (min-width:300px)': {\n * fontSize: '17.5px',\n * },\n * '@media (min-width:600px)': {\n * fontSize: '20px',\n * },\n * }\n * @param {Object} params\n * @param {string} params.cssProperty - The CSS property to be made responsive\n * @param {number} params.min - The smallest value of the CSS property\n * @param {number} params.max - The largest value of the CSS property\n * @param {string} [params.unit] - The unit to be used for the CSS property\n * @param {Array.number} [params.breakpoints] - An array of breakpoints\n * @param {number} [params.alignStep] - Round scaled value to fall under this grid\n * @returns {Object} responsive styles for {params.cssProperty}\n */\nexport function responsiveProperty({\n cssProperty,\n min,\n max,\n unit = 'rem',\n breakpoints = [600, 900, 1200],\n transform = null\n}) {\n const output = {\n [cssProperty]: `${min}${unit}`\n };\n const factor = (max - min) / breakpoints[breakpoints.length - 1];\n breakpoints.forEach(breakpoint => {\n let value = min + factor * breakpoint;\n if (transform !== null) {\n value = transform(value);\n }\n output[`@media (min-width:${breakpoint}px)`] = {\n [cssProperty]: `${Math.round(value * 10000) / 10000}${unit}`\n };\n });\n return output;\n}","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getSkeletonUtilityClass(slot) {\n return generateUtilityClass('MuiSkeleton', slot);\n}\nconst skeletonClasses = generateUtilityClasses('MuiSkeleton', ['root', 'text', 'rectangular', 'rounded', 'circular', 'pulse', 'wave', 'withChildren', 'fitContent', 'heightAuto']);\nexport default skeletonClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"animation\", \"className\", \"component\", \"height\", \"style\", \"variant\", \"width\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { keyframes, css } from '@mui/system';\nimport { unstable_composeClasses as composeClasses } from '@mui/base/composeClasses';\nimport { alpha, unstable_getUnit as getUnit, unstable_toUnitless as toUnitless } from '../styles';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getSkeletonUtilityClass } from './skeletonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n animation,\n hasChildren,\n width,\n height\n } = ownerState;\n const slots = {\n root: ['root', variant, animation, hasChildren && 'withChildren', hasChildren && !width && 'fitContent', hasChildren && !height && 'heightAuto']\n };\n return composeClasses(slots, getSkeletonUtilityClass, classes);\n};\nconst pulseKeyframe = keyframes(_t || (_t = _`\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.4;\n }\n\n 100% {\n opacity: 1;\n }\n`));\nconst waveKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n transform: translateX(-100%);\n }\n\n 50% {\n /* +0.5s of delay between each loop */\n transform: translateX(100%);\n }\n\n 100% {\n transform: translateX(100%);\n }\n`));\nconst SkeletonRoot = styled('span', {\n name: 'MuiSkeleton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], ownerState.animation !== false && styles[ownerState.animation], ownerState.hasChildren && styles.withChildren, ownerState.hasChildren && !ownerState.width && styles.fitContent, ownerState.hasChildren && !ownerState.height && styles.heightAuto];\n }\n})(({\n theme,\n ownerState\n}) => {\n const radiusUnit = getUnit(theme.shape.borderRadius) || 'px';\n const radiusValue = toUnitless(theme.shape.borderRadius);\n return _extends({\n display: 'block',\n // Create a \"on paper\" color with sufficient contrast retaining the color\n backgroundColor: theme.vars ? theme.vars.palette.Skeleton.bg : alpha(theme.palette.text.primary, theme.palette.mode === 'light' ? 0.11 : 0.13),\n height: '1.2em'\n }, ownerState.variant === 'text' && {\n marginTop: 0,\n marginBottom: 0,\n height: 'auto',\n transformOrigin: '0 55%',\n transform: 'scale(1, 0.60)',\n borderRadius: `${radiusValue}${radiusUnit}/${Math.round(radiusValue / 0.6 * 10) / 10}${radiusUnit}`,\n '&:empty:before': {\n content: '\"\\\\00a0\"'\n }\n }, ownerState.variant === 'circular' && {\n borderRadius: '50%'\n }, ownerState.variant === 'rounded' && {\n borderRadius: (theme.vars || theme).shape.borderRadius\n }, ownerState.hasChildren && {\n '& > *': {\n visibility: 'hidden'\n }\n }, ownerState.hasChildren && !ownerState.width && {\n maxWidth: 'fit-content'\n }, ownerState.hasChildren && !ownerState.height && {\n height: 'auto'\n });\n}, ({\n ownerState\n}) => ownerState.animation === 'pulse' && css(_t3 || (_t3 = _`\n animation: ${0} 2s ease-in-out 0.5s infinite;\n `), pulseKeyframe), ({\n ownerState,\n theme\n}) => ownerState.animation === 'wave' && css(_t4 || (_t4 = _`\n position: relative;\n overflow: hidden;\n\n /* Fix bug in Safari https://bugs.webkit.org/show_bug.cgi?id=68196 */\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n\n &::after {\n animation: ${0} 2s linear 0.5s infinite;\n background: linear-gradient(\n 90deg,\n transparent,\n ${0},\n transparent\n );\n content: '';\n position: absolute;\n transform: translateX(-100%); /* Avoid flash during server-side hydration */\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n }\n `), waveKeyframe, (theme.vars || theme).palette.action.hover));\nconst Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSkeleton'\n });\n const {\n animation = 'pulse',\n className,\n component = 'span',\n height,\n style,\n variant = 'text',\n width\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n animation,\n component,\n variant,\n hasChildren: Boolean(other.children)\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(SkeletonRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n style: _extends({\n width,\n height\n }, style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Skeleton.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The animation.\n * If `false` the animation effect is disabled.\n * @default 'pulse'\n */\n animation: PropTypes.oneOf(['pulse', 'wave', false]),\n /**\n * Optional children to infer width and height from.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Height of the skeleton.\n * Useful when you don't want to adapt the skeleton to a text element but for instance a card.\n */\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The type of content that will be rendered.\n * @default 'text'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['circular', 'rectangular', 'rounded', 'text']), PropTypes.string]),\n /**\n * Width of the skeleton.\n * Useful when the skeleton is inside an inline element with no width of its own.\n */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport default Skeleton;","import React, { createContext, useContext, useState } from \"react\";\n\ntype RefineContextType = {\n refineAttribute: string | null;\n refineValue: string | null;\n setRefineAttribute: React.Dispatch>;\n setRefineValue: React.Dispatch>;\n isFirstLoad: boolean;\n setIsFirstLoad: React.Dispatch>;\n};\n\nconst RefineContext = createContext(undefined);\n\nexport const useRefine = () => {\n const context = useContext(RefineContext);\n if (context === undefined) {\n throw new Error(\"useRefine must be used within a RefineProvider\");\n }\n return context;\n};\n\ninterface RefineProviderProps {\n children: React.ReactNode;\n}\n\nexport const RefineProvider: React.FC = ({ children }) => {\n const [refineAttribute, setRefineAttribute] = useState(null);\n const [refineValue, setRefineValue] = useState(null);\n const [isFirstLoad, setIsFirstLoad] = useState(true);\n\n return (\n \n {children}\n \n );\n};\n","/*!\n * @preserve\n *\n * ++++++++++++++++++++++++++++++++++++++\n * Add to Calendar TimeZones iCal Library\n * ++++++++++++++++++++++++++++++++++++++\n *\n * Version: 1.7.2\n * Creator: Jens Kuerschner (https://jenskuerschner.de)\n * Project: https://github.com/add2cal/timezones-ical-library\n * License: Apache-2.0\n *\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst tzlibVersion = '1.7.2';\nconst tzlibZonesDB = {\n Africa: {\n Abidjan: ['', 0],\n Accra: ['Africa/Abidjan', 0],\n Addis_Ababa: ['Africa/Nairobi', 1],\n Algiers: ['', 2],\n Asmara: ['Africa/Nairobi', 1],\n Asmera: ['Africa/Nairobi', 1],\n Bamako: ['Africa/Abidjan', 0],\n Bangui: ['Africa/Lagos', 3],\n Banjul: ['Africa/Abidjan', 0],\n Bissau: ['', 0],\n Blantyre: ['Africa/Maputo', 4],\n Brazzaville: ['Africa/Lagos', 3],\n Bujumbura: ['Africa/Maputo', 4],\n Cairo: ['', 5],\n Casablanca: ['', 6],\n Ceuta: ['', 7],\n Conakry: ['Africa/Abidjan', 0],\n Dakar: ['Africa/Abidjan', 0],\n Dar_es_Salaam: ['Africa/Nairobi', 1],\n Djibouti: ['Africa/Nairobi', 1],\n Douala: ['Africa/Lagos', 3],\n El_Aaiun: ['', 6],\n Freetown: ['Africa/Abidjan', 0],\n Gaborone: ['Africa/Maputo', 4],\n Harare: ['Africa/Maputo', 4],\n Johannesburg: ['', 8],\n Juba: ['', 4],\n Kampala: ['Africa/Nairobi', 1],\n Khartoum: ['', 4],\n Kigali: ['Africa/Maputo', 4],\n Kinshasa: ['Africa/Lagos', 3],\n Lagos: ['', 3],\n Libreville: ['Africa/Lagos', 3],\n Lome: ['Africa/Abidjan', 0],\n Luanda: ['Africa/Lagos', 3],\n Lubumbashi: ['Africa/Maputo', 4],\n Lusaka: ['Africa/Maputo', 4],\n Malabo: ['Africa/Lagos', 3],\n Maputo: ['', 4],\n Maseru: ['Africa/Johannesburg', 8],\n Mbabane: ['Africa/Johannesburg', 8],\n Mogadishu: ['Africa/Nairobi', 1],\n Monrovia: ['', 0],\n Nairobi: ['', 1],\n Ndjamena: ['', 3],\n Niamey: ['Africa/Lagos', 3],\n Nouakchott: ['Africa/Abidjan', 0],\n Ouagadougou: ['Africa/Abidjan', 0],\n 'Porto-Novo': ['Africa/Lagos', 3],\n Sao_Tome: ['', 0],\n Timbuktu: ['Africa/Abidjan', 0],\n Tripoli: ['', 9],\n Tunis: ['', 2],\n Windhoek: ['', 4],\n },\n America: {\n Adak: ['', 10],\n Anchorage: ['', 11],\n Anguilla: ['America/Puerto_Rico', 12],\n Antigua: ['America/Puerto_Rico', 12],\n Araguaina: ['', 13],\n Argentina: {\n Buenos_Aires: ['', 13],\n Catamarca: ['', 13],\n ComodRivadavia: ['America/Argentina/Catamarca', 13],\n Cordoba: ['', 13],\n Jujuy: ['', 13],\n La_Rioja: ['', 13],\n Mendoza: ['', 13],\n Rio_Gallegos: ['', 13],\n Salta: ['', 13],\n San_Juan: ['', 13],\n San_Luis: ['', 13],\n Tucuman: ['', 13],\n Ushuaia: ['', 13],\n },\n Aruba: ['America/Puerto_Rico', 12],\n Asuncion: ['', 14],\n Atikokan: ['America/Panama', 15],\n Atka: ['America/Adak', 10],\n Bahia_Banderas: ['', 16],\n Bahia: ['', 13],\n Barbados: ['', 12],\n Belem: ['', 13],\n Belize: ['', 16],\n 'Blanc-Sablon': ['America/Puerto_Rico', 12],\n Boa_Vista: ['', 17],\n Bogota: ['', 18],\n Boise: ['', 19],\n Buenos_Aires: ['America/Argentina/Buenos_Aires', 13],\n Cambridge_Bay: ['', 19],\n Campo_Grande: ['', 17],\n Cancun: ['', 15],\n Caracas: ['', 17],\n Catamarca: ['America/Argentina/Catamarca', 13],\n Cayenne: ['', 13],\n Cayman: ['America/Panama', 15],\n Chicago: ['', 20],\n Chihuahua: ['', 16],\n Ciudad_Juarez: ['', 19],\n Coral_Harbour: ['America/Panama', 15],\n Cordoba: ['America/Argentina/Cordoba', 13],\n Costa_Rica: ['', 16],\n Creston: ['America/Phoenix', 21],\n Cuiaba: ['', 17],\n Curacao: ['America/Puerto_Rico', 12],\n Danmarkshavn: ['', 0],\n Dawson_Creek: ['', 21],\n Dawson: ['', 21],\n Denver: ['', 19],\n Detroit: ['', 22],\n Dominica: ['America/Puerto_Rico', 12],\n Edmonton: ['', 19],\n Eirunepe: ['', 18],\n El_Salvador: ['', 16],\n Ensenada: ['America/Tijuana', 23],\n Fort_Nelson: ['', 21],\n Fort_Wayne: ['America/Indiana/Indianapolis', 22],\n Fortaleza: ['', 13],\n Glace_Bay: ['', 24],\n Godthab: ['America/Nuuk', 25],\n Goose_Bay: ['', 26],\n Grand_Turk: ['', 27],\n Grenada: ['America/Puerto_Rico', 12],\n Guadeloupe: ['America/Puerto_Rico', 12],\n Guatemala: ['', 16],\n Guayaquil: ['', 18],\n Guyana: ['', 17],\n Halifax: ['', 24],\n Havana: ['', 28],\n Hermosillo: ['', 21],\n Indiana: {\n Indianapolis: ['', 22],\n Knox: ['', 20],\n Marengo: ['', 22],\n Petersburg: ['', 22],\n Tell_City: ['', 20],\n Vevay: ['', 22],\n Vincennes: ['', 22],\n Winamac: ['', 27],\n },\n Indianapolis: ['America/Indiana/Indianapolis', 22],\n Inuvik: ['', 19],\n Iqaluit: ['', 22],\n Jamaica: ['', 15],\n Jujuy: ['America/Argentina/Jujuy', 13],\n Juneau: ['', 11],\n Kentucky: { Louisville: ['', 22], Monticello: ['', 22] },\n Knox_IN: ['America/Indiana/Knox', 20],\n Kralendijk: ['America/Puerto_Rico', 12],\n La_Paz: ['', 17],\n Lima: ['', 18],\n Los_Angeles: ['', 23],\n Louisville: ['America/Kentucky/Louisville', 22],\n Lower_Princes: ['America/Puerto_Rico', 12],\n Maceio: ['', 13],\n Managua: ['', 16],\n Manaus: ['', 17],\n Marigot: ['America/Puerto_Rico', 12],\n Martinique: ['', 12],\n Matamoros: ['', 20],\n Mazatlan: ['', 21],\n Mendoza: ['America/Argentina/Mendoza', 13],\n Menominee: ['', 20],\n Merida: ['', 16],\n Metlakatla: ['', 11],\n Mexico_City: ['', 16],\n Miquelon: ['', 29],\n Moncton: ['', 24],\n Monterrey: ['', 16],\n Montevideo: ['', 13],\n Montreal: ['America/Toronto', 22],\n Montserrat: ['America/Puerto_Rico', 12],\n Nassau: ['America/Toronto', 22],\n New_York: ['', 22],\n Nipigon: ['America/Toronto', 22],\n Nome: ['', 11],\n Noronha: ['', 30],\n North_Dakota: { Beulah: ['', 20], Center: ['', 20], New_Salem: ['', 20] },\n Nuuk: ['', 25],\n Ojinaga: ['', 20],\n Panama: ['', 15],\n Pangnirtung: ['America/Iqaluit', 22],\n Paramaribo: ['', 13],\n Phoenix: ['', 21],\n Port_of_Spain: ['America/Puerto_Rico', 12],\n 'Port-au-Prince': ['', 22],\n Porto_Acre: ['America/Rio_Branco', 18],\n Porto_Velho: ['', 17],\n Puerto_Rico: ['', 12],\n Punta_Arenas: ['', 13],\n Rainy_River: ['America/Winnipeg', 20],\n Rankin_Inlet: ['', 20],\n Recife: ['', 13],\n Regina: ['', 16],\n Resolute: ['', 31],\n Rio_Branco: ['', 18],\n Rosario: ['America/Argentina/Cordoba', 13],\n Santa_Isabel: ['America/Tijuana', 23],\n Santarem: ['', 13],\n Santiago: ['', 32],\n Santo_Domingo: ['', 12],\n Sao_Paulo: ['', 13],\n Scoresbysund: ['', 33],\n Shiprock: ['America/Denver', 19],\n Sitka: ['', 11],\n St_Barthelemy: ['America/Puerto_Rico', 12],\n St_Johns: ['', 34],\n St_Kitts: ['America/Puerto_Rico', 12],\n St_Lucia: ['America/Puerto_Rico', 12],\n St_Thomas: ['America/Puerto_Rico', 12],\n St_Vincent: ['America/Puerto_Rico', 12],\n Swift_Current: ['', 16],\n Tegucigalpa: ['', 16],\n Thule: ['', 35],\n Thunder_Bay: ['America/Toronto', 22],\n Tijuana: ['', 23],\n Toronto: ['', 22],\n Tortola: ['America/Puerto_Rico', 12],\n Vancouver: ['', 23],\n Virgin: ['America/Puerto_Rico', 12],\n Whitehorse: ['', 21],\n Winnipeg: ['', 20],\n Yakutat: ['', 11],\n Yellowknife: ['America/Edmonton', 19],\n },\n Antarctica: {\n Casey: ['', 36],\n Davis: ['', 37],\n DumontDUrville: ['Pacific/Port_Moresby', 38],\n Macquarie: ['', 39],\n Mawson: ['', 40],\n McMurdo: ['Pacific/Auckland', 41],\n Palmer: ['', 13],\n Rothera: ['', 42],\n South_Pole: ['Pacific/Auckland', 41],\n Syowa: ['Asia/Riyadh', 43],\n Troll: ['', 44],\n Vostok: ['Asia/Urumqi', 45],\n },\n Arctic: { Longyearbyen: ['Europe/Berlin', 46] },\n Asia: {\n Aden: ['Asia/Riyadh', 43],\n Almaty: ['', 45],\n Amman: ['', 43],\n Anadyr: ['', 47],\n Aqtau: ['', 40],\n Aqtobe: ['', 40],\n Ashgabat: ['', 40],\n Ashkhabad: ['Asia/Ashgabat', 40],\n Atyrau: ['', 40],\n Baghdad: ['', 43],\n Bahrain: ['Asia/Qatar', 43],\n Baku: ['', 48],\n Bangkok: ['', 37],\n Barnaul: ['', 49],\n Beirut: ['', 50],\n Bishkek: ['', 45],\n Brunei: ['Asia/Kuching', 51],\n Calcutta: ['Asia/Kolkata', 52],\n Chita: ['', 53],\n Choibalsan: ['', 51],\n Chongqing: ['Asia/Shanghai', 54],\n Chungking: ['Asia/Shanghai', 54],\n Colombo: ['', 55],\n Dacca: ['Asia/Dhaka', 45],\n Damascus: ['', 43],\n Dhaka: ['', 45],\n Dili: ['', 56],\n Dubai: ['', 48],\n Dushanbe: ['', 40],\n Famagusta: ['', 57],\n Gaza: ['', 58],\n Harbin: ['Asia/Shanghai', 54],\n Hebron: ['', 58],\n Ho_Chi_Minh: ['', 37],\n Hong_Kong: ['', 59],\n Hovd: ['', 37],\n Irkutsk: ['', 60],\n Istanbul: ['Europe/Istanbul', 61],\n Jakarta: ['', 62],\n Jayapura: ['', 63],\n Jerusalem: ['', 64],\n Kabul: ['', 65],\n Kamchatka: ['', 47],\n Karachi: ['', 66],\n Kashgar: ['Asia/Urumqi', 45],\n Kathmandu: ['', 67],\n Katmandu: ['Asia/Kathmandu', 67],\n Khandyga: ['', 53],\n Kolkata: ['', 52],\n Krasnoyarsk: ['', 49],\n Kuala_Lumpur: ['Asia/Singapore', 51],\n Kuching: ['', 51],\n Kuwait: ['Asia/Riyadh', 43],\n Macao: ['Asia/Macau', 54],\n Macau: ['', 54],\n Magadan: ['', 68],\n Makassar: ['', 69],\n Manila: ['', 70],\n Muscat: ['Asia/Dubai', 48],\n Nicosia: ['', 71],\n Novokuznetsk: ['', 49],\n Novosibirsk: ['', 49],\n Omsk: ['', 72],\n Oral: ['', 40],\n Phnom_Penh: ['Asia/Bangkok', 37],\n Pontianak: ['', 62],\n Pyongyang: ['', 73],\n Qatar: ['', 43],\n Qostanay: ['', 45],\n Qyzylorda: ['', 40],\n Rangoon: ['Asia/Yangon', 74],\n Riyadh: ['', 43],\n Saigon: ['Asia/Ho_Chi_Minh', 37],\n Sakhalin: ['', 68],\n Samarkand: ['', 40],\n Seoul: ['', 73],\n Shanghai: ['', 54],\n Singapore: ['', 51],\n Srednekolymsk: ['', 68],\n Taipei: ['', 54],\n Tashkent: ['', 40],\n Tbilisi: ['', 48],\n Tehran: ['', 75],\n Tel_Aviv: ['Asia/Jerusalem', 64],\n Thimbu: ['Asia/Thimphu', 45],\n Thimphu: ['', 45],\n Tokyo: ['', 76],\n Tomsk: ['', 49],\n Ujung_Pandang: ['Asia/Makassar', 69],\n Ulaanbaatar: ['', 51],\n Ulan_Bator: ['Asia/Ulaanbaatar', 51],\n Urumqi: ['', 45],\n 'Ust-Nera': ['', 77],\n Vientiane: ['Asia/Bangkok', 37],\n Vladivostok: ['', 77],\n Yakutsk: ['', 53],\n Yangon: ['', 74],\n Yekaterinburg: ['', 78],\n Yerevan: ['', 48],\n },\n Atlantic: {\n Azores: ['', 79],\n Bermuda: ['', 24],\n Canary: ['', 80],\n Cape_Verde: ['', 81],\n Faeroe: ['Atlantic/Faroe', 82],\n Faroe: ['', 82],\n Jan_Mayen: ['Europe/Berlin', 46],\n Madeira: ['', 80],\n Reykjavik: ['Africa/Abidjan', 0],\n South_Georgia: ['', 30],\n St_Helena: ['Africa/Abidjan', 0],\n Stanley: ['', 13],\n },\n Australia: {\n ACT: ['Australia/Sydney', 39],\n Adelaide: ['', 83],\n Brisbane: ['', 84],\n Broken_Hill: ['', 83],\n Canberra: ['Australia/Sydney', 39],\n Currie: ['Australia/Hobart', 85],\n Darwin: ['', 86],\n Eucla: ['', 87],\n Hobart: ['', 85],\n LHI: ['Australia/Lord_Howe', 88],\n Lindeman: ['', 84],\n Lord_Howe: ['', 88],\n Melbourne: ['', 39],\n North: ['Australia/Darwin', 86],\n NSW: ['Australia/Sydney', 39],\n Perth: ['', 89],\n Queensland: ['Australia/Brisbane', 84],\n South: ['Australia/Adelaide', 83],\n Sydney: ['', 39],\n Tasmania: ['Australia/Hobart', 85],\n Victoria: ['Australia/Melbourne', 39],\n West: ['Australia/Perth', 89],\n Yancowinna: ['Australia/Broken_Hill', 83],\n },\n Brazil: {\n Acre: ['America/Rio_Branco', 18],\n DeNoronha: ['America/Noronha', 30],\n East: ['America/Sao_Paulo', 13],\n West: ['America/Manaus', 17],\n },\n Canada: {\n Atlantic: ['America/Halifax', 24],\n Central: ['America/Winnipeg', 20],\n Eastern: ['America/Toronto', 22],\n Mountain: ['America/Edmonton', 19],\n Newfoundland: ['America/St_Johns', 34],\n Pacific: ['America/Vancouver', 23],\n Saskatchewan: ['America/Regina', 16],\n Yukon: ['America/Whitehorse', 21],\n },\n CET: ['', 46],\n Chile: { Continental: ['America/Santiago', 32], EasterIsland: ['Pacific/Easter', 90] },\n CST6CDT: ['', 20],\n Cuba: ['America/Havana', 28],\n EET: ['', 57],\n Egypt: ['Africa/Cairo', 5],\n Eire: ['Europe/Dublin', 91],\n EST: ['', 15],\n EST5EDT: ['', 22],\n Etc: {\n 'GMT-0': ['Etc/GMT', 92],\n 'GMT-1': ['', 93],\n 'GMT-10': ['', 77],\n 'GMT-11': ['', 68],\n 'GMT-12': ['', 47],\n 'GMT-13': ['', 94],\n 'GMT-14': ['', 95],\n 'GMT-2': ['', 96],\n 'GMT-3': ['', 61],\n 'GMT-4': ['', 97],\n 'GMT-5': ['', 78],\n 'GMT-6': ['', 72],\n 'GMT-7': ['', 49],\n 'GMT-8': ['', 60],\n 'GMT-9': ['', 53],\n GMT: ['', 92],\n 'GMT+0': ['Etc/GMT', 92],\n 'GMT+1': ['', 98],\n 'GMT+10': ['', 99],\n 'GMT+11': ['', 100],\n 'GMT+12': ['', 101],\n 'GMT+2': ['', 30],\n 'GMT+3': ['', 13],\n 'GMT+4': ['', 17],\n 'GMT+5': ['', 18],\n 'GMT+6': ['', 102],\n 'GMT+7': ['', 103],\n 'GMT+8': ['', 104],\n 'GMT+9': ['', 105],\n GMT0: ['Etc/GMT', 92],\n Greenwich: ['Etc/GMT', 92],\n UCT: ['Etc/UTC', 106],\n Universal: ['Etc/UTC', 106],\n UTC: ['', 106],\n Zulu: ['Etc/UTC', 106],\n },\n Europe: {\n Amsterdam: ['Europe/Brussels', 46],\n Andorra: ['', 46],\n Astrakhan: ['', 97],\n Athens: ['', 57],\n Belfast: ['Europe/London', 107],\n Belgrade: ['', 7],\n Berlin: ['', 46],\n Bratislava: ['Europe/Prague', 46],\n Brussels: ['', 46],\n Bucharest: ['', 108],\n Budapest: ['', 46],\n Busingen: ['Europe/Zurich', 7],\n Chisinau: ['', 109],\n Copenhagen: ['Europe/Berlin', 46],\n Dublin: ['', 91],\n Gibraltar: ['', 46],\n Guernsey: ['Europe/London', 107],\n Helsinki: ['', 57],\n Isle_of_Man: ['Europe/London', 107],\n Istanbul: ['', 61],\n Jersey: ['Europe/London', 107],\n Kaliningrad: ['', 110],\n Kiev: ['Europe/Kyiv', 111],\n Kirov: ['', 112],\n Kyiv: ['', 111],\n Lisbon: ['', 113],\n Ljubljana: ['Europe/Belgrade', 7],\n London: ['', 107],\n Luxembourg: ['Europe/Brussels', 46],\n Madrid: ['', 7],\n Malta: ['', 46],\n Mariehamn: ['Europe/Helsinki', 57],\n Minsk: ['', 43],\n Monaco: ['Europe/Paris', 46],\n Moscow: ['', 112],\n Nicosia: ['Asia/Nicosia', 71],\n Oslo: ['Europe/Berlin', 46],\n Paris: ['', 46],\n Podgorica: ['Europe/Belgrade', 7],\n Prague: ['', 46],\n Riga: ['', 57],\n Rome: ['', 46],\n Samara: ['', 97],\n San_Marino: ['Europe/Rome', 46],\n Sarajevo: ['Europe/Belgrade', 7],\n Saratov: ['', 97],\n Simferopol: ['', 112],\n Skopje: ['Europe/Belgrade', 7],\n Sofia: ['', 57],\n Stockholm: ['Europe/Berlin', 46],\n Tallinn: ['', 57],\n Tirane: ['', 46],\n Tiraspol: ['Europe/Chisinau', 109],\n Ulyanovsk: ['', 97],\n Uzhgorod: ['Europe/Kyiv', 111],\n Vaduz: ['Europe/Zurich', 7],\n Vatican: ['Europe/Rome', 46],\n Vienna: ['', 46],\n Vilnius: ['', 57],\n Volgograd: ['', 112],\n Warsaw: ['', 46],\n Zagreb: ['Europe/Belgrade', 7],\n Zaporozhye: ['Europe/Kyiv', 111],\n Zurich: ['', 7],\n },\n 'GB-Eire': ['Europe/London', 107],\n GB: ['Europe/London', 107],\n 'GMT-0': ['Etc/GMT', 92],\n GMT: ['Etc/GMT', 92],\n 'GMT+0': ['Etc/GMT', 92],\n GMT0: ['Etc/GMT', 92],\n Greenwich: ['Etc/GMT', 92],\n Hongkong: ['Asia/Hong_Kong', 59],\n HST: ['', 114],\n Iceland: ['Africa/Abidjan', 0],\n Indian: {\n Antananarivo: ['Africa/Nairobi', 1],\n Chagos: ['', 45],\n Christmas: ['Asia/Bangkok', 37],\n Cocos: ['Asia/Yangon', 74],\n Comoro: ['Africa/Nairobi', 1],\n Kerguelen: ['Indian/Maldives', 40],\n Mahe: ['Asia/Dubai', 48],\n Maldives: ['', 40],\n Mauritius: ['', 48],\n Mayotte: ['Africa/Nairobi', 1],\n Reunion: ['Asia/Dubai', 48],\n },\n Iran: ['Asia/Tehran', 75],\n Israel: ['Asia/Jerusalem', 64],\n Jamaica: ['America/Jamaica', 15],\n Japan: ['Asia/Tokyo', 76],\n Kwajalein: ['Pacific/Kwajalein', 115],\n Libya: ['Africa/Tripoli', 9],\n MET: ['', 116],\n Mexico: {\n BajaNorte: ['America/Tijuana', 23],\n BajaSur: ['America/Mazatlan', 21],\n General: ['America/Mexico_City', 16],\n },\n MST: ['', 21],\n MST7MDT: ['', 19],\n Navajo: ['America/Denver', 19],\n 'NZ-CHAT': ['Pacific/Chatham', 117],\n NZ: ['Pacific/Auckland', 41],\n Pacific: {\n Apia: ['', 118],\n Auckland: ['', 41],\n Bougainville: ['', 36],\n Chatham: ['', 117],\n Chuuk: ['Pacific/Port_Moresby', 38],\n Easter: ['', 90],\n Efate: ['', 36],\n Enderbury: ['Pacific/Kanton', 118],\n Fakaofo: ['', 118],\n Fiji: ['', 115],\n Funafuti: ['Pacific/Tarawa', 115],\n Galapagos: ['', 102],\n Gambier: ['', 119],\n Guadalcanal: ['', 36],\n Guam: ['', 120],\n Honolulu: ['', 114],\n Johnston: ['Pacific/Honolulu', 114],\n Kanton: ['', 118],\n Kiritimati: ['', 121],\n Kosrae: ['', 36],\n Kwajalein: ['', 115],\n Majuro: ['Pacific/Tarawa', 115],\n Marquesas: ['', 122],\n Midway: ['Pacific/Pago_Pago', 123],\n Nauru: ['', 115],\n Niue: ['', 124],\n Norfolk: ['', 125],\n Noumea: ['', 36],\n Pago_Pago: ['', 123],\n Palau: ['', 56],\n Pitcairn: ['', 126],\n Pohnpei: ['Pacific/Guadalcanal', 36],\n Ponape: ['Pacific/Guadalcanal', 36],\n Port_Moresby: ['', 38],\n Rarotonga: ['', 127],\n Saipan: ['Pacific/Guam', 120],\n Samoa: ['Pacific/Pago_Pago', 123],\n Tahiti: ['', 127],\n Tarawa: ['', 115],\n Tongatapu: ['', 118],\n Truk: ['Pacific/Port_Moresby', 38],\n Wake: ['Pacific/Tarawa', 115],\n Wallis: ['Pacific/Tarawa', 115],\n Yap: ['Pacific/Port_Moresby', 38],\n },\n Poland: ['Europe/Warsaw', 46],\n Portugal: ['Europe/Lisbon', 113],\n PRC: ['Asia/Shanghai', 54],\n PST8PDT: ['', 23],\n ROC: ['Asia/Taipei', 54],\n ROK: ['Asia/Seoul', 73],\n Singapore: ['Asia/Singapore', 51],\n Turkey: ['Europe/Istanbul', 61],\n UCT: ['Etc/UTC', 106],\n Universal: ['Etc/UTC', 106],\n US: {\n Alaska: ['America/Anchorage', 11],\n Aleutian: ['America/Adak', 10],\n Arizona: ['America/Phoenix', 21],\n Central: ['America/Chicago', 20],\n 'East-Indiana': ['America/Indiana/Indianapolis', 22],\n Eastern: ['America/New_York', 22],\n Hawaii: ['Pacific/Honolulu', 114],\n 'Indiana-Starke': ['America/Indiana/Knox', 20],\n Michigan: ['America/Detroit', 22],\n Mountain: ['America/Denver', 19],\n Pacific: ['America/Los_Angeles', 23],\n Samoa: ['Pacific/Pago_Pago', 123],\n },\n UTC: ['Etc/UTC', 106],\n 'W-SU': ['Europe/Moscow', 112],\n WET: ['', 82],\n Zulu: ['Etc/UTC', 106],\n};\nconst tzlibZonesDetailsDB = [\n '20230517T170335ZGMT+0000+000019700101T000000',\n '20230517T170335ZEAT+0300+030019700101T000000',\n '20230517T170335ZCET+0100+010019700101T000000',\n '20230517T170335ZWAT+0100+010019700101T000000',\n '20230517T170335ZCAT+0200+020019700101T000000',\n '20230517T170335ZEEST+0200+030019700424T000000FREQ=YEARLY;BYMONTH=4;BYDAY=-1FREET+0300+020019701030T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR',\n '20230517T170335Z+01+0100+010019700101T000000',\n '20230517T170336ZCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335ZSAST+0200+020019700101T000000',\n '20230517T170335ZEET+0200+020019700101T000000',\n '20230517T170336ZHDT-1000-090019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUHST-0900-100019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZAKDT-0900-080019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAKST-0800-090019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZAST-0400-040019700101T000000',\n '20230517T170336Z-03-0300-030019700101T000000',\n '20230517T170336Z-03-0400-030019701004T000000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU-04-0300-040019700322T000000FREQ=YEARLY;BYMONTH=3;BYDAY=4SU',\n '20230517T170336ZEST-0500-050019700101T000000',\n '20230517T170336ZCST-0600-060019700101T000000',\n '20230517T170336Z-04-0400-040019700101T000000',\n '20230517T170336Z-05-0500-050019700101T000000',\n '20230517T170336ZMDT-0700-060019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUMST-0600-070019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZMST-0700-070019700101T000000',\n '20230517T170336ZEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZPDT-0800-070019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUPST-0700-080019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336ZADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170335Z-01-0200-010019700328T230000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA-02-0100-020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170336ZEST-0400-050019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUEDT-0500-040019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170336ZCST-0400-050019701101T010000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUCDT-0500-040019700308T000000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170336Z-02-0300-020019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU-03-0200-030019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170336Z-02-0200-020019700101T000000',\n '20230517T170336ZCST-0500-060019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUCDT-0600-050019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170336Z-04-0300-040019700405T000000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU-03-0400-030019700906T000000FREQ=YEARLY;BYMONTH=9;BYDAY=1SU',\n '20230517T170335Z+00-0100+000019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU-01+0000-010019701025T010000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZNST-0230-033019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SUNDT-0330-023019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SU',\n '20230517T170335ZADT-0400-030019700308T020000FREQ=YEARLY;BYMONTH=3;BYDAY=2SUAST-0300-040019701101T020000FREQ=YEARLY;BYMONTH=11;BYDAY=1SU',\n '20230517T170335Z+11+1100+110019700101T000000',\n '20230517T170335Z+07+0700+070019700101T000000',\n '20230517T170335Z+10+1000+100019700101T000000',\n '20230517T170335ZAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU',\n '20230517T170335Z+05+0500+050019700101T000000',\n '20230517T170335ZNZDT+1200+130019700927T020000FREQ=YEARLY;BYMONTH=9;BYDAY=-1SUNZST+1300+120019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20230517T170335Z-03-0300-030019700101T000000',\n '20230517T170335Z+03+0300+030019700101T000000',\n '20230517T170335Z+02+0000+020019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU+00+0200+000019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z+06+0600+060019700101T000000',\n '20230517T170335ZCEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUCET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336Z+12+1200+120019700101T000000',\n '20230517T170335Z+04+0400+040019700101T000000',\n '20230517T170336Z+07+0700+070019700101T000000',\n '20230517T170335ZEEST+0200+030019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T000000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z+08+0800+080019700101T000000',\n '20230517T170335ZIST+0530+053019700101T000000',\n '20230517T170336Z+09+0900+090019700101T000000',\n '20230517T170335ZCST+0800+080019700101T000000',\n '20230517T170335Z+0530+0530+053019700101T000000',\n '20230517T170335Z+09+0900+090019700101T000000',\n '20230517T170335ZEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335ZEET+0300+020019701024T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SAEEST+0200+030019700328T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SA',\n '20230517T170335ZHKT+0800+080019700101T000000',\n '20230517T170336Z+08+0800+080019700101T000000',\n '20230517T170336Z+03+0300+030019700101T000000',\n '20230517T170335ZWIB+0700+070019700101T000000',\n '20230517T170335ZWIT+0900+090019700101T000000',\n '20230517T170335ZIDT+0200+030019700327T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1FRIST+0300+020019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z+0430+0430+043019700101T000000',\n '20230517T170335ZPKT+0500+050019700101T000000',\n '20230517T170335Z+0545+0545+054519700101T000000',\n '20230517T170336Z+11+1100+110019700101T000000',\n '20230517T170335ZWITA+0800+080019700101T000000',\n '20230517T170335ZPST+0800+080019700101T000000',\n '20230517T170335ZEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU',\n '20230517T170336Z+06+0600+060019700101T000000',\n '20230517T170335ZKST+0900+090019700101T000000',\n '20230517T170335Z+0630+0630+063019700101T000000',\n '20230517T170335Z+0330+0330+033019700101T000000',\n '20230517T170335ZJST+0900+090019700101T000000',\n '20230517T170336Z+10+1000+100019700101T000000',\n '20230517T170336Z+05+0500+050019700101T000000',\n '20230517T170336Z+00-0100+000019700329T000000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU-01+0000-010019701025T010000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z-01-0100-010019700101T000000',\n '20230517T170335ZWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335ZACST+1030+093019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SUACDT+0930+103019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU',\n '20230517T170335ZAEST+1000+100019700101T000000',\n '20230517T170335ZAEDT+1000+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SUAEST+1100+100019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20230517T170335ZACST+0930+093019700101T000000',\n '20230517T170335Z+0845+0845+084519700101T000000',\n '20230517T170335Z+1030+1100+103019700405T020000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU+11+1030+110019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU',\n '20230517T170335ZAWST+0800+080019700101T000000',\n '20230517T170336Z-06-0500-060019700404T220000FREQ=YEARLY;BYMONTH=4;BYDAY=1SA-05-0600-050019700905T220000FREQ=YEARLY;BYMONTH=9;BYDAY=1SA',\n '20230517T170335ZIST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUGMT+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZGMT+0000+000019700101T000000',\n '20230517T170336Z+01+0100+010019700101T000000',\n '20230517T170336Z+13+1300+130019700101T000000',\n '20230517T170336Z+14+1400+140019700101T000000',\n '20230517T170336Z+02+0200+020019700101T000000',\n '20230517T170336Z+04+0400+040019700101T000000',\n '20230517T170336Z-01-0100-010019700101T000000',\n '20230517T170336Z-10-1000-100019700101T000000',\n '20230517T170336Z-11-1100-110019700101T000000',\n '20230517T170336Z-12-1200-120019700101T000000',\n '20230517T170336Z-06-0600-060019700101T000000',\n '20230517T170336Z-07-0700-070019700101T000000',\n '20230517T170336Z-08-0800-080019700101T000000',\n '20230517T170336Z-09-0900-090019700101T000000',\n '20230517T170336ZUTC+0000+000019700101T000000',\n '20230517T170335ZBST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUGMT+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335ZEEST+0200+030019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUEET+0300+020019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170336ZEET+0200+020019700101T000000',\n '20230517T170336ZEET+0300+020019701025T040000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUEEST+0200+030019700329T030000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU',\n '20230517T170336ZMSK+0300+030019700101T000000',\n '20230517T170336ZWET+0100+000019701025T020000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SUWEST+0000+010019700329T010000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU',\n '20230517T170336ZHST-1000-100019700101T000000',\n '20230517T170335Z+12+1200+120019700101T000000',\n '20230517T170335ZMEST+0100+020019700329T020000FREQ=YEARLY;BYMONTH=3;BYDAY=-1SUMET+0200+010019701025T030000FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU',\n '20230517T170335Z+1345+1245+134519700927T024500FREQ=YEARLY;BYMONTH=9;BYDAY=-1SU+1245+1345+124519700405T034500FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20230517T170335Z+13+1300+130019700101T000000',\n '20230517T170335Z-09-0900-090019700101T000000',\n '20230517T170335ZChST+1000+100019700101T000000',\n '20230517T170335Z+14+1400+140019700101T000000',\n '20230517T170335Z-0930-0930-093019700101T000000',\n '20230517T170335ZSST-1100-110019700101T000000',\n '20230517T170335Z-11-1100-110019700101T000000',\n '20230517T170335Z+12+1100+120019701004T020000FREQ=YEARLY;BYMONTH=10;BYDAY=1SU+11+1200+110019700405T030000FREQ=YEARLY;BYMONTH=4;BYDAY=1SU',\n '20230517T170335Z-08-0800-080019700101T000000',\n '20230517T170335Z-10-1000-100019700101T000000',\n];\nfunction tzlib_get_content(tzName) {\n const nameParts = tzName.split('/');\n if (\n (nameParts.length === 3 &&\n (!tzlibZonesDB[`${nameParts[0]}`] ||\n !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`] ||\n !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`])) ||\n (nameParts.length === 2 &&\n (!tzlibZonesDB[`${nameParts[0]}`] || !tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`])) ||\n (nameParts.length === 1 && !tzlibZonesDB[`${nameParts[0]}`])\n ) {\n console.error('Given timezone not valid.');\n return '';\n }\n if (nameParts.length === 3) {\n return [\n tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`][0],\n tzlib_enrich_data(\n tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][`${nameParts[2]}`][1]],\n ),\n ];\n }\n if (nameParts.length === 2) {\n return [\n tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][0],\n tzlib_enrich_data(tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][`${nameParts[1]}`][1]]),\n ];\n }\n return [\n tzlibZonesDB[`${nameParts[0]}`][0],\n tzlib_enrich_data(tzlibZonesDetailsDB[tzlibZonesDB[`${nameParts[0]}`][1]]),\n ];\n}\nfunction tzlib_enrich_data(string) {\n const shortenerMap = {\n '
': '',\n 'TZNAME:': '',\n 'TZOFFSETFROM:': '',\n 'TZOFFSETTO:': '',\n 'DTSTART:': '',\n 'RRULE:': '',\n 'BEGIN:DAYLIGHT': '',\n 'END:DAYLIGHT': '',\n 'BEGIN:STANDARD': '',\n 'END:STANDARD': '',\n };\n for (const [key, value] of Object.entries(shortenerMap)) {\n string = string.replaceAll(value, key);\n }\n return string;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_ical_block(tzName, jsonType = false) {\n const tzBlock = tzlib_get_content(tzName);\n if (tzBlock[1] == null || tzBlock[1] == '') {\n return '';\n }\n const location = (function () {\n if (tzBlock[0] == '') {\n return tzName;\n } else {\n return tzBlock[0];\n }\n })();\n const tzidLine = 'TZID=' + location;\n const output = [\n 'BEGIN:VTIMEZONE\\r\\nTZID:' +\n location +\n '\\r\\nX-LIC-LOCATION:' +\n location +\n '\\r\\nLAST-MODIFIED:' +\n tzBlock[1].replace(/[^\\w_\\-:,;=+/
]/g, '').replace(/
/g, '\\r\\n') +\n 'END:VTIMEZONE',\n tzidLine,\n ];\n if (jsonType) {\n return JSON.stringify(output);\n }\n return output;\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_offset(tzName, isoDate, isoTime) {\n const tzBlock = tzlib_get_content(tzName);\n if (tzBlock[1] == null || tzBlock[1] == '') {\n return '';\n }\n if (!isoDate.match(/^\\d{4}-\\d{2}-\\d{2}$/)) {\n console.error('offset calculation failed: date misspelled [-> YYYY-MM-DD]');\n return '';\n }\n if (!isoTime.match(/^\\d{2}:\\d{2}$/)) {\n console.error('offset calculation failed: time misspelled [-> hh:mm]');\n return '';\n }\n if (!tzBlock[1].match(/BEGIN:DAYLIGHT/i)) {\n return tzBlock[1].match(/TZOFFSETTO:([+|-]\\d{4})/i)[1];\n }\n const dateString = isoDate + 'T' + isoTime + ':00';\n const date = new Date(dateString);\n const dateYear = date.getFullYear();\n const dateMonth = date.getMonth() + 1;\n const dateDay = date.getDate();\n const dateHour = date.getHours();\n const timezoneData = tzBlock[1].replace(/[^\\w_\\-:,;=+/
]/g, '').split('
');\n const tzBreakpoints = { 1: {}, 2: {} };\n let breakpointCount = 0;\n for (let i = 0; i < timezoneData.length; i++) {\n if (timezoneData[`${i}`].startsWith('TZOFFSETTO')) {\n breakpointCount++;\n tzBreakpoints[`${breakpointCount}`].offset = timezoneData[`${i}`].split(':')[1];\n }\n if (timezoneData[`${i}`].startsWith('DTSTART')) {\n tzBreakpoints[`${breakpointCount}`].hour = parseInt(timezoneData[`${i}`].substr(17, 2));\n }\n if (timezoneData[`${i}`].startsWith('RRULE')) {\n let rruleParts = timezoneData[`${i}`].split(';');\n let rruleMonth = parseInt(rruleParts[1].split('=')[1]);\n tzBreakpoints[`${breakpointCount}`].month = parseInt(rruleMonth);\n tzBreakpoints[`${breakpointCount}`].day = rruleParts[2].split('=')[1];\n }\n }\n if (tzBreakpoints[1].month > tzBreakpoints[2].month) {\n [tzBreakpoints[1], tzBreakpoints[2]] = [tzBreakpoints[2], tzBreakpoints[1]];\n }\n if (dateMonth != tzBreakpoints[1].month && dateMonth != tzBreakpoints[2].month) {\n if (dateMonth < tzBreakpoints[1].month || dateMonth > tzBreakpoints[2].month) {\n return tzBreakpoints[2].offset;\n } else {\n return tzBreakpoints[1].offset;\n }\n }\n const theCase = (function () {\n return Object.keys(tzBreakpoints).find((key) => tzBreakpoints[`${key}`].month == dateMonth);\n })();\n const helperArrayWeekdays = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];\n const numberDays = new Date(dateYear, dateMonth, 0).getDate();\n let weekdayCount = new Date(dateYear, dateMonth - 1, 1).getDay();\n const weekdays = { SU: {}, MO: {}, TU: {}, WE: {}, TH: {}, FR: {}, SA: {} };\n for (let d = 1; d <= numberDays; d++) {\n const occurence = Object.keys(weekdays[helperArrayWeekdays[`${weekdayCount}`]]).length + 1;\n weekdays[helperArrayWeekdays[`${weekdayCount}`]][`${occurence}`] = d;\n weekdayCount++;\n if (weekdayCount == 7) {\n weekdayCount = 0;\n }\n }\n const actualDay = (function () {\n if (tzBreakpoints[`${theCase}`].day[0] == '-') {\n const breakpointWeekday = tzBreakpoints[`${theCase}`].day.substr(2, 2);\n const dayIndex =\n Object.keys(weekdays[`${breakpointWeekday}`]).length +\n 1 -\n parseInt(tzBreakpoints[`${theCase}`].day[1]);\n return weekdays[`${breakpointWeekday}`][`${dayIndex}`];\n } else {\n const breakpointWeekday = tzBreakpoints[`${theCase}`].day.substr(1, 2);\n return weekdays[`${breakpointWeekday}`][tzBreakpoints[`${theCase}`].day[0]];\n }\n })();\n if (dateDay > actualDay || (dateDay == actualDay && dateHour >= tzBreakpoints[`${theCase}`].hour)) {\n return tzBreakpoints[`${theCase}`].offset;\n }\n const fallbackCase = (function () {\n if (theCase == 1) {\n return 2;\n } else {\n return 1;\n }\n })();\n return tzBreakpoints[`${fallbackCase}`].offset;\n}\nlet tzlibZoneNames = [];\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction tzlib_get_timezones(jsonType = false) {\n if (tzlibZoneNames.length == 0) {\n tzlibZoneNames = (function () {\n let namesArr = [];\n for (const [key, value] of Object.entries(tzlibZonesDB)) {\n if (typeof value === 'object' && !Array.isArray(value)) {\n for (const [key2, value2] of Object.entries(value)) {\n if (typeof value2 === 'object' && !Array.isArray(value2)) {\n for (const [key3] of Object.entries(value2)) {\n namesArr.push(key + '/' + key2 + '/' + key3);\n }\n } else {\n namesArr.push(key + '/' + key2);\n }\n }\n } else {\n namesArr.push(key);\n }\n }\n return namesArr;\n })();\n }\n if (jsonType) {\n return JSON.stringify(tzlibZoneNames);\n }\n return tzlibZoneNames;\n}\nexport { tzlib_get_ical_block, tzlib_get_offset, tzlib_get_timezones };\n","import { tzlib_get_ical_block, tzlib_get_offset, tzlib_get_timezones } from 'timezones-ical-library';\n/*!\n * @preserve\n *\n * ++++++++++++++++++++++\n * Add to Calendar Button\n * ++++++++++++++++++++++\n *\n * Version: 2.4.3\n * Creator: Jens Kuerschner (https://jenskuerschner.de)\n * Project: https://github.com/add2cal/add-to-calendar-button\n * License: Elastic License 2.0 (ELv2) (https://github.com/add2cal/add-to-calendar-button/blob/main/LICENSE.txt)\n * Note: DO NOT REMOVE THE COPYRIGHT NOTICE ABOVE!\n *\n */\nconst atcbVersion = '2.4.3';\nconst atcbCssTemplate = {\r\"default\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--keyboard-focus:#1e90ff;--btn-background:#f5f5f5;--btn-background-hover:#fff;--btn-border:#d2d2d2;--btn-text:#333;--btn-text-hover:#000;--btn-shadow:rgba(0 0 0 / 20%) 2px 5px 18px -1px,rgba(0 0 0 / 15%) 2px 2px 10px -3px;--btn-shadow-hover:rgba(0 0 0 / 35%) 2px 5px 18px -1px,rgba(0 0 0 / 30%) 2px 2px 10px -3px;--btn-shadow-active:rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 45%) 2px 2px 10px -3px;--list-background:#f5f5f5;--list-background-hover:#fff;--list-text:#333;--list-text-hover:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-shadow:rgba(0 0 0 / 20%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 2px 2px 10px -3px;--list-shadow-modal:rgba(0 0 0 / 60%) 3px 6px 40px -5px,rgba(0 0 0 / 60%) 3px 3px 15px -4px;--modal-text:#000;--modal-background:#f5f5f5;--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-background-hover:#fff;--modal-btn-text:#2e2e2e;--modal-btn-text-hover:#161616;--modal-btn-secondary-text:#666567;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 70%));--modal-shadow-btn:rgba(0 0 0 / 10%) 2px 3px 10px -3px,rgba(0 0 0 / 25%) 1px 1px 8px -4px;--modal-shadow-btn-hover:rgba(0 0 0 / 35%) 3px 5px 15px -2px,rgba(0 0 0 / 20%) 2px 4px 25px -6px;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-background-hover:#fff;--date-btn-shadow:rgba(0 0 0 / 40%) 1px 3px 15px -4px,rgba(0 0 0 / 20%) 1px 1px 8px -4px;--date-btn-shadow-hover:rgba(0 0 0 / 40%) 4px 6px 18px -1px,rgba(0 0 0 / 35%) 4px 5px 25px -2px;--checkmark-background:radial-gradient(circle,#fff 0,rgba(255 255 255 / 80%) 40%,rgba(255 255 255 / 0%) 70%);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-background-hover:#373737;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-text-hover:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--btn-shadow-hover:rgba(255 255 255 / 6%) -12px -5px 23px -8px,rgba(255 255 255 / 7%) -7px -5px 18px -3px,rgba(0 0 0 / 60%) 2px 5px 19px -1px,rgba(0 0 0 / 50%) 3px 3px 22px -3px;--btn-shadow-active:rgba(255 255 255 / 7%) -12px -5px 23px -8px,rgba(255 255 255 / 8%) -7px -5px 18px -3px,rgba(0 0 0 / 70%) 2px 5px 19px -1px,rgba(0 0 0 / 60%) 3px 3px 22px -3px;--list-background:#2e2e2e;--list-background-hover:#373737;--list-text:#dedede;--list-text-hover:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--list-shadow-modal:rgba(255 255 255 / 8%) -12px -5px 30px -8px,rgba(255 255 255 / 8%) -7px -5px 15px -3px,rgba(0 0 0 / 60%) 4px 6px 50px -4px,rgba(0 0 0 / 90%) 8px 12px 40px -2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-background-hover:#434246;--modal-btn-text:#dbdbdb;--modal-btn-text-hover:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 90%));--modal-shadow-btn:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 30%) 1px 2px 8px -1px;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-background-hover:#474747;--date-btn-shadow:rgba(255 255 255 / 10%) -8px -6px 20px,rgba(0 0 0 / 50%) 1px 3px 25px -8px,rgba(0 0 0 / 50%) 1px 1px 10px -3px;--checkmark-background:radial-gradient(circle,rgba(0 0 0 / 50%) 0,rgba(0 0 0 / 30%) 40%,rgba(0 0 0 / 0%) 70%);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:5px;position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:6px;box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:600;justify-content:center;line-height:1.5em;margin:.13em;max-width:350px;min-width:10em;padding:.65em 1em;position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text,.atcb-button:disabled{min-width:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-hover);color:var(--btn-text-hover)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-active);color:var(--btn-text-hover);margin:0;padding:.78em 1.13em}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{height:1em;margin-bottom:.3em;margin-right:.8em;flex-grow:0;flex-shrink:0}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-text{overflow-wrap:anywhere}.atcb-button:disabled .atcb-text{letter-spacing:.1em}.atcb-dropdown-anchor{bottom:4px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 4px;position:absolute;z-index:14000090}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000;max-width:max-content}.atcb-list{border-radius:0 0 6px 6px;box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:.8em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-background-hover);color:var(--list-text-hover)}.atcb-list-item:focus-visible{background-color:var(--list-background-hover);color:var(--keyboard-focus);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 6px 6px}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:1.25em}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:6px 6px 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:6px}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:1.25em}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:.8em}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:6px}.atcb-list.atcb-modal{box-shadow:var(--list-shadow-modal)}.atcb-list-item .atcb-icon{margin-bottom:.5em;margin-right:.6em;width:1.125em}.atcb-rtl .atcb-list-item .atcb-icon{margin-right:0;margin-left:.6em}.atcb-no-text .atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;min-width:250px;width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:left;user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;max-width:32em;-webkit-tap-highlight-color:transparent}.atcb-modal-box.atcb-rtl{text-align:right;direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{height:auto;fill:currentcolor;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:6px 6px 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 2em 1.3em;text-transform:uppercase;text-align:center}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2.5em 2.25em}.atcb-modal-icon+.atcb-modal-content{border-radius:6px 6px 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 6px 6px;box-sizing:border-box;padding:.8em 1em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:6px;box-shadow:var(--modal-shadow-btn);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:600;line-height:1.5em;margin:.625em;padding:.625em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;text-transform:uppercase}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:hover,button.atcb-modal-btn:hover{background-color:var(--modal-btn-background-hover);box-shadow:var(--modal-shadow-btn-hover);color:var(--modal-btn-text-hover);text-decoration:none}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-background-hover);outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:6px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-background-hover);box-shadow:var(--date-btn-shadow-hover)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-background-hover);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:300;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:12.5em;overflow-wrap:anywhere}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.3em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;width:1.3em;flex:0 0 1.3em}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.5em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.3em;padding:.5em;background:var(--checkmark-background);border-radius:100%;height:1.5em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button.atcb-single:focus .atcb-checkmark,.atcb-button.atcb-single:hover .atcb-checkmark{top:-.77em;right:-.17em}.atcb-checkmark svg{height:100%;fill:currentcolor;width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon .atcb-icon-apple svg{fill:currentcolor}.atcb-icon .atcb-icon-ical svg{fill:currentcolor}.atcb-icon .atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon .atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon .atcb-icon-google svg,.atcb-icon .atcb-icon-msteams svg,.atcb-icon .atcb-icon-outlookcom svg{filter:var(--icon-filter)}\",\r\"3d\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--keyboard-focus:#1e90ff;--btn-background:#f5f5f5;--btn-background-hover:#fff;--btn-border:#d2d2d2;--btn-text:#333;--btn-text-hover:#000;--btn-shadow:rgba(0 0 0 / 20%) 2px 5px 18px -1px,rgba(0 0 0 / 15%) 2px 2px 10px -3px;--btn-shadow-hover:rgba(0 0 0 / 35%) 2px 5px 18px -1px,rgba(0 0 0 / 30%) 2px 2px 10px -3px;--btn-shadow-active:rgba(0 0 0 / 50%) 2px 10px 20px -2px,rgba(0 0 0 / 45%) 2px 4px 12px -3px;--btn-shadow-active-up:rgba(0 0 0 / 40%) 2px -8px 15px -2px,rgba(0 0 0 / 50%) 2px 4px 12px -3px;--list-background:#f5f5f5;--list-background-hover:#fff;--list-text:#333;--list-text-hover:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-shadow:rgba(0 0 0 / 20%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 2px 2px 10px -3px;--list-shadow-modal:rgba(0 0 0 / 60%) 3px 6px 40px -5px,rgba(0 0 0 / 60%) 3px 3px 15px -4px;--modal-text:#000;--modal-background:#f5f5f5;--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-background-hover:#fff;--modal-btn-text:#2e2e2e;--modal-btn-text-hover:#161616;--modal-btn-secondary-text:#666567;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 70%));--modal-shadow-btn:rgba(0 0 0 / 10%) 2px 3px 10px -3px,rgba(0 0 0 / 25%) 1px 1px 8px -4px;--modal-shadow-btn-hover:rgba(0 0 0 / 35%) 3px 5px 15px -2px,rgba(0 0 0 / 20%) 2px 4px 25px -6px;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-background-hover:#fff;--date-btn-shadow:rgba(0 0 0 / 40%) 1px 3px 15px -4px,rgba(0 0 0 / 20%) 1px 1px 8px -4px;--date-btn-shadow-hover:rgba(0 0 0 / 40%) 4px 6px 18px -1px,rgba(0 0 0 / 35%) 4px 5px 25px -2px;--checkmark-background:radial-gradient(circle,#fff 0,rgba(255 255 255 / 80%) 40%,rgba(255 255 255 / 0%) 70%);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-background-hover:#373737;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-text-hover:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--btn-shadow-hover:rgba(255 255 255 / 6%) -12px -5px 23px -8px,rgba(255 255 255 / 7%) -7px -5px 18px -3px,rgba(0 0 0 / 60%) 2px 5px 19px -1px,rgba(0 0 0 / 50%) 3px 3px 22px -3px;--btn-shadow-active:rgba(255 255 255 / 7%) -12px -5px 23px -8px,rgba(255 255 255 / 8%) -7px -5px 18px -3px,rgba(0 0 0 / 70%) 2px 10px 20px -1px,rgba(0 0 0 / 60%) 3px 5px 25px -3px;--btn-shadow-active-up:rgba(255 255 255 / 7%) -12px 5px 23px -8px,rgba(255 255 255 / 8%) -7px 5px 18px -3px,rgba(0 0 0 / 60%) 2px -8px 15px -1px,rgba(0 0 0 / 60%) 3px 5px 25px -3px;--list-background:#2e2e2e;--list-background-hover:#373737;--list-text:#dedede;--list-text-hover:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--list-shadow-modal:rgba(255 255 255 / 8%) -12px -5px 30px -8px,rgba(255 255 255 / 8%) -7px -5px 15px -3px,rgba(0 0 0 / 60%) 4px 6px 50px -4px,rgba(0 0 0 / 90%) 8px 12px 40px -2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-background-hover:#434246;--modal-btn-text:#dbdbdb;--modal-btn-text-hover:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 90%));--modal-shadow-btn:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 30%) 1px 2px 8px -1px;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-background-hover:#474747;--date-btn-shadow:rgba(255 255 255 / 10%) -8px -6px 20px,rgba(0 0 0 / 50%) 1px 3px 25px -8px,rgba(0 0 0 / 50%) 1px 1px 10px -3px;--checkmark-background:radial-gradient(circle,rgba(0 0 0 / 50%) 0,rgba(0 0 0 / 30%) 40%,rgba(0 0 0 / 0%) 70%);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:5px;position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:6px;box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:600;justify-content:center;line-height:1.5em;margin:0;max-width:350px;min-width:10em;padding:.65em 1em;position:relative;text-align:center;touch-action:manipulation;transform:translate3d(0,0,-12px);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text,.atcb-button:disabled{min-width:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-hover);color:var(--btn-text-hover)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){background-color:var(--btn-background-hover);z-index:15000000}.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-active);color:var(--btn-text-hover);margin:-.13em;padding:.78em 1.13em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropup,.atcb-dropoverlay){box-shadow:var(--btn-shadow-active);transform:perspective(100px) rotateX(12deg) translate3d(0,0,2px);transition:transform .1s linear}.atcb-button.atcb-active.atcb-dropup:not(.atcb-modal-style,.atcb-dropoverlay){box-shadow:var(--btn-shadow-active-up);transform:perspective(100px) rotateX(348deg) translate3d(0,0,2px);transition:transform .1s linear}.atcb-button.atcb-active.atcb-dropoverlay{transform:translate3d(0,0,0);z-index:14000090}.atcb-icon{height:1em;margin-bottom:.3em;margin-right:.8em;flex-grow:0;flex-shrink:0}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-text{overflow-wrap:anywhere}.atcb-button:disabled .atcb-text{letter-spacing:.1em}.atcb-dropdown-anchor{bottom:6px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 4px;position:absolute;transform:translate3d(0,0,0);z-index:14000090}.atcb-list{background-color:var(--list-background);border-radius:0 0 6px 6px;box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-wrapper.atcb-dropdown:not(.atcb-dropup,.atcb-dropoverlay){animation:atcb-list-slide-down .4s ease 50ms 1 normal both;opacity:0}.atcb-list-wrapper.atcb-dropup:not(.atcb-dropoverlay){animation:atcb-list-slide-up .4s ease 50ms 1 normal both;opacity:0}.atcb-list-wrapper.atcb-dropoverlay{transform:translate3d(0,0,2px);z-index:15000000;animation:atcb-list-slide-center .3s ease 0s 1 normal both;opacity:0}@keyframes atcb-list-slide-down{0%{opacity:0;transform:rotateX(70deg);transform-origin:top}100%{opacity:1;transform:rotateX(0);transform-origin:top}}@keyframes atcb-list-slide-up{0%{opacity:0;transform:rotateX(70deg);transform-origin:bottom}100%{opacity:1;transform:rotateX(0);transform-origin:bottom}}@keyframes atcb-list-slide-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:.8em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-background-hover);color:var(--list-text-hover)}.atcb-list-item:focus-visible{background-color:var(--list-background-hover);color:var(--keyboard-focus);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 6px 6px}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:1.5em}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:6px 6px 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:6px}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:1.5em}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:.8em}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:6px}.atcb-list.atcb-modal{box-shadow:var(--list-shadow-modal)}.atcb-list-item .atcb-icon{margin-bottom:.5em;margin-right:.6em;width:1.125em}.atcb-rtl .atcb-list-item .atcb-icon{margin-right:0;margin-left:.6em}.atcb-no-text .atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;min-width:250px;width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:left;user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;max-width:32em;-webkit-tap-highlight-color:transparent}.atcb-modal-box.atcb-rtl{text-align:right;direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{height:auto;fill:currentcolor;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:6px 6px 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 2em 1.3em;text-transform:uppercase;text-align:center}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2.5em 2.25em}.atcb-modal-icon+.atcb-modal-content{border-radius:6px 6px 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 6px 6px;box-sizing:border-box;padding:.8em 1em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:6px;box-shadow:var(--modal-shadow-btn);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:600;line-height:1.5em;margin:.625em;padding:.625em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;text-transform:uppercase}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:hover,button.atcb-modal-btn:hover{background-color:var(--modal-btn-background-hover);box-shadow:var(--modal-shadow-btn-hover);color:var(--modal-btn-text-hover);text-decoration:none}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-background-hover);outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:6px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-background-hover);box-shadow:var(--date-btn-shadow-hover)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-background-hover);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:300;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:12.5em;overflow-wrap:anywhere}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.3em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;width:1.3em;flex:0 0 1.3em}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.5em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.3em;padding:.5em;background:var(--checkmark-background);border-radius:100%;height:1.5em}.atcb-checkmark svg{height:100%;fill:currentcolor;width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon .atcb-icon-apple svg{fill:currentcolor}.atcb-icon .atcb-icon-ical svg{fill:currentcolor}.atcb-icon .atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon .atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon .atcb-icon-google svg,.atcb-icon .atcb-icon-msteams svg,.atcb-icon .atcb-icon-outlookcom svg{filter:var(--icon-filter)}\",\r\"flat\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--keyboard-focus:#1e90ff;--btn-background:#f5f5f5;--btn-background-hover:#fff;--btn-border:#545454;--btn-shadow:#333;--btn-text:#333;--btn-text-hover:#000;--list-background:#f5f5f5;--list-background-hover:#fff;--list-border:#545454;--list-text:#333;--list-text-hover:#000;--list-close-background:#545454;--list-close-text:#b0b0b0;--list-close-text-hover:#777;--modal-text:#000;--modal-background:#f5f5f5;--modal-btn-bar:#bababa;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-background-hover:#fff;--modal-btn-text:#2e2e2e;--modal-btn-text-hover:#161616;--modal-btn-secondary-text:#676767;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#414141;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-background-hover:#fff;--checkmark-background:radial-gradient(circle,#fff 0,rgba(255 255 255 / 80%) 40%,rgba(255 255 255 / 0%) 70%);--overlay-background:rgba(20 20 20 / 40%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#222;--btn-background-hover:#373737;--btn-border:#515151;--btn-shadow:#000;--btn-text:#dedede;--btn-text-hover:#f1f1f1;--list-background:#222;--list-background-hover:#373737;--list-border:#515151;--list-text:#dedede;--list-text-hover:#f1f1f1;--list-close-background:#111;--list-close-text:#777;--list-close-text-hover:#f1f1f1;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#313131;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-background-hover:#434246;--modal-btn-text:#dbdbdb;--modal-btn-text-hover:#fff;--modal-btn-secondary-text:#b8b8b8;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#414141;--date-btn-cal-background:#c7c7cd;--date-btn-background:#2d2d2d;--date-btn-background-hover:#474747;--checkmark-background:radial-gradient(circle,rgba(0 0 0 / 50%) 0,rgba(0 0 0 / 30%) 40%,rgba(0 0 0 / 0%) 70%);--overlay-background:rgba(20 20 20 / 75%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:5px;position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:.2em solid var(--btn-border);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:600;justify-content:center;line-height:1.5em;margin:0;max-width:350px;min-width:10em;padding:.8em 1.2em;top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text,.atcb-button:disabled{min-width:0}.atcb-button.atcb-click:not([disabled]){top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-background-hover);top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow);color:var(--btn-text-hover)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-background-hover);top:-5px;left:-5px;box-shadow:5px 5px 0 0 var(--btn-shadow);color:var(--btn-text-hover)}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{height:1em;margin-right:1em;line-height:1em;flex-grow:0;flex-shrink:0}.atcb-rtl .atcb-icon{margin-right:0;margin-left:1em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-icon-trigger svg{display:none}.atcb-button .atcb-icon-trigger::after{content:\\\"+\\\";font-size:1.5em}.atcb-text{overflow-wrap:anywhere}.atcb-button:disabled .atcb-text{letter-spacing:.1em}.atcb-dropdown-anchor{bottom:0;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 2px 0 6px;position:absolute;z-index:16000090}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(150px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-150px)}100%{opacity:1;transform:translateY(0)}}.atcb-list{background:var(--list-close-background);box-sizing:border-box;border:.15em solid var(--list-border);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:.8em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-background-hover);color:var(--list-text-hover)}.atcb-list-item:focus-visible{background-color:var(--list-background-hover);color:var(--keyboard-focus);font-weight:600;outline:0}.atcb-dropup .atcb-list-item:last-child{border-bottom-width:0}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{border-top-width:0}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{border-top-width:.15em}.atcb-list-item .atcb-icon{margin-bottom:.1em;margin-right:.6em;width:1.125em}.atcb-rtl .atcb-list-item .atcb-icon{margin-right:0;margin-left:.6em}.atcb-no-text .atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item.atcb-list-item-close:hover{color:var(--list-close-text-hover)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;min-width:250px;width:auto;position:relative;z-index:14000090}.atcb-modal-box{border:.15em solid var(--btn-border);background-color:var(--modal-background);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:left;user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;max-width:32em;-webkit-tap-highlight-color:transparent}.atcb-modal-box.atcb-rtl{text-align:right;direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;padding:1.75em;margin:auto}.atcb-modal-icon svg{height:auto;fill:currentcolor;width:100%}.atcb-modal-headline{font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 2em 1.3em;text-transform:uppercase;text-align:center}.atcb-modal-icon+.atcb-modal-headline{padding-top:0}.atcb-modal-content{font-size:1em;padding:.3em 2.5em 2.25em}.atcb-modal-icon+.atcb-modal-content{border-radius:6px 6px 0 0;padding-top:0}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);box-sizing:border-box;padding:.8em 1em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{border:.2em solid var(--btn-border);background-color:var(--modal-btn-secondary-background);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:600;line-height:1.5em;margin:.625em;padding:.625em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;text-transform:uppercase;top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow)}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:hover,button.atcb-modal-btn:hover{background-color:var(--modal-btn-background-hover);color:var(--modal-btn-text-hover);text-decoration:none;top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-background-hover);outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn{border:.15em solid var(--btn-border);display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;background-color:var(--date-btn-background);padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;top:0;left:0;box-shadow:0 0 0 0 var(--btn-shadow)}.atcb-subevent-btn:hover{align-items:center;top:-3px;left:-3px;box-shadow:3px 3px 0 0 var(--btn-shadow)}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-background-hover)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-background-hover);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:300;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:12.5em;overflow-wrap:anywhere}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.3em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;width:1.3em;flex:0 0 1.3em}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.5em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.3em;padding:.5em;background:var(--checkmark-background);border-radius:100%;height:1.5em}.atcb-checkmark svg{height:100%;fill:currentcolor;width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon .atcb-icon-apple svg{fill:currentcolor}.atcb-icon .atcb-icon-ical svg{fill:currentcolor}.atcb-icon .atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon .atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon .atcb-icon-google svg,.atcb-icon .atcb-icon-msteams svg,.atcb-icon .atcb-icon-outlookcom svg{filter:var(--icon-filter)}\",\r\"round\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--keyboard-focus:#1e90ff;--btn-background:#f5f5f5;--btn-background-hover:#fff;--btn-border:#d2d2d2;--btn-text:#333;--btn-text-hover:#000;--btn-shadow:rgba(0 0 0 / 20%) 2px 5px 18px -1px,rgba(0 0 0 / 15%) 2px 2px 10px -3px;--btn-shadow-hover:rgba(0 0 0 / 35%) 2px 5px 18px -1px,rgba(0 0 0 / 30%) 2px 2px 10px -3px;--btn-shadow-active:rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 45%) 2px 2px 10px -3px;--list-background:#f5f5f5;--list-background-hover:#fff;--list-text:#333;--list-text-hover:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-shadow:rgba(0 0 0 / 20%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 2px 2px 10px -3px;--list-shadow-modal:rgba(0 0 0 / 60%) 3px 6px 40px -5px,rgba(0 0 0 / 60%) 3px 3px 15px -4px;--modal-text:#000;--modal-background:#f5f5f5;--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-background-hover:#fff;--modal-btn-text:#2e2e2e;--modal-btn-text-hover:#161616;--modal-btn-secondary-text:#666567;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 70%));--modal-shadow-btn:rgba(0 0 0 / 10%) 2px 3px 10px -3px,rgba(0 0 0 / 25%) 1px 1px 8px -4px;--modal-shadow-btn-hover:rgba(0 0 0 / 35%) 3px 5px 15px -2px,rgba(0 0 0 / 20%) 2px 4px 25px -6px;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-background-hover:#fff;--date-btn-shadow:rgba(0 0 0 / 40%) 1px 3px 15px -4px,rgba(0 0 0 / 20%) 1px 1px 8px -4px;--date-btn-shadow-hover:rgba(0 0 0 / 40%) 4px 6px 18px -1px,rgba(0 0 0 / 35%) 4px 5px 25px -2px;--checkmark-background:radial-gradient(circle,#fff 0,rgba(255 255 255 / 80%) 40%,rgba(255 255 255 / 0%) 70%);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-background-hover:#373737;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-text-hover:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--btn-shadow-hover:rgba(255 255 255 / 6%) -12px -5px 23px -8px,rgba(255 255 255 / 7%) -7px -5px 18px -3px,rgba(0 0 0 / 60%) 2px 5px 19px -1px,rgba(0 0 0 / 50%) 3px 3px 22px -3px;--btn-shadow-active:rgba(255 255 255 / 7%) -12px -5px 23px -8px,rgba(255 255 255 / 8%) -7px -5px 18px -3px,rgba(0 0 0 / 70%) 2px 5px 19px -1px,rgba(0 0 0 / 60%) 3px 3px 22px -3px;--list-background:#2e2e2e;--list-background-hover:#373737;--list-text:#dedede;--list-text-hover:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--list-shadow-modal:rgba(255 255 255 / 8%) -12px -5px 30px -8px,rgba(255 255 255 / 8%) -7px -5px 15px -3px,rgba(0 0 0 / 60%) 4px 6px 50px -4px,rgba(0 0 0 / 90%) 8px 12px 40px -2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-background-hover:#434246;--modal-btn-text:#dbdbdb;--modal-btn-text-hover:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 90%));--modal-shadow-btn:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 30%) 1px 2px 8px -1px;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-background-hover:#474747;--date-btn-shadow:rgba(255 255 255 / 10%) -8px -6px 20px,rgba(0 0 0 / 50%) 1px 3px 25px -8px,rgba(0 0 0 / 50%) 1px 1px 10px -3px;--checkmark-background:radial-gradient(circle,rgba(0 0 0 / 50%) 0,rgba(0 0 0 / 30%) 40%,rgba(0 0 0 / 0%) 70%);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:5px;position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:1px solid var(--btn-border);border-radius:500px;box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:600;justify-content:center;line-height:1.5em;margin:.13em;max-width:350px;min-width:10em;padding:.65em 1.3em;position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text{min-width:0;border-radius:100%;display:flex;align-content:center;justify-content:center;align-items:center;height:3em;width:3em;padding:0}.atcb-button:disabled{min-width:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-hover);color:var(--btn-text-hover);margin:0;padding:.78em 1.43em}.atcb-button.atcb-no-text:focus,.atcb-button.atcb-no-text:hover{height:3.26em;width:3.26em;padding:0}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-no-text),.atcb-button.atcb-single:not(.atcb-no-text,[disabled]):focus,.atcb-button.atcb-single:not(.atcb-no-text,[disabled]):hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-active);color:var(--btn-text-hover);margin:0;padding:.78em 1.43em}.atcb-button.atcb-active.atcb-no-text:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single.atcb-no-text:not([disabled]):focus,.atcb-button.atcb-single.atcb-no-text:not([disabled]):hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-active);color:var(--btn-text-hover);margin:0;padding:.93em 1.43em}.atcb-button.atcb-dropup::after,.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup,.atcb-no-text)::before{content:\\\"\\\";width:0;height:0;position:absolute;left:0;right:0;margin:0 auto;transition:border-width .1s linear .1s}.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup,.atcb-no-text)::before{top:100%;border:0 solid transparent;border-bottom:none;border-top-color:var(--btn-background-hover)}.atcb-button.atcb-dropup::after{bottom:100%;border:0 solid transparent;border-top:none;border-bottom-color:var(--btn-background-hover)}.atcb-button.atcb-active.atcb-dropup::after,.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup,.atcb-no-text)::before{border-width:.35em}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{height:1em;margin-bottom:.3em;margin-right:.8em;flex-grow:0;flex-shrink:0}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-text{overflow-wrap:anywhere}.atcb-button:disabled .atcb-text{letter-spacing:.1em}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;position:absolute;z-index:14000090;min-width:12.5em;width:auto}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{animation:list-entrance-center .2s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list{border-radius:11px;box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:.8em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-background-hover);color:var(--list-text-hover)}.atcb-list-item:focus-visible{background-color:var(--list-background-hover);color:var(--keyboard-focus);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 11px 11px}.atcb-list-item:first-child{border-radius:11px 11px 0 0}.atcb-list-item:only-child{border-radius:11px}.atcb-list.atcb-modal{box-shadow:var(--list-shadow-modal)}.atcb-list-item .atcb-icon{margin-bottom:.5em;margin-right:.6em;width:1.125em}.atcb-rtl .atcb-list-item .atcb-icon{margin-right:0;margin-left:.6em}.atcb-no-text .atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;min-width:250px;width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:left;user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;max-width:32em;-webkit-tap-highlight-color:transparent}.atcb-modal-box.atcb-rtl{text-align:right;direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{height:auto;fill:currentcolor;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:9px 9px 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 2em 1.3em;text-transform:uppercase;text-align:center}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2.5em 2.25em}.atcb-modal-icon+.atcb-modal-content{border-radius:9px 9px 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 9px 9px;box-sizing:border-box;padding:.8em 1em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:500px;box-shadow:var(--modal-shadow-btn);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:600;line-height:1.5em;margin:.625em;padding:.625em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;text-transform:uppercase}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:hover,button.atcb-modal-btn:hover{background-color:var(--modal-btn-background-hover);box-shadow:var(--modal-shadow-btn-hover);color:var(--modal-btn-text-hover);text-decoration:none}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-background-hover);outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:6px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-background-hover);box-shadow:var(--date-btn-shadow-hover)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-background-hover);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:300;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:12.5em;overflow-wrap:anywhere}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.3em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;width:1.3em;flex:0 0 1.3em}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.5em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.3em;padding:.5em;background:var(--checkmark-background);border-radius:100%;height:1.5em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button:focus .atcb-checkmark,.atcb-button:hover .atcb-checkmark{top:-.77em;right:-.17em}.atcb-checkmark svg{height:100%;fill:currentcolor;width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon .atcb-icon-apple svg{fill:currentcolor}.atcb-icon .atcb-icon-ical svg{fill:currentcolor}.atcb-icon .atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon .atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon .atcb-icon-google svg,.atcb-icon .atcb-icon-msteams svg,.atcb-icon .atcb-icon-outlookcom svg{filter:var(--icon-filter)}\",\r\"neumorphism\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--keyboard-focus:#1e90ff;--btn-background:#f5f5f5;--btn-background-hover:#fff;--btn-text:#444;--btn-text-hover:#111;--btn-shadow:rgba(40 40 40 / 30%) 0.3em 0.3em 0.6em,rgba(255 255 255 / 70%) -0.1em -0.1em 0.3em;--btn-shadow-hover:rgba(40 40 40 / 50%) 0.4em 0.4em 0.8em,rgba(255 255 255 / 90%) -0.2em -0.2em 0.5em;--btn-shadow-active:inset rgba(40 40 40 / 40%) 0.15em 0.15em 0.3em,inset rgba(255 255 255 / 90%) -0.2em -0.2em 0.5em;--list-background:#f5f5f5;--list-background-hover:#fff;--list-text:#444;--list-text-hover:#111;--list-close-background:#e5e5e5;--list-close-text:#777;--list-shadow:rgba(40 40 40 / 30%) 0.4em 0.4em 0.8em,rgba(255 255 255 / 80%) -0.2em -0.2em 0.5em;--modal-text:#111;--modal-background:#f5f5f5;--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-background-hover:#fff;--modal-btn-text:#2e2e2e;--modal-btn-text-hover:#222;--modal-btn-secondary-text:#666567;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 70%));--modal-shadow-btn:rgba(40 40 40 / 15%) 0.2em 0.2em 0.4em,rgba(255 255 255 / 30%) -0.1em -0.1em 0.3em;--modal-shadow-btn-hover:rgba(40 40 40 / 40%) 0.4em 0.4em 0.7em,rgba(255 255 255 / 70%) -0.2em -0.2em 0.5em;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#e3e5ea;--date-btn-background-hover:#fff;--date-btn-shadow:rgba(40 40 40 / 40%) 0.2em 0.2em 0.8em,rgba(255 255 255 / 80%) -0.2em -0.2em 0.4em;--date-btn-shadow-hover:rgba(40 40 40 / 50%) 0.3em 0.4em 1em,rgba(255 255 255) -0.3em -0.3em 0.7em;--checkmark-background:radial-gradient(circle, #fff 0, rgba(255 255 255 / 80%) 40%, rgba(255 255 255 / 0%) 70%);--overlay-background:#dcdcdc;--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-background-hover:#373737;--btn-text:#dedede;--btn-text-hover:#f1f1f1;--btn-shadow:rgba(0 0 0 / 70%) 0.3em 0.3em 0.6em,rgba(230 230 230 / 30%) -0.05em -0.05em 0.4em;--btn-shadow-hover:rgba(0 0 0 / 80%) 0.4em 0.4em 0.9em,rgba(230 230 230 / 35%) -0.08em -0.08em 0.5em;--btn-shadow-active:inset rgba(0 0 0 / 80%) 0.15em 0.15em 0.25em,inset rgba(230 230 230 / 15%) -0.2em -0.2em 0.6em;--list-background:#2e2e2e;--list-background-hover:#373737;--list-text:#dedede;--list-text-hover:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(0 0 0) 0.3em 0.3em 1em,rgba(230 230 230 / 40%) -0.08em -0.08em 0.6em;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-background-hover:#434246;--modal-btn-text:#dbdbdb;--modal-btn-text-hover:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-shadow:drop-shadow(5px 8px 35px rgba(0 0 0 / 90%));--modal-shadow-btn:rgba(0 0 0 / 60%) 0.2em 0.2em 0.6em,rgba(230 230 230 / 15%) -0.1em -0.1em 0.4em;--modal-shadow-btn-hover:rgba(0 0 0 / 80%) 0.3em 0.3em 0.8em,rgba(230 230 230 / 15%) -0.1em -0.1em 0.6em;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-background-hover:#474747;--date-btn-shadow:rgba(0 0 0 / 70%) 0.2em 0.2em 0.8em,rgba(230 230 230 / 15%) -0.1em -0.1em 0.5em;--date-btn-shadow-hover:rgba(0 0 0) 0.3em 0.4em 1em,rgba(230 230 230 / 15%) -0.2em -0.2em 0.8em;--checkmark-background:radial-gradient(circle, rgba(0 0 0 / 50%) 0, rgba(0 0 0 / 30%) 40%, rgba(0 0 0 / 0%) 70%);--overlay-background:#141414;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:5px;position:relative}.atcb-button{align-items:center;background-color:var(--btn-background);border:0;border-radius:15px;box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:600;justify-content:center;line-height:1.5em;margin:0;max-width:350px;min-width:10em;padding:1em 1.2em;position:relative;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;transition:box-shadow .1s ease-in-out,background-color .1s ease-in-out;z-index:1}.atcb-button.atcb-no-text{min-width:0;border-radius:100%;display:flex;align-content:center;justify-content:center;align-items:center;height:3em;width:3em;padding:0}.atcb-button:disabled{min-width:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-hover);color:var(--btn-text-hover)}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-active);color:var(--btn-text-hover)}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{height:1em;margin-bottom:.3em;margin-right:.8em;flex-grow:0;flex-shrink:0}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-text{overflow-wrap:anywhere}.atcb-button:disabled .atcb-text{letter-spacing:.1em}.atcb-dropdown-anchor{bottom:-30px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;position:absolute;min-width:12.5em;width:auto;animation:list-entrance .6s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance{0%{opacity:0}100%{opacity:1}}.atcb-list{border-radius:11px;box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{box-shadow:none;align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:1em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:box-shadow .15s ease-in-out,padding .15s ease-in-out,margin .15s ease-in-out}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{box-shadow:var(--btn-shadow);background-color:var(--list-background-hover);color:var(--list-text-hover);padding:1.2em;margin:-.2em;position:relative;z-index:15000010}.atcb-list-item:focus-visible{box-shadow:var(--btn-shadow);background-color:var(--list-background-hover);color:var(--keyboard-focus);padding:1.2em;margin:-.2em;position:relative;z-index:15000010;font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 11px 11px}.atcb-list-item:first-child{border-radius:11px 11px 0 0}.atcb-list-item:only-child{border-radius:11px}.atcb-list-item .atcb-icon{margin-bottom:.5em;margin-right:.6em;width:1.125em}.atcb-rtl .atcb-list-item .atcb-icon{margin-right:0;margin-left:.6em}.atcb-no-text .atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;min-width:250px;width:auto;position:relative;z-index:14000090}.atcb-modal-box{animation:list-entrance .6s ease 0s 1 normal forwards;filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:left;user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;max-width:32em;-webkit-tap-highlight-color:transparent}.atcb-modal-box.atcb-rtl{text-align:right;direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{height:auto;fill:currentcolor;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:9px 9px 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 2em 1.3em;text-transform:uppercase;text-align:center}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2.5em 2.25em}.atcb-modal-icon+.atcb-modal-content{border-radius:6px 6px 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 9px 9px;box-sizing:border-box;padding:.8em 1em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:13px;box-shadow:var(--modal-shadow-btn);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:600;line-height:1.5em;margin:.625em;padding:.625em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;text-transform:uppercase}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:hover,button.atcb-modal-btn:hover{background-color:var(--modal-btn-background-hover);box-shadow:var(--modal-shadow-btn-hover);color:var(--modal-btn-text-hover);text-decoration:none}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-background-hover);outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:6px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-background-hover);box-shadow:var(--date-btn-shadow-hover)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-background-hover);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:300;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:12.5em;overflow-wrap:anywhere}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.3em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;width:1.3em;flex:0 0 1.3em}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.5em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.3em;padding:.5em;background:var(--checkmark-background);border-radius:100%;height:1.5em}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay) .atcb-checkmark,.atcb-button.atcb-single:focus .atcb-checkmark,.atcb-button.atcb-single:hover .atcb-checkmark{top:-.77em;right:-.17em}.atcb-checkmark svg{height:100%;fill:currentcolor;width:auto}#atcb-bgoverlay{background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .1s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon .atcb-icon-apple svg{fill:currentcolor}.atcb-icon .atcb-icon-ical svg{fill:currentcolor}.atcb-icon .atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon .atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon .atcb-icon-google svg,.atcb-icon .atcb-icon-msteams svg,.atcb-icon .atcb-icon-outlookcom svg{filter:var(--icon-filter)}\",\r\"text\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--keyboard-focus:#1e90ff;--btn-underline:#a9ceff;--btn-border:#a8a8a8;--btn-background:#f5f5f5;--btn-background-hover:#fff;--btn-text:#333;--btn-text-hover:#000;--btn-text-shadow:#fff;--list-background:#f5f5f5;--list-background-hover:#fff;--list-text:#333;--list-text-hover:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-shadow:rgba(0 0 0 / 20%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 2px 2px 10px -3px;--list-shadow-modal:rgba(0 0 0 / 60%) 3px 6px 40px -5px,rgba(0 0 0 / 60%) 3px 3px 15px -4px;--modal-text:#000;--modal-background:#f5f5f5;--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-background-hover:#fff;--modal-btn-text:#2e2e2e;--modal-btn-text-hover:#161616;--modal-btn-secondary-text:#666567;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 70%));--modal-shadow-btn:rgba(0 0 0 / 10%) 2px 3px 10px -3px,rgba(0 0 0 / 25%) 1px 1px 8px -4px;--modal-shadow-btn-hover:rgba(0 0 0 / 35%) 3px 5px 15px -2px,rgba(0 0 0 / 20%) 2px 4px 25px -6px;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-background-hover:#fff;--date-btn-shadow:rgba(0 0 0 / 40%) 1px 3px 15px -4px,rgba(0 0 0 / 20%) 1px 1px 8px -4px;--date-btn-shadow-hover:rgba(0 0 0 / 40%) 4px 6px 18px -1px,rgba(0 0 0 / 35%) 4px 5px 25px -2px;--checkmark-background:radial-gradient(circle,rgba(255 255 255 / 80%) 0,rgba(255 255 255 / 60%) 40%,rgba(255 255 255 / 0%) 70%);--overlay-background:rgba(200 200 200 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-underline:#336db9;--btn-border:#888;--btn-background:#2e2e2e;--btn-background-hover:#373737;--btn-text:#dedede;--btn-text-hover:#fff;--btn-text-shadow:#000;--list-background:#2e2e2e;--list-background-hover:#373737;--list-text:#dedede;--list-text-hover:#fff;--list-close-background:#282828;--list-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--list-shadow-modal:rgba(255 255 255 / 8%) -12px -5px 30px -8px,rgba(255 255 255 / 8%) -7px -5px 15px -3px,rgba(0 0 0 / 60%) 4px 6px 50px -4px,rgba(0 0 0 / 90%) 8px 12px 40px -2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-background-hover:#434246;--modal-btn-text:#dbdbdb;--modal-btn-text-hover:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 90%));--modal-shadow-btn:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 30%) 1px 2px 8px -1px;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-background-hover:#474747;--date-btn-shadow:rgba(255 255 255 / 10%) -8px -6px 20px,rgba(0 0 0 / 50%) 1px 3px 25px -8px,rgba(0 0 0 / 50%) 1px 1px 10px -3px;--checkmark-background:radial-gradient(circle,rgba(0 0 0 / 40%) 0,rgba(0 0 0 / 20%) 40%,rgba(0 0 0 / 0%) 70%);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(0.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:5px;position:relative}.atcb-button{background-image:linear-gradient(120deg,var(--btn-underline) 0,var(--btn-underline) 100%);background-repeat:no-repeat;background-size:100% 10%;background-position:0 100%;background-color:transparent;border:0;border-radius:0;transition:background-size .1s ease-in,border-radius .2s ease-in;align-items:center;color:var(--btn-text);cursor:pointer;display:flex;font-family:var(--font);font-size:1em;font-weight:600;justify-content:center;line-height:1.2em;margin:0 .2em;padding:.75em;position:relative;text-align:left;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;width:auto;z-index:1}.atcb-button.atcb-no-text,.atcb-button:disabled{min-width:0}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-button:not([disabled]):focus,.atcb-button:not([disabled]):hover{background-size:100% 100%;color:var(--btn-text-hover);text-shadow:0 0 .7em var(--btn-text-shadow);border-radius:21px}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay){z-index:15000000}.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay),.atcb-button.atcb-single:not([disabled]):focus,.atcb-button.atcb-single:not([disabled]):hover{background-size:100% 10%;border-radius:3px 3px 11px 11px;background-position:0 0;background-color:var(--btn-background);color:var(--btn-text);text-shadow:none}.atcb-button.atcb-active.atcb-dropup{background-position:0 100%;border-radius:11px 11px 3px 3px}.atcb-button.atcb-dropup::after,.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{content:\\\"\\\";width:0;height:0;position:absolute;left:0;right:0;margin:0 auto;transition:border-width .1s linear .1s}.atcb-button:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{top:100%;border:0 solid transparent;border-bottom:none;border-top-color:var(--btn-background)}.atcb-button.atcb-dropup::after{bottom:100%;border:0 solid transparent;border-top:none;border-bottom-color:var(--btn-background)}.atcb-button.atcb-active.atcb-dropup::after,.atcb-button.atcb-active:not(.atcb-modal-style,.atcb-dropoverlay,.atcb-dropup)::before{border-width:.35em}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-icon{height:1em;margin-right:1em;line-height:1em;flex-grow:0;flex-shrink:0}.atcb-rtl .atcb-icon{margin-right:0;margin-left:1em}.atcb-no-text .atcb-icon{margin-right:0;margin-left:0}.atcb-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-icon-trigger svg{display:none}.atcb-button .atcb-icon-trigger::after{content:\\\"+\\\";font-size:1.5em}.atcb-text{overflow-wrap:anywhere}.atcb-button:disabled .atcb-text{letter-spacing:.1em}.atcb-dropdown-anchor{bottom:-15px;height:0;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;position:absolute;z-index:14000090;min-width:12.5em;width:auto}.atcb-list-wrapper:not(.atcb-dropup,.atcb-dropoverlay){animation:list-entrance-bottom .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropup{animation:list-entrance-top .2s ease 0s 1 normal forwards}.atcb-list-wrapper.atcb-dropoverlay{animation:list-entrance-center .2s ease 0s 1 normal forwards;z-index:15000000}@keyframes list-entrance-bottom{0%{opacity:0;transform:translateY(250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-top{0%{opacity:0;transform:translateY(-250px)}100%{opacity:1;transform:translateY(0)}}@keyframes list-entrance-center{0%{opacity:0;transform:scaleY(1)}1%{opacity:1;transform:scaleY(0)}100%{opacity:1;transform:scaleY(1)}}.atcb-list{border-radius:11px;box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:.8em 1em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-background-hover);color:var(--list-text-hover)}.atcb-list-item:focus-visible{background-color:var(--list-background-hover);color:var(--keyboard-focus);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 11px 11px}.atcb-list-item:first-child{border-radius:11px 11px 0 0}.atcb-list-item:only-child{border-radius:11px}.atcb-list.atcb-modal{box-shadow:var(--list-shadow-modal)}.atcb-list-item .atcb-icon{margin-bottom:.1em;margin-right:.7em;width:1.125em}.atcb-rtl .atcb-list-item .atcb-icon{margin-right:0;margin-left:.7em}.atcb-no-text .atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;min-width:250px;width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:left;user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;max-width:32em;-webkit-tap-highlight-color:transparent}.atcb-modal-box.atcb-rtl{text-align:right;direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{height:auto;fill:currentcolor;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:9px 9px 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 2em 1.3em;text-transform:uppercase;text-align:center}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2.5em 2.25em}.atcb-modal-icon+.atcb-modal-content{border-radius:9px 9px 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 9px 9px;box-sizing:border-box;padding:.8em 1em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:21px;box-shadow:var(--modal-shadow-btn);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:600;line-height:1.5em;margin:.625em;padding:.625em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;text-transform:uppercase}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:hover,button.atcb-modal-btn:hover{background-color:var(--modal-btn-background-hover);box-shadow:var(--modal-shadow-btn-hover);color:var(--modal-btn-text-hover);text-decoration:none}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-background-hover);outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:6px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-background-hover);box-shadow:var(--date-btn-shadow-hover)}.atcb-subevent-btn:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-background-hover);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:300;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:12.5em;overflow-wrap:anywhere}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.3em;box-sizing:border-box}.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;width:1.3em;flex:0 0 1.3em}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.5em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.3em;padding:.5em;background:var(--checkmark-background);border-radius:100%;height:1.5em}.atcb-checkmark svg{height:100%;fill:currentcolor;width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon .atcb-icon-apple svg{fill:var(--btn-text)}.atcb-icon .atcb-icon-ical svg{fill:var(--btn-text)}.atcb-icon .atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon .atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon .atcb-icon-google svg,.atcb-icon .atcb-icon-msteams svg,.atcb-icon .atcb-icon-outlookcom svg{filter:var(--icon-filter)}\",\r\"date\": \":host{width:fit-content;--base-font-size-l:16px;--base-font-size-m:16px;--base-font-size-s:16px;--font:arial,helvetica,sans-serif;--keyboard-focus:#1e90ff;--btn-background:#f5f5f5;--btn-background-hover:#fff;--btn-border:#d2d2d2;--btn-text:#333;--btn-text-hover:#000;--btn-shadow:rgba(0 0 0 / 20%) 2px 5px 18px -1px,rgba(0 0 0 / 15%) 2px 2px 10px -3px;--btn-shadow-hover:rgba(0 0 0 / 30%) 2px 5px 18px -1px,rgba(0 0 0 / 25%) 2px 2px 10px -3px;--list-background:#f5f5f5;--list-background-hover:#fff;--list-text:#333;--list-text-hover:#000;--list-close-background:#e5e5e5;--list-close-text:#777;--list-shadow:rgba(0 0 0 / 20%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 2px 2px 10px -3px;--list-shadow-modal:rgba(0 0 0 / 60%) 3px 6px 40px -5px,rgba(0 0 0 / 60%) 3px 3px 15px -4px;--modal-text:#000;--modal-background:#f5f5f5;--modal-btn-bar:#c6c8cd;--modal-btn-background:#f5f5f5;--modal-btn-secondary-background:#e2e1e6;--modal-btn-background-hover:#fff;--modal-btn-text:#2e2e2e;--modal-btn-text-hover:#161616;--modal-btn-secondary-text:#666567;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 70%));--modal-shadow-btn:rgba(0 0 0 / 10%) 2px 3px 10px -3px,rgba(0 0 0 / 25%) 1px 1px 8px -4px;--modal-shadow-btn-hover:rgba(0 0 0 / 35%) 3px 5px 15px -2px,rgba(0 0 0 / 20%) 2px 4px 25px -6px;--date-btn-text:#1d1d1e;--date-btn-text-secondary:#3a3a3f;--date-btn-cal-day-text:#fff;--date-btn-cal-month-text:#d3d2d7;--date-btn-cal-background:#313132;--date-btn-background:#eae9ed;--date-btn-background-hover:#fff;--date-btn-shadow:rgba(0 0 0 / 40%) 1px 3px 15px -4px,rgba(0 0 0 / 20%) 1px 1px 8px -4px;--date-btn-shadow-hover:rgba(0 0 0 / 40%) 4px 6px 18px -1px,rgba(0 0 0 / 35%) 4px 5px 25px -2px;--checkmark-background:radial-gradient(circle,#fff 0,rgba(255 255 255 / 80%) 40%,rgba(255 255 255 / 0%) 70%);--overlay-background:rgba(20 20 20 / 25%);--overlay-cursor:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23777' width='16' height='16' viewBox='0 0 122.878 122.88'%3E%3Cpath d='M1.426 8.313a4.87 4.87 0 0 1 0-6.886 4.87 4.87 0 0 1 6.886 0l53.127 53.127 53.127-53.127a4.87 4.87 0 0 1 6.887 0 4.87 4.87 0 0 1 0 6.886L68.324 61.439l53.128 53.128a4.87 4.87 0 0 1-6.887 6.886L61.438 68.326 8.312 121.453a4.87 4.87 0 0 1-6.886 0 4.87 4.87 0 0 1 0-6.886l53.127-53.128L1.426 8.313h0z'/%3E%3C/svg%3E\\\") 16 16,crosshair;--icon-ms365-color:#ea3e23;--icon-yahoo-color:#5f01d1;--icon-filter:none}:host(.atcb-dark){--btn-background:#2e2e2e;--btn-background-hover:#474747;--btn-border:#4d4d4d;--btn-text:#dedede;--btn-text-hover:#f1f1f1;--btn-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--btn-shadow-hover:rgba(255 255 255 / 6%) -12px -5px 23px -8px,rgba(255 255 255 / 7%) -7px -5px 18px -3px,rgba(0 0 0 / 60%) 2px 5px 19px -1px,rgba(0 0 0 / 50%) 3px 3px 22px -3px;--list-background:#2e2e2e;--list-background-hover:#474747;--list-text:#dedede;--list-text-hover:#f1f1f1;--list-close-background:#282828;--list-shadow:rgba(255 255 255 / 5%) -12px -5px 20px -8px,rgba(255 255 255 / 6%) -7px -5px 15px -3px,rgba(0 0 0 / 50%) 2px 5px 18px -1px,rgba(0 0 0 / 40%) 3px 3px 20px -3px;--list-shadow-modal:rgba(255 255 255 / 8%) -12px -5px 30px -8px,rgba(255 255 255 / 8%) -7px -5px 15px -3px,rgba(0 0 0 / 60%) 4px 6px 50px -4px,rgba(0 0 0 / 90%) 8px 12px 40px -2px;--modal-text:#f1f1f1;--modal-background:#242424;--modal-btn-bar:#38383a;--modal-btn-background:#181819;--modal-btn-secondary-background:#2e2d30;--modal-btn-background-hover:#434246;--modal-btn-text:#dbdbdb;--modal-btn-text-hover:#fff;--modal-btn-secondary-text:#b8b8b8;--modal-shadow:drop-shadow(5px 8px 30px rgba(0 0 0 / 90%));--modal-shadow-btn:rgba(255 255 255 / 5%) -2px -2px 10px,rgba(0 0 0 / 30%) 1px 2px 8px -1px;--date-btn-text:#ebebf0;--date-btn-text-secondary:#b5b5bd;--date-btn-cal-day-text:#101010;--date-btn-cal-month-text:#3e3e3f;--date-btn-cal-background:#c7c7cd;--date-btn-background:#363636;--date-btn-background-hover:#474747;--date-btn-shadow:rgba(255 255 255 / 10%) -8px -6px 20px,rgba(0 0 0 / 50%) 1px 3px 25px -8px,rgba(0 0 0 / 50%) 1px 1px 10px -3px;--checkmark-background:radial-gradient(circle,rgba(0 0 0 / 50%) 0,rgba(0 0 0 / 30%) 40%,rgba(0 0 0 / 0%) 70%);--overlay-background:rgba(20 20 20 / 60%);--icon-ms365-color:#ea3e23;--icon-yahoo-color:#bebebe;--icon-filter:grayscale(.2)}.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-l)}@media (width <= 991px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-m)}}@media (width <= 575px){.atcb-button-wrapper,.atcb-list,.atcb-modal-box{font-size:var(--base-font-size-s)}}.atcb-button-wrapper{display:block;padding:5px;position:relative}.atcb-button,.atcb-subevent-btn{display:flex;align-items:flex-start;cursor:pointer;font-family:var(--font);font-size:1em;box-shadow:var(--date-btn-shadow);background-color:var(--date-btn-background);border:0;border-radius:6px;padding:0;margin:0;touch-action:manipulation;position:relative;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.atcb-button{box-shadow:var(--btn-shadow);min-width:17.5em;max-width:16em;position:relative;z-index:1}.atcb-rtl .atcb-button{direction:rtl;text-align:right}.atcb-button:hover,.atcb-subevent-btn:hover{align-items:center}.atcb-subevent-btn:focus,.atcb-subevent-btn:hover{background-color:var(--date-btn-background-hover);box-shadow:var(--date-btn-shadow-hover)}.atcb-button:focus,.atcb-button:hover{background-color:var(--btn-background-hover);box-shadow:var(--btn-shadow-hover)}.atcb-button:focus-visible,.atcb-subevent-btn:focus-visible{outline:2px solid var(--keyboard-focus)}.atcb-button.atcb-active.atcb-dropoverlay{z-index:14000090}.atcb-subevent-btn+.atcb-subevent-btn{margin-top:30px}.atcb-date-btn-left{border-radius:4px 0 0 4px;align-self:stretch;background-color:var(--date-btn-cal-background);color:var(--date-btn-background-hover);padding:.7em .8em .8em;width:2.7em;align-items:center;display:flex;flex-direction:column}.atcb-rtl .atcb-date-btn-left{border-radius:0 4px 4px 0}.atcb-button:hover .atcb-date-btn-left,.atcb-subevent-btn:hover .atcb-date-btn-left{opacity:.8}.atcb-date-btn-day{color:var(--date-btn-cal-day-text);font-weight:300;font-size:2em;word-break:keep-all;padding-bottom:.1em}.atcb-initialized[lang=ja] .atcb-date-btn-day,.atcb-initialized[lang=ko] .atcb-date-btn-day,.atcb-initialized[lang=zh] .atcb-date-btn-day{font-size:1.3em}.atcb-date-btn-month{color:var(--date-btn-cal-month-text);font-weight:600;font-size:1em}.atcb-date-btn-right{position:relative;color:var(--date-btn-text);min-width:12.5em;overflow-wrap:anywhere}.atcb-date-btn-details{opacity:1;padding:.7em .8em;text-align:left}.atcb-rtl .atcb-date-btn-details{text-align:right}.atcb-date-btn-hover{position:absolute;top:0;left:0;width:100%;opacity:0;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1em;padding:.3em;box-sizing:border-box}.atcb-button:disabled .atcb-date-btn-hover{letter-spacing:.1em}.atcb-button:hover .atcb-date-btn-details,.atcb-subevent-btn:hover .atcb-date-btn-details{opacity:0}.atcb-button:hover .atcb-date-btn-hover,.atcb-subevent-btn:hover .atcb-date-btn-hover{opacity:1}.atcb-date-btn-headline{font-weight:600;font-size:.9em;margin-bottom:.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.atcb-date-btn-content{display:flex;align-items:flex-start;font-size:.8em;color:var(--date-btn-text-secondary)}.atcb-date-btn-content-location{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-all}.atcb-date-btn-content-icon{display:inline-block;height:.8em;width:1.3em;flex:0 0 1.3em}.atcb-rtl .atcb-date-btn-content-icon{margin-right:0;margin-left:.5em}.atcb-initialized[lang=ja] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=ko] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon,.atcb-initialized[lang=zh] .atcb-date-btn-content:not(.atcb-date-btn-content-location) .atcb-date-btn-content-icon{margin-top:.15em}.atcb-date-btn-content-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-date-btn-content+.atcb-date-btn-content{margin-top:.3em}.atcb-date-btn-content-text span:not(.atcb-icon-ical){padding-right:.3em;display:inline-block}.atcb-icon{height:1em;margin-bottom:.3em;margin-right:.8em;flex-grow:0;flex-shrink:0}.atcb-rtl .atcb-icon{margin-right:0;margin-left:.8em}.atcb-icon svg{height:100%;fill:currentcolor;width:auto}.atcb-text{overflow-wrap:anywhere}.atcb-dropdown-anchor{bottom:4px;height:1px;width:100%;opacity:0;position:absolute}.atcb-list-wrapper{box-sizing:border-box;padding:0 4px;position:absolute;z-index:14000090}.atcb-list-wrapper.atcb-dropoverlay{z-index:15000000}.atcb-list{border-radius:0 0 6px 6px;box-sizing:border-box;box-shadow:var(--list-shadow);color:var(--list-text);display:block;font-family:var(--font);min-width:100%;position:relative;user-select:none;-webkit-user-select:none;width:fit-content}.atcb-list-item{align-items:center;background-color:var(--list-background);box-sizing:border-box;cursor:pointer;display:flex;font-size:1em;line-height:1.75em;padding:.8em;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.atcb-rtl .atcb-list-item{direction:rtl;text-align:right}.atcb-list-item:hover{background-color:var(--list-background-hover);color:var(--list-text-hover)}.atcb-list-item:focus-visible{background-color:var(--list-background-hover);color:var(--keyboard-focus);font-weight:600;outline:0}.atcb-list-item:last-child{border-radius:0 0 6px 6px}.atcb-dropup .atcb-list-item:last-child{border-radius:0;padding-bottom:1.25em}.atcb-dropoverlay .atcb-list .atcb-list-item:first-child,.atcb-dropup .atcb-list-item:first-child,.atcb-list.atcb-modal .atcb-list-item:first-child{border-radius:6px 6px 0 0}.atcb-dropoverlay .atcb-list .atcb-list-item:only-child,.atcb-list.atcb-modal .atcb-list-item:only-child{border-radius:6px}.atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:1.25em}.atcb-dropoverlay .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child,.atcb-dropup .atcb-list.atcb-generated-button:not(.atcb-modal) .atcb-list-item:first-child{padding-top:.8em}.atcb-dropoverlay .atcb-list,.atcb-list.atcb-modal{border-radius:6px}.atcb-list.atcb-modal{box-shadow:var(--list-shadow-modal)}.atcb-list-item .atcb-icon{margin-bottom:.5em;margin-right:.6em;width:1.125em}.atcb-rtl .atcb-list-item .atcb-icon{margin-right:0;margin-left:.6em}.atcb-no-text .atcb-list-item .atcb-icon{margin:0 auto}.atcb-list-item-close{background-color:var(--list-close-background)}.atcb-list-item.atcb-list-item-close:not(:focus-visible){color:var(--list-close-text)}.atcb-list-item-close svg{fill:currentcolor}.atcb-modal{display:block;margin:auto;min-width:250px;width:auto;position:relative;z-index:14000090}.atcb-modal-box{filter:var(--modal-shadow);color:var(--modal-text);cursor:default;box-sizing:border-box;font-family:var(--font);line-height:1.5em;text-align:left;user-select:none;-webkit-user-select:none;touch-action:manipulation;width:100%;margin-bottom:20px;max-width:32em;-webkit-tap-highlight-color:transparent}.atcb-modal-box.atcb-rtl{text-align:right;direction:rtl;padding:1.25em 1em 1.25em 2em}.atcb-modal-icon{height:2.5em;width:2.5em;border-radius:100%;background-color:var(--modal-background);padding:1.75em;margin:auto}.atcb-modal-icon svg{height:auto;fill:currentcolor;width:100%}.atcb-modal-headline{background-color:var(--modal-background);border-radius:6px 6px 0 0;font-size:1.3em;font-weight:600;line-height:1.5em;padding:1.8em 2em 1.3em;text-transform:uppercase;text-align:center}.atcb-modal-icon+.atcb-modal-headline{margin-top:-2.6em;padding-top:2.6em}.atcb-modal-content{background-color:var(--modal-background);font-size:1em;padding:.3em 2.5em 2.25em}.atcb-modal-icon+.atcb-modal-content{border-radius:6px 6px 0 0;margin-top:-2.6em;padding-top:2.6em}@media (width <= 575px){.atcb-modal-headline{padding:1.8em 1em 1em}.atcb-modal-content{padding:.3em 1.5em 1.5em}.atcb-modal-icon+.atcb-modal-content{padding-top:1.8em}}.atcb-modal-buttons{background-color:var(--modal-btn-bar);border-radius:0 0 6px 6px;box-sizing:border-box;padding:.8em 1em;text-align:center;width:100%;display:flex;justify-content:center;flex-flow:row-reverse wrap;align-items:center}a.atcb-modal-btn,button.atcb-modal-btn{background-color:var(--modal-btn-secondary-background);border:0;border-radius:6px;box-shadow:var(--modal-shadow-btn);color:var(--modal-btn-secondary-text);cursor:pointer;display:inline-block;font-family:var(--font);font-size:.9em;font-weight:600;line-height:1.5em;margin:.625em;padding:.625em 1.25em;position:relative;text-align:center;text-decoration:none;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;text-transform:uppercase}a.atcb-modal-btn.atcb-modal-btn-primary,button.atcb-modal-btn.atcb-modal-btn-primary{background-color:var(--modal-btn-background);color:var(--modal-btn-text)}a.atcb-modal-btn:hover,button.atcb-modal-btn:hover{background-color:var(--modal-btn-background-hover);box-shadow:var(--modal-shadow-btn-hover);color:var(--modal-btn-text-hover);text-decoration:none}a.atcb-modal-btn:focus-visible,button.atcb-modal-btn:focus-visible{background-color:var(--modal-btn-background-hover);outline:2px solid var(--keyboard-focus)}.atcb-checkmark{display:none}.atcb-saved .atcb-checkmark{box-sizing:content-box;color:var(--btn-text);display:block;position:absolute;top:-.9em;right:-.3em;padding:.5em;background:var(--checkmark-background);border-radius:100%;height:1.5em}.atcb-checkmark svg{height:100%;fill:currentcolor;width:auto}#atcb-bgoverlay{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background-color:var(--overlay-background);border:0;box-sizing:border-box;display:flex;height:calc(100vh + 100px);inset-inline:0;left:0;right:0;top:0;min-height:100%;min-width:100%;overflow-y:auto;padding:20px 20px 130px;position:fixed;width:100vw;z-index:14000000}#atcb-bgoverlay:not(dialog){animation:atcb-bgoverlay-animate .2s ease 0s 1 normal forwards;opacity:0}#atcb-bgoverlay.atcb-no-bg{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;background-color:transparent}@keyframes atcb-bgoverlay-animate{0%{opacity:0}100%{opacity:1}}#atcb-bgoverlay.atcb-click:hover{cursor:var(--overlay-cursor)}.atcb-icon .atcb-icon-apple svg{fill:currentcolor}.atcb-icon .atcb-icon-ical svg{fill:currentcolor}.atcb-icon .atcb-icon-ms365 svg{fill:var(--icon-ms365-color)}.atcb-icon .atcb-icon-yahoo svg{fill:var(--icon-yahoo-color)}.atcb-icon .atcb-icon-google svg,.atcb-icon .atcb-icon-msteams svg,.atcb-icon .atcb-icon-outlookcom svg{filter:var(--icon-filter)}\",\r};\rconst atcbIsBrowser = () => {\n if (typeof window === 'undefined') {\n return false;\n } else {\n return true;\n }\n};\nconst atcbIsiOS = atcbIsBrowser()\n ? () => {\n if ((/iPad|iPhone|iPod/i.test(navigator.userAgent || navigator.vendor || window.opera) && !window.MSStream) || (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst atcbIsAndroid = atcbIsBrowser()\n ? () => {\n if (/android/i.test(navigator.userAgent || navigator.vendor || window.opera) && !window.MSStream) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\n/*const atcbIsChrome = atcbIsBrowser()\n ? () => {\n if (/chrome|chromium|crios|google inc/i.test(navigator.userAgent || navigator.vendor)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };*/\nconst atcbIsSafari = atcbIsBrowser()\n ? () => {\n if (/^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent || navigator.vendor)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst atcbIsMobile = () => {\n if (atcbIsAndroid() || atcbIsiOS()) {\n return true;\n } else {\n return false;\n }\n};\nconst atcbIsWebView = atcbIsBrowser()\n ? () => {\n if (/(; ?wv|(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari))/i.test(navigator.userAgent || navigator.vendor)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst atcbIsProblematicWebView = atcbIsBrowser()\n ? () => {\n if (/(Instagram)/i.test(navigator.userAgent || navigator.vendor || window.opera)) {\n return true;\n } else {\n return false;\n }\n }\n : () => {\n return false;\n };\nconst atcbDefaultTarget = atcbIsWebView() ? '_system' : '_blank';\nconst atcbOptions = ['apple', 'google', 'ical', 'ms365', 'outlookcom', 'msteams', 'yahoo'];\nconst atcbValidRecurrOptions = ['apple', 'google', 'ical'];\nconst atcbInvalidSubscribeOptions = ['msteams'];\nconst atcbiOSInvalidOptions = ['ical'];\nconst atcbStates = [];\nconst atcbWcParams = [\n 'debug',\n 'cspnonce',\n 'name',\n 'dates',\n 'description',\n 'startDate',\n 'startTime',\n 'endDate',\n 'endTime',\n 'timeZone',\n 'location',\n 'status',\n 'uid',\n 'organizer',\n 'attendee',\n 'icsFile',\n 'images',\n 'recurrence',\n 'recurrence_until',\n 'recurrence_byDay',\n 'recurrence_byMonth',\n 'recurrence_byMonthDay',\n 'recurrence_weekstart',\n 'sequence',\n 'recurrence_interval',\n 'recurrence_count',\n 'availability',\n 'created',\n 'updated',\n 'subscribe',\n 'options',\n 'iCalFileName',\n 'listStyle',\n 'buttonStyle',\n 'trigger',\n 'hideIconButton',\n 'hideIconList',\n 'hideIconModal',\n 'hideTextLabelButton',\n 'hideTextLabelList',\n 'buttonsList',\n 'hideBackground',\n 'hideCheckmark',\n 'hideBranding',\n 'size',\n 'label',\n 'ty',\n 'rsvp',\n 'inline',\n 'inlineRsvp',\n 'customLabels',\n 'customCss',\n 'lightMode',\n 'language',\n 'hideRichData',\n 'bypassWebViewCheck',\n 'blockInteraction',\n 'styleLight',\n 'styleDark',\n 'disabled',\n 'hidden',\n 'hideButton',\n 'pastDateHandling',\n 'proxy',\n 'fakeMobile',\n 'fakeIOS',\n 'fakeAndroid',\n 'forceOverlay',\n];\nconst atcbWcBooleanParams = [\n 'debug',\n 'hideIconButton',\n 'hideIconList',\n 'hideIconModal',\n 'hideTextLabelButton',\n 'hideTextLabelList',\n 'subscribe',\n 'hideBackground',\n 'hideCheckmark',\n 'hideBranding',\n 'inlineRsvp',\n 'hideRichData',\n 'buttonsList',\n 'inline',\n 'bypassWebViewCheck',\n 'blockInteraction',\n 'disabled',\n 'hidden',\n 'hideButton',\n 'proxy',\n 'fakeMobile',\n 'fakeIOS',\n 'fakeAndroid',\n 'forceOverlay',\n];\nconst atcbWcObjectParams = ['customLabels', 'ty', 'rsvp'];\nconst atcbWcObjectArrayParams = ['dates'];\nconst atcbWcArrayParams = ['images', 'options'];\nconst atcbWcNumberParams = ['sequence', 'recurrence_interval', 'recurrence_count'];\nconst atcbIcon = {\n trigger:\n '',\n apple:\n '',\n google:\n '',\n ical: '',\n msteams:\n '',\n ms365:\n '',\n outlookcom:\n '',\n yahoo:\n '',\n atcb: '',\n close:\n '',\n location:\n '',\n warning:\n '',\n checkmark:\n '',\n};\n\n\nfunction atcb_decorate_data(data) {\n data = atcb_decorate_data_boolean(data);\n data.timeZone = atcb_decorate_data_timezone(data.timeZone);\n data = atcb_decorate_data_rrule(data);\n data = atcb_decorate_data_options(data);\n data = atcb_decorate_data_style(data);\n data.sizes = atcb_decorate_sizes(data.size);\n data.lightMode = atcb_decorate_light_mode(data.lightMode);\n data = atcb_decorate_data_i18n(data);\n data = atcb_decorate_data_dates(data);\n data = atcb_decorate_data_meta(data);\n data = atcb_decorate_data_extend(data);\n data = atcb_decorate_data_button_status_handling(data);\n return data;\n}\nfunction atcb_decorate_data_boolean(data) {\n for (let i = 0; i < atcbWcBooleanParams.length; i++) {\n const attr = atcbWcBooleanParams[`${i}`];\n if (data[`${attr}`] == null || data[`${attr}`] === '') {\n data[`${attr}`] = false;\n } else {\n data[`${attr}`] = true;\n }\n }\n return data;\n}\nfunction atcb_decorate_data_timezone(tz = null) {\n if (!tz || tz == '') {\n return 'GMT';\n }\n return tz;\n}\nfunction atcb_decorate_data_rrule(data) {\n if (data.recurrence != null && data.recurrence != '') {\n data.recurrence = data.recurrence.replace(/\\s+/g, '').toUpperCase();\n if (!/^(RRULE:[\\w=;,:+-/\\\\]+|daily|weekly|monthly|yearly)$/im.test(data.recurrence)) {\n data.recurrence = '!wrong rrule format!';\n } else {\n if (/^RRULE:/i.test(data.recurrence)) {\n data.recurrence_simplyfied = false;\n const rruleParts = data.recurrence.substring(6).split(';');\n const rruleObj = new Object();\n rruleParts.forEach(function (rule) {\n rruleObj[rule.split('=')[0]] = rule.split('=')[1];\n });\n data.recurrence_until = rruleObj.UNTIL ? rruleObj.UNTIL : '';\n data.recurrence_count = rruleObj.COUNT ? rruleObj.COUNT : '';\n data.recurrence_byDay = rruleObj.BYDAY ? rruleObj.BYDAY : '';\n data.recurrence_byMonth = rruleObj.BYMONTH ? rruleObj.BYMONTH : '';\n data.recurrence_byMonthDay = rruleObj.BYMONTHDAY ? rruleObj.BYMONTHDAY : '';\n data.recurrence_interval = rruleObj.INTERVAL ? rruleObj.INTERVAL : 1;\n data.recurrence_frequency = rruleObj.FREQ ? rruleObj.FREQ : '';\n } else {\n data.recurrence_simplyfied = true;\n if (data.recurrence_interval == null || data.recurrence_interval == '') {\n data.recurrence_interval = 1;\n }\n if (data.recurrence_weekstart == null || (data.recurrence_weekstart == '') | (data.recurrence_weekstart.length > 2)) {\n data.recurrence_weekstart = 'MO';\n }\n data.recurrence_frequency = data.recurrence;\n data.recurrence = 'RRULE:FREQ=' + data.recurrence + ';WKST=' + data.recurrence_weekstart + ';INTERVAL=' + data.recurrence_interval;\n if (data.recurrence_until != null && data.recurrence_until != '') {\n if (data.endTime != null && data.endTime != '') {\n data.recurrence = data.recurrence + ';UNTIL=' + data.recurrence_until.replace(/-/g, '').slice(0, 8) + 'T' + data.endTime.replace(':', '') + '00';\n } else {\n data.recurrence = data.recurrence + ';UNTIL=' + data.recurrence_until.replace(/-/g, '').slice(0, 8);\n }\n }\n if (data.recurrence_count != null && data.recurrence_count != '') {\n data.recurrence = data.recurrence + ';COUNT=' + data.recurrence_count;\n }\n if (data.recurrence_byDay != null && data.recurrence_byDay != '') {\n data.recurrence = data.recurrence + ';BYDAY=' + data.recurrence_byDay;\n }\n if (data.recurrence_byMonth != null && data.recurrence_byMonth != '') {\n data.recurrence = data.recurrence + ';BYMONTH=' + data.recurrence_byMonth;\n }\n if (data.recurrence_byMonthDay != null && data.recurrence_byMonthDay != '') {\n data.recurrence = data.recurrence + ';BYMONTHDAY=' + data.recurrence_byMonthDay;\n }\n }\n }\n }\n return data;\n}\nfunction atcb_decorate_data_options(data) {\n const newOptions = [];\n data.optionLabels = [];\n let iCalGiven = false;\n let appleGiven = false;\n for (let i = 0; i < data.options.length; i++) {\n const cleanOption = data.options[`${i}`].split('|');\n const optionName = cleanOption[0].toLowerCase().replace('microsoft', 'ms').replace(/\\./, '');\n const optionLabel = (function () {\n if (cleanOption[1] != null) {\n return cleanOption[1];\n }\n return '';\n })();\n if (optionName === 'apple') {\n appleGiven = true;\n }\n if (optionName === 'ical') {\n iCalGiven = true;\n }\n if (\n (atcbIsiOS() && atcbiOSInvalidOptions.includes(optionName)) ||\n (data.recurrence != null && data.recurrence != '' && (!atcbValidRecurrOptions.includes(optionName) || (data.recurrence_until != null && data.recurrence_until != '' && (optionName === 'apple' || optionName === 'ical')) || (atcbIsiOS() && optionName === 'google'))) ||\n (data.subscribe && atcbInvalidSubscribeOptions.includes(optionName))\n ) {\n continue;\n }\n newOptions.push(optionName);\n data.optionLabels.push(optionLabel);\n }\n if (newOptions.length === 0) {\n if (!atcbIsiOS()) {\n newOptions.push('ical');\n data.optionLabels.push('');\n }\n iCalGiven = true;\n }\n if (atcbIsiOS() && iCalGiven && !appleGiven) {\n newOptions.push('apple');\n data.optionLabels.push('');\n }\n data.options = newOptions;\n return data;\n}\nfunction atcb_decorate_data_style(data) {\n if (data.listStyle == null || data.listStyle == '') {\n data.listStyle = 'dropdown';\n }\n const isDropdown = (function () {\n if (data.listStyle == 'dropdown' || data.listStyle == 'dropdown-static' || data.listStyle == 'dropup-static') {\n return true;\n }\n return false;\n })();\n if (data.listStyle === 'modal') {\n data.trigger = 'click';\n }\n if (data.buttonStyle != null && data.buttonStyle != '' && data.buttonStyle != 'default') {\n if (data.buttonStyle == 'round' || data.buttonStyle == 'text' || data.buttonStyle == 'date' || data.buttonStyle == 'neumorphism') {\n data.trigger = 'click';\n }\n if (data.buttonStyle == 'date' && isDropdown) {\n data.listStyle = 'overlay';\n }\n } else {\n data.buttonStyle = 'default';\n }\n if ((data.buttonStyle == 'default' || data.buttonStyle == '3d' || data.buttonStyle == 'flat') && isDropdown && !data.hideTextLabelList && data.hideTextLabelButton) {\n data.listStyle = 'overlay';\n }\n if (data.buttonsList && data.buttonStyle == 'date') {\n data.buttonsList = false;\n }\n return data;\n}\nfunction atcb_decorate_sizes(size) {\n const sizes = [];\n sizes['l'] = sizes['m'] = sizes['s'] = 16;\n if (size != null && size != '') {\n const sizeParts = size.split('|');\n for (let i = 0; i < sizeParts.length; i++) {\n sizeParts[`${i}`] = parseInt(sizeParts[`${i}`]);\n }\n if (sizeParts[0] >= 0 && sizeParts[0] < 11) {\n sizes['l'] = sizes['m'] = sizes['s'] = 10 + sizeParts[0];\n }\n if (sizeParts.length > 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n sizes['m'] = 10 + sizeParts[1];\n }\n if (sizeParts[2] >= 0 && sizeParts[2] < 11) {\n sizes['s'] = 10 + sizeParts[2];\n }\n } else if (sizeParts.length == 2) {\n if (sizeParts[1] >= 0 && sizeParts[1] < 11) {\n sizes['m'] = sizes['s'] = 10 + sizeParts[1];\n }\n }\n }\n return sizes;\n}\nfunction atcb_decorate_light_mode(lightMode = '') {\n if (lightMode == 'system' && atcbIsBrowser()) {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)');\n return prefersDarkScheme.matches ? 'dark' : 'light';\n }\n if (lightMode != 'bodyScheme' && lightMode != 'dark') {\n return 'light';\n }\n return lightMode;\n}\nfunction atcb_decorate_data_i18n(data) {\n if (data.language == null || data.language == '' || !availableLanguages.includes(data.language)) {\n data.language = 'en';\n }\n if (data.language.length > 2) {\n data.language = data.language.substring(0, 2);\n }\n if (rtlLanguages.includes(data.language)) {\n data.rtl = true;\n } else {\n data.rtl = false;\n }\n return data;\n}\nfunction atcb_decorate_data_dates(data) {\n if (data.dates != null && data.dates.length > 0) {\n for (let i = 0; i < data.dates.length; i++) {\n if (data.dates[`${i}`].timeZone == null) {\n data.dates[`${i}`].timeZone = data.timeZone;\n }\n const cleanedUpDates = atcb_date_cleanup(data.dates[`${i}`]);\n data.dates[`${i}`].startTime = cleanedUpDates.startTime;\n data.dates[`${i}`].endTime = cleanedUpDates.endTime;\n data.dates[`${i}`].timeZone = cleanedUpDates.timeZone;\n data.dates[`${i}`].startDate = atcb_date_calculation(cleanedUpDates.startDate);\n data.dates[`${i}`].endDate = atcb_date_calculation(cleanedUpDates.endDate);\n data.dates[`${i}`].timestamp = atcb_date_specials_calculation('timestamp', data.dates[`${i}`].startDate, data.dates[`${i}`].startTime, data.dates[`${i}`].timeZone);\n data.dates[`${i}`].overdue = atcb_date_specials_calculation('overdue', data.dates[`${i}`].endDate, data.dates[`${i}`].endTime, data.dates[`${i}`].timeZone);\n }\n } else {\n const cleanedUpDates = atcb_date_cleanup(data);\n data.dates = [];\n data.dates[0] = new Object();\n data.startTime = data.dates[0].startTime = cleanedUpDates.startTime;\n data.endTime = data.dates[0].endTime = cleanedUpDates.endTime;\n data.timeZone = data.dates[0].timeZone = cleanedUpDates.timeZone;\n data.startDate = data.dates[0].startDate = atcb_date_calculation(cleanedUpDates.startDate);\n data.endDate = data.dates[0].endDate = atcb_date_calculation(cleanedUpDates.endDate);\n if (!data.recurrence) {\n data.dates[0].overdue = atcb_date_specials_calculation('overdue', data.endDate, data.endTime, data.timeZone);\n } else {\n data.dates[0].overdue = false;\n }\n }\n const now = new Date();\n if (data.created == null || data.created == '') {\n data.created = atcb_format_datetime(now, 'clean', true);\n }\n if (data.updated == null || data.updated == '') {\n data.updated = atcb_format_datetime(now, 'clean', true);\n }\n return data;\n}\nfunction atcb_decorate_data_meta(data) {\n if (data.status == null || data.status == '') {\n data.status = 'CONFIRMED';\n }\n if (data.sequence == null || data.sequence == '') {\n data.sequence = 0;\n }\n return data;\n}\nfunction atcb_decorate_data_description(data, i) {\n if (data.dates[`${i}`].description != null && data.dates[`${i}`].description != '') {\n data.dates[`${i}`].description = data.dates[`${i}`].description.replace(/(\\\\r\\\\n|\\\\n|\\\\r|)/g, '');\n data.dates[`${i}`].descriptionHtmlFree = atcb_rewrite_html_elements(data.dates[`${i}`].description, true);\n data.dates[`${i}`].descriptionHtmlFreeICal = atcb_rewrite_html_elements(data.dates[`${i}`].description, true, true);\n data.dates[`${i}`].description = atcb_rewrite_html_elements(data.dates[`${i}`].description);\n } else {\n if (data.dates[`${i}`].description == null && data.description != null && data.description != '') {\n data.description = data.description.replace(/(\\\\r\\\\n|\\\\n|\\\\r|)/g, '');\n data.dates[`${i}`].descriptionHtmlFree = atcb_rewrite_html_elements(data.description, true);\n data.dates[`${i}`].descriptionHtmlFreeICal = atcb_rewrite_html_elements(data.description, true, true);\n data.dates[`${i}`].description = atcb_rewrite_html_elements(data.description);\n } else {\n data.dates[`${i}`].descriptionHtmlFree = data.dates[`${i}`].description = '';\n }\n }\n return data;\n}\nfunction atcb_decorate_data_extend(data) {\n for (let i = 0; i < data.dates.length; i++) {\n data = atcb_decorate_data_description(data, i);\n if (data.dates[`${i}`].name == null || data.dates[`${i}`].name == '') {\n data.dates[`${i}`].name = data.name;\n }\n if (data.dates[`${i}`].status == null) {\n data.dates[`${i}`].status = data.status.toUpperCase();\n } else {\n data.dates[`${i}`].status = data.dates[`${i}`].status.toUpperCase();\n }\n if (data.dates[`${i}`].sequence == null) {\n data.dates[`${i}`].sequence = data.sequence;\n }\n if (data.dates[`${i}`].organizer == null && data.organizer != null) {\n data.dates[`${i}`].organizer = data.organizer;\n }\n if (data.dates[`${i}`].attendee == null && data.attendee != null) {\n data.dates[`${i}`].attendee = data.attendee;\n }\n if (data.dates[`${i}`].availability == null && data.availability != null) {\n data.dates[`${i}`].availability = data.availability.toLowerCase();\n } else if (data.dates[`${i}`].availability != null) {\n data.dates[`${i}`].availability = data.dates[`${i}`].availability.toLowerCase();\n }\n if (data.dates[`${i}`].location == null && data.location != null) {\n data.dates[`${i}`].location = data.location;\n }\n if (data.dates[`${i}`].location && data.dates[`${i}`].location.startsWith('http')) {\n data.dates[`${i}`].onlineEvent = true;\n } else {\n data.dates[`${i}`].onlineEvent = false;\n }\n if (data.dates[`${i}`].uid == null) {\n if (i == 0 && data.uid != null && data.uid != '') {\n data.dates[0].uid = data.uid;\n } else {\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n }\n }\n if (data.recurrence != null && data.recurrence != '') {\n data.dates[0].recurrence = data.recurrence;\n }\n if (data.dates.length > 1) {\n data.dates.sort((a, b) => a.timestamp - b.timestamp);\n }\n return data;\n}\nfunction atcb_date_cleanup(dateTimeData) {\n if (dateTimeData.endDate == null || dateTimeData.endDate == '') {\n dateTimeData.endDate = dateTimeData.startDate;\n }\n const endpoints = ['start', 'end'];\n endpoints.forEach(function (point) {\n if (!/^(\\d{4}-\\d{2}-\\d{2}T?(?:\\d{2}:\\d{2}|)Z?|today(?:\\+\\d{1,4}|))$/.test(dateTimeData[point + 'Date'])) {\n dateTimeData[point + 'Date'] = 'badly-formed';\n } else {\n if (dateTimeData[point + 'Date'] != null) {\n dateTimeData[point + 'Date'] = dateTimeData[point + 'Date'].replace(/\\.\\d{3}/, '').replace('Z', '');\n const tmpSplitStartDate = dateTimeData[point + 'Date'].split('T');\n if (tmpSplitStartDate[1] != null) {\n dateTimeData[point + 'Date'] = tmpSplitStartDate[0];\n dateTimeData[point + 'Time'] = tmpSplitStartDate[1];\n }\n }\n if (dateTimeData[point + 'Time'] != null && dateTimeData[point + 'Time'].length === 8) {\n const timeStr = dateTimeData[point + 'Time'];\n dateTimeData[point + 'Time'] = timeStr.substring(0, timeStr.length - 3);\n }\n }\n });\n if (dateTimeData.timeZone == 'currentBrowser') {\n dateTimeData.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n return dateTimeData;\n}\nfunction atcb_date_specials_calculation(type, dateString, timeString = null, timeZone) {\n try {\n const tmpDate = (function () {\n if (timeString) {\n const offsetEnd = tzlib_get_offset(timeZone, dateString, timeString);\n return new Date(dateString + ' ' + timeString + ':00 GMT' + offsetEnd);\n }\n return new Date(dateString);\n })();\n if (type === 'timestamp') {\n return tmpDate.getTime();\n }\n if (!timeString) {\n tmpDate.setDate(tmpDate.getDate() + 1);\n }\n const currentUtcDate = new Date().toISOString();\n return tmpDate.getTime() < new Date(currentUtcDate).getTime();\n } catch (e) {\n return false;\n }\n}\nfunction atcb_date_calculation(dateString) {\n const today = new Date();\n const todayString = today.getUTCFullYear() + '-' + (today.getUTCMonth() + 1) + '-' + today.getUTCDate();\n dateString = dateString.replace(/today/gi, todayString);\n const dateStringParts = dateString.split('+');\n const dateParts = dateStringParts[0].split('-');\n let newDate = (function () {\n if (dateParts[0].length < 4) {\n return new Date(Date.UTC(dateParts[2], dateParts[0] - 1, dateParts[1]));\n }\n return new Date(Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]));\n })();\n if (dateStringParts[1] != null && dateStringParts[1] > 0) {\n newDate.setDate(newDate.getDate() + parseInt(dateStringParts[1]));\n }\n try {\n return newDate.toISOString().replace(/T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g, '');\n } catch (e) {\n return false;\n }\n}\nfunction atcb_decorate_data_button_status_handling(data) {\n if (data.pastDateHandling == null || (data.pastDateHandling != 'disable' && data.pastDateHandling != 'hide')) {\n data.pastDateHandling = 'none';\n }\n const overdue = (function () {\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].overdue) {\n return false;\n }\n }\n return true;\n })();\n data.allOverdue = false;\n if (overdue) {\n data.allOverdue = true;\n if (data.pastDateHandling == 'disable') {\n data.disabled = true;\n } else if (data.pastDateHandling == 'hide') {\n data.hidden = true;\n }\n }\n if (data.disabled || data.hidden) {\n data.blockInteraction = true;\n }\n return data;\n}\n\n\nfunction atcb_check_required(data) {\n if (data.validationError) {\n data.validationError = null;\n }\n if (data.options == null || data.options.length < 1) {\n data.validationError = 'Add to Calendar Button generation failed: no valid options set';\n return false;\n }\n if (data.name == null || data.name == '') {\n data.validationError = 'Add to Calendar Button generation failed: required name information missing';\n return false;\n }\n if (data.dates != null && data.dates.length > 0) {\n const requiredMultiField = ['name', 'startDate'];\n const requiredMultiFieldFlex = ['name'];\n return requiredMultiField.every(function (field) {\n for (let i = 0; i < data.dates.length; i++) {\n if (\n (!requiredMultiFieldFlex.includes(`${field}`) && (data.dates[`${i}`][`${field}`] == null || data.dates[`${i}`][`${field}`] == '')) ||\n (requiredMultiFieldFlex.includes(`${field}`) && (data.dates[`${i}`][`${field}`] == null || data.dates[`${i}`][`${field}`] == '') && (data[`${field}`] == null || data[`${field}`] == ''))\n ) {\n data.validationError = 'Add to Calendar Button generation failed: required setting missing [dates array object #' + (i + 1) + '/' + data.dates.length + '] => [' + field + ']';\n return false;\n }\n }\n return true;\n });\n } else {\n const requiredSingleField = ['startDate'];\n return requiredSingleField.every(function (field) {\n if (data[`${field}`] == null || data[`${field}`] == '') {\n data.validationError = 'Add to Calendar Button generation failed: required setting missing [' + field + ']';\n return false;\n }\n return true;\n });\n }\n}\nfunction atcb_validate(data) {\n if (data.validationError) {\n data.validationError = null;\n }\n const msgPrefix = 'Add to Calendar Button generation (' + data.identifier + ')';\n if (!atcb_validate_icsFile(data, msgPrefix)) return false;\n if (!atcb_validate_buttonStyle(data, msgPrefix)) return false;\n if (!atcb_validate_subscribe(data, msgPrefix)) return false;\n if (!atcb_validate_created(data, msgPrefix)) return false;\n if (!atcb_validate_updated(data, msgPrefix)) return false;\n if (!atcb_validate_options(data, msgPrefix)) return false;\n if (!atcb_validate_date_blocks(data, msgPrefix)) return false;\n if (!atcb_validate_rrule(data, msgPrefix)) return false;\n if (data.recurrence_simplyfied) {\n if (!atcb_validate_rrule_simplyfied(data, msgPrefix)) return false;\n }\n return true;\n}\nfunction atcb_validate_icsFile(data, msgPrefix, i = '', msgSuffix = '') {\n const icsFileStr = (function () {\n if (i != '' && data.dates[`${i}`].icsFile != null) {\n return data.dates[`${i}`].icsFile;\n }\n if (i == '' && data.icsFile != null) {\n return data.icsFile;\n }\n return '';\n })();\n if (icsFileStr != '') {\n if (!atcb_secure_url(icsFileStr, false) || (!data.icsFile.startsWith('https://') && !data.icsFile.startsWith('http://'))) {\n data.validationError = msgPrefix + ' failed: explicit ics file path not valid' + msgSuffix;\n return false;\n }\n }\n return true;\n}\nfunction atcb_validate_buttonStyle(data, msgPrefix) {\n const availableStyles = ['default', '3d', 'flat', 'round', 'neumorphism', 'text', 'date', 'custom', 'none'];\n if (!availableStyles.includes(data.buttonStyle)) {\n data.validationError = msgPrefix + ' failed: provided buttonStyle invalid';\n return false;\n }\n if (data.customCss != null && data.customCss != '' && (!atcb_secure_url(data.customCss, false) || !/\\.css$/m.test(data.customCss))) {\n data.validationError = msgPrefix + ' failed: customCss provided, but no valid url';\n return false;\n }\n if ((data.customCss == null || data.customCss == '') && data.buttonStyle == 'custom') {\n data.validationError = msgPrefix + ' failed: buttonStyle \"custom\" selected, but no customCss file provided';\n return false;\n }\n return true;\n}\nfunction atcb_validate_subscribe(data, msgPrefix) {\n if (data.subscribe == true && (data.icsFile == null || data.icsFile == '')) {\n data.validationError = msgPrefix + ' failed: a subscription calendar requires a valid explicit ics file as well';\n return false;\n }\n return true;\n}\nfunction atcb_validate_created(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.created)) {\n data.validationError = msgPrefix + ' failed: created date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ';\n return false;\n }\n return true;\n}\nfunction atcb_validate_updated(data, msgPrefix) {\n if (!/^\\d{8}T\\d{6}Z$/.test(data.updated)) {\n data.validationError = msgPrefix + ' failed: updated date format not valid. Needs to be a full ISO-8601 UTC date and time string, formatted YYYYMMDDTHHMMSSZ';\n return false;\n }\n return true;\n}\nfunction atcb_validate_options(data, msgPrefix) {\n if (data.options == null || data.options.length < 1) {\n data.validationError = msgPrefix + ' failed: no valid options available';\n return false;\n }\n if (\n !data.options.every(function (option) {\n if (!atcbOptions.includes(option)) {\n data.validationError = msgPrefix + ' failed: invalid option [' + option + ']';\n return false;\n }\n return true;\n })\n ) {\n return false;\n }\n return true;\n}\nfunction atcb_validate_date_blocks(data, msgPrefix) {\n for (let i = 0; i < data.dates.length; i++) {\n const msgSuffix = (function () {\n if (data.dates.length == 1) {\n return '';\n } else {\n return ' [dates array object #' + (i + 1) + '/' + data.dates.length + '] ';\n }\n })();\n if (!atcb_validate_icsFile(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_status(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_availability(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_organizer(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_attendee(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_uid(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_sequence(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_timezone(data, msgPrefix, i, msgSuffix)) return false;\n if (!atcb_validate_datetime(data, msgPrefix, i, msgSuffix)) return false;\n }\n return true;\n}\nfunction atcb_validate_status(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].status != 'TENTATIVE' && data.dates[`${i}`].status != 'CONFIRMED' && data.dates[`${i}`].status != 'CANCELLED') {\n data.validationError = msgPrefix + ' failed: event status needs to be TENTATIVE, CONFIRMED, or CANCELLED' + msgSuffix;\n return false;\n }\n return true;\n}\nfunction atcb_validate_availability(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].availability != null && data.dates[`${i}`].availability != '' && data.dates[`${i}`].availability != 'free' && data.dates[`${i}`].availability != 'busy') {\n data.validationError = msgPrefix + ' failed: event availability needs to be \"free\" or \"busy\"' + msgSuffix;\n return false;\n }\n return true;\n}\nfunction atcb_validate_organizer(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].organizer != null && data.dates[`${i}`].organizer != '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n if (organizerParts.length != 2 || organizerParts[0].length > 50 || organizerParts[1].length > 80 || !atcb_validEmail(organizerParts[1])) {\n data.validationError = msgPrefix + ' failed: organizer needs to match the schema \"NAME|EMAIL\" with a valid email address' + msgSuffix;\n return false;\n }\n }\n return true;\n}\nfunction atcb_validate_attendee(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].attendee != null && data.dates[`${i}`].attendee != '') {\n if (data.dates[`${i}`].organizer == null || data.dates[`${i}`].organizer == '') {\n data.validationError = msgPrefix + ' failed: if an attendee is set, you also need to set the organizer' + msgSuffix;\n return false;\n }\n const attendeeParts = data.dates[`${i}`].attendee.split('|');\n if (attendeeParts.length != 2 || attendeeParts[0].length > 50 || attendeeParts[1].length > 80 || !atcb_validEmail(attendeeParts[1])) {\n data.validationError = msgPrefix + ' failed: attendee needs to match the schema \"NAME|EMAIL\" with a valid email address' + msgSuffix;\n return false;\n }\n }\n return true;\n}\nfunction atcb_validate_uid(data, msgPrefix, i, msgSuffix) {\n if (!/^(\\w|-){1,254}$/.test(data.dates[`${i}`].uid)) {\n if (data.debug) {\n console.warn(msgPrefix + ': UID not valid. May only contain alpha, digits, and dashes; and be less than 255 characters. Falling back to an automated value!' + msgSuffix);\n }\n data.dates[`${i}`].uid = atcb_generate_uuid();\n }\n if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(data.dates[`${i}`].uid) && data.debug) {\n console.warn(msgPrefix + ': UID is highly recommended to be a hex-encoded random Universally Unique Identifier (UUID)!' + msgSuffix);\n }\n return true;\n}\nfunction atcb_validate_sequence(data, msgPrefix, i, msgSuffix) {\n if (data.dates[`${i}`].sequence != null && (data.dates[`${i}`].sequence < 0 || data.dates[`${i}`].sequence % 1 != 0)) {\n if (data.debug) {\n console.log(msgPrefix + ': sequence needs to be a full number >= 0. Used the default 0 instead' + msgSuffix);\n }\n data.dates[`${i}`].sequence = 0;\n }\n return true;\n}\nfunction atcb_validate_timezone(data, msgPrefix, i, msgSuffix) {\n const validTimeZones = tzlib_get_timezones();\n if (!validTimeZones.includes(data.dates[`${i}`].timeZone)) {\n data.validationError = msgPrefix + ' failed: invalid time zone given' + msgSuffix;\n return false;\n }\n return true;\n}\nfunction atcb_validate_datetime(data, msgPrefix, i, msgSuffix) {\n const dates = ['startDate', 'endDate'];\n const newDate = dates;\n if (\n !dates.every(function (date) {\n if (data.dates[`${i}`][`${date}`].length !== 10) {\n data.validationError = msgPrefix + ' failed: date misspelled [-> YYYY-MM-DD]' + msgSuffix;\n return false;\n }\n const dateParts = data.dates[`${i}`][`${date}`].split('-');\n if (dateParts.length < 3 || dateParts.length > 3) {\n data.validationError = msgPrefix + ' failed: date misspelled [' + date + ': ' + data.dates[`${i}`][`${date}`] + ']' + msgSuffix;\n return false;\n }\n newDate[`${date}`] = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);\n return true;\n })\n ) {\n return false;\n }\n const times = ['startTime', 'endTime'];\n if (\n !times.every(function (time) {\n if (data.dates[`${i}`][`${time}`] != null) {\n if (data.dates[`${i}`][`${time}`].length !== 5) {\n data.validationError = msgPrefix + ' failed: time misspelled [-> HH:MM]' + msgSuffix;\n return false;\n }\n const timeParts = data.dates[`${i}`][`${time}`].split(':');\n if (timeParts.length < 2 || timeParts.length > 2) {\n data.validationError = msgPrefix + ' failed: time misspelled [' + time + ': ' + data.dates[`${i}`][`${time}`] + ']' + msgSuffix;\n return false;\n }\n if (timeParts[0] > 23) {\n data.validationError = msgPrefix + ' failed: time misspelled - hours number too high [' + time + ': ' + timeParts[0] + ']' + msgSuffix;\n return false;\n }\n if (timeParts[1] > 59) {\n data.validationError = msgPrefix + ' failed: time misspelled - minutes number too high [' + time + ': ' + timeParts[1] + ']' + msgSuffix;\n return false;\n }\n if (time == 'startTime') {\n newDate.startDate = new Date(newDate.startDate.getTime() + timeParts[0] * 3600000 + timeParts[1] * 60000);\n }\n if (time == 'endTime') {\n newDate.endDate = new Date(newDate.endDate.getTime() + timeParts[0] * 3600000 + timeParts[1] * 60000);\n }\n }\n return true;\n })\n ) {\n return false;\n }\n if ((data.dates[`${i}`].startTime != null && data.dates[`${i}`].endTime == null) || (data.dates[`${i}`].startTime == null && data.dates[`${i}`].endTime != null)) {\n data.validationError = msgPrefix + ' failed: if you set a starting or end time, the respective other one also needs to be defined' + msgSuffix;\n return false;\n }\n if (newDate.endDate < newDate.startDate) {\n data.validationError = msgPrefix + ' failed: end date before start date' + msgSuffix;\n return false;\n }\n return true;\n}\nfunction atcb_validate_rrule(data, msgPrefix) {\n if (data.recurrence != null && data.recurrence != '' && data.dates.length > 1) {\n data.validationError = msgPrefix + ' failed: RRULE and multi-date set at the same time';\n return false;\n }\n if (data.recurrence != null && data.recurrence != '' && !/^RRULE:[\\w=;,:+-/\\\\]+$/i.test(data.recurrence)) {\n data.validationError = msgPrefix + ' failed: RRULE data misspelled';\n return false;\n }\n return true;\n}\nfunction atcb_validate_rrule_simplyfied(data, msgPrefix) {\n if (data.recurrence_interval != null && (data.recurrence_interval < 1 || data.recurrence_interval % 1 != 0)) {\n data.validationError = msgPrefix + ' failed: recurrence data (interval) misspelled';\n return false;\n }\n if (data.recurrence_until != null && data.recurrence_until != '' && !/^(\\d|-|:)+$/i.test(data.recurrence_until)) {\n data.validationError = msgPrefix + ' failed: recurrence data (until) misspelled';\n return false;\n }\n if (data.recurrence_count != null && (data.recurrence_count < 1 || data.recurrence_count % 1 != 0)) {\n data.validationError = msgPrefix + ' failed: recurrence data (interval) misspelled';\n return false;\n }\n if (data.recurrence_byMonth != null && data.recurrence_byMonth != '' && !/^(\\d|,)+$/.test(data.recurrence_byMonth)) {\n data.validationError = msgPrefix + ' failed: recurrence data (byMonth) misspelled';\n return false;\n }\n if (data.recurrence_byMonthDay != null && data.recurrence_byMonthDay != '' && !/^(\\d|,)+$/.test(data.recurrence_byMonthDay)) {\n data.validationError = msgPrefix + ' failed: recurrence data (byMonthDay) misspelled';\n return false;\n }\n if (data.recurrence_byDay != null && data.recurrence_byDay != '' && !/^(\\d|-|MO|TU|WE|TH|FR|SA|SU|,)+$/im.test(data.recurrence_byDay)) {\n data.validationError = msgPrefix + ' failed: recurrence data (byDay) misspelled';\n return false;\n }\n if (data.recurrence_weekstart != null && data.recurrence_weekstart != '' && !/^(MO|TU|WE|TH|FR|SA|SU)$/im.test(data.recurrence_weekstart)) {\n data.validationError = msgPrefix + ' failed: recurrence data (weekstart) misspelled';\n return false;\n }\n return true;\n}\n\n\nfunction atcb_toggle(host, action, data = '', button = null, keyboardTrigger = false, generatedButton = false) {\n if (action == 'open') {\n atcb_open(host, data, button, keyboardTrigger, generatedButton);\n } else if (action == 'close' || button.classList.contains('atcb-active') || host.querySelector('.atcb-active-modal')) {\n atcb_close(host, keyboardTrigger);\n } else {\n atcb_open(host, data, button, keyboardTrigger, generatedButton);\n }\n}\nfunction atcb_open(host, data, button = null, keyboardTrigger = false, generatedButton = false) {\n if (host.querySelector('.atcb-list') || host.querySelector('.atcb-modal')) return;\n atcb_log_event('openList', data.identifier, data.identifier);\n atcbStates['active'] = data.identifier;\n const list = atcb_generate_dropdown_list(host, data);\n const listWrapper = document.createElement('div');\n listWrapper.classList.add('atcb-list-wrapper');\n if (data.hideTextLabelList) {\n listWrapper.classList.add('atcb-no-text');\n }\n if (button) {\n button.classList.add('atcb-active');\n button.setAttribute('aria-expanded', true);\n if (data.listStyle === 'modal') {\n button.classList.add('atcb-modal-style');\n list.classList.add('atcb-modal');\n } else {\n listWrapper.append(list);\n listWrapper.classList.add('atcb-dropdown');\n if (data.listStyle === 'overlay') {\n listWrapper.classList.add('atcb-dropoverlay');\n }\n }\n if (generatedButton) {\n list.classList.add('atcb-generated-button'); \n }\n } else {\n list.classList.add('atcb-modal');\n }\n const bgOverlay = atcb_generate_bg_overlay(host, data.trigger, data.listStyle === 'modal', !data.hideBackground);\n if (data.listStyle === 'modal') {\n const modalHost = atcb_generate_modal_host(host, data);\n modalHost.querySelector('.atcb-modal-host-initialized').append(bgOverlay);\n bgOverlay.append(list);\n if (!data.hideBranding) {\n atcb_create_atcbl(modalHost, false);\n }\n atcb_set_sizes(list, data.sizes);\n atcb_manage_body_scroll(modalHost);\n atcb_set_fullsize(bgOverlay);\n } else {\n if (data.forceOverlay) {\n host = atcb_generate_overlay_dom(host, data);\n button = host.querySelector('button.atcb-button');\n }\n host.querySelector('.atcb-initialized').append(listWrapper);\n listWrapper.append(list);\n if (data.buttonStyle != 'default') {\n listWrapper.classList.add('atcb-style-' + data.buttonStyle);\n }\n if (!data.hideBranding) {\n atcb_create_atcbl(host);\n }\n host.append(bgOverlay);\n atcb_set_sizes(list, data.sizes);\n listWrapper.style.display = 'none';\n setTimeout(function () {\n listWrapper.style.display = 'block';\n if (data.listStyle === 'dropdown-static') {\n atcb_position_list(host, button, listWrapper, true);\n } else if (data.listStyle === 'dropup-static') {\n atcb_position_list(host, button, listWrapper, false, true);\n } else {\n atcb_position_list(host, button, listWrapper);\n }\n }, 5);\n atcb_set_fullsize(bgOverlay);\n }\n const focusEl = (function () {\n const hostEl = host.querySelector('.atcb-list-item');\n if (hostEl) {\n return hostEl;\n }\n const modalHost = document.getElementById(data.identifier + '-modal-host');\n if (!modalHost) {\n return;\n }\n return modalHost.shadowRoot.querySelector('.atcb-list-item');\n })();\n if (focusEl) {\n if (keyboardTrigger) {\n focusEl.focus();\n } else {\n focusEl.focus({ preventScroll: true });\n focusEl.blur();\n }\n }\n}\nfunction atcb_close(host, keyboardTrigger = false) {\n const existingModalHost = document.getElementById(host.host.getAttribute('atcb-button-id') + '-modal-host');\n const allModals = (function () {\n if (!existingModalHost || existingModalHost.length === 0) {\n return [];\n }\n return existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr]');\n })();\n if (allModals.length > 1) {\n existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr=\"' + allModals.length + '\"]')[0].remove();\n const nextModal = existingModalHost.shadowRoot.querySelectorAll('.atcb-modal[data-modal-nr=\"' + (allModals.length - 1) + '\"]')[0];\n nextModal.style.display = 'block';\n let focusEl = nextModal;\n const availableButtons = nextModal.getElementsByTagName('button');\n if (availableButtons.length > 0) {\n focusEl = availableButtons[0];\n }\n focusEl.focus();\n if (!keyboardTrigger) {\n focusEl.blur();\n }\n } else {\n const newFocusEl = (function () {\n const hostEl = host.querySelector('.atcb-active, .atcb-active-modal');\n if (hostEl) {\n return hostEl;\n }\n return document.querySelector('.atcb-active, .atcb-active-modal');\n })();\n if (newFocusEl) {\n newFocusEl.focus({ preventScroll: true });\n if (!keyboardTrigger) {\n newFocusEl.blur();\n }\n }\n Array.from(host.querySelectorAll('.atcb-active')).forEach((button) => {\n button.classList.remove('atcb-active');\n button.setAttribute('aria-expanded', false);\n });\n Array.from(host.querySelectorAll('.atcb-active-modal')).forEach((modal) => {\n modal.classList.remove('atcb-active-modal');\n });\n Array.from(document.querySelectorAll('.atcb-active')).forEach((button) => {\n button.classList.remove('atcb-active');\n button.setAttribute('aria-expanded', false);\n });\n Array.from(document.querySelectorAll('.atcb-active-modal')).forEach((modal) => {\n modal.classList.remove('atcb-active-modal');\n });\n if (existingModalHost) {\n existingModalHost.remove();\n }\n document.body.classList.remove('atcb-modal-no-scroll');\n document.documentElement.classList.remove('atcb-modal-no-scroll');\n Array.from(host.querySelectorAll('.atcb-list-wrapper'))\n .concat(Array.from(host.querySelectorAll('.atcb-list')))\n .concat(Array.from(host.querySelectorAll('#add-to-calendar-button-reference')))\n .concat(Array.from(host.querySelectorAll('#atcb-bgoverlay')))\n .forEach((el) => el.remove());\n const hiddenButton = document.querySelector('.atcb-shadow-hide');\n if (hiddenButton) {\n hiddenButton.shadowRoot.querySelector('.atcb-initialized').style.opacity = '1';\n hiddenButton.classList.remove('atcb-shadow-hide');\n window.removeEventListener('scroll', atcb_position_shadow_button_listener);\n window.removeEventListener('resize', atcb_position_shadow_button_listener);\n }\n atcbStates['active'] = '';\n }\n}\n\n\nfunction atcb_generate_label(host, data, parent, type, icon = false, text = '', oneOption = false) {\n switch (type) {\n case 'trigger':\n default:\n parent.id = data.identifier;\n if (!data.blockInteraction) {\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || (event.key === 'Alt' && event.key === 'Control' && event.code === 'Space')) {\n event.preventDefault();\n atcb_toggle(host, 'auto', data, parent, true, true);\n }\n });\n parent.addEventListener(\n 'touchend',\n atcb_debounce_leading((event) => {\n event.preventDefault();\n atcb_toggle(host, 'auto', data, parent, false, true);\n }),\n );\n if (data.trigger === 'click') {\n parent.addEventListener(\n 'mouseup',\n atcb_debounce_leading((event) => {\n event.preventDefault();\n atcb_toggle(host, 'auto', data, parent, false, true);\n }),\n );\n } else {\n parent.addEventListener(\n 'mouseenter',\n atcb_debounce_leading((event) => {\n event.preventDefault();\n atcb_toggle(host, 'open', data, parent, false, true);\n }),\n );\n }\n }\n break;\n case 'apple':\n case 'google':\n case 'ical':\n case 'msteams':\n case 'ms365':\n case 'outlookcom':\n case 'yahoo':\n parent.id = data.identifier + '-' + type;\n if (!data.blockInteraction) {\n parent.addEventListener(\n 'click',\n atcb_debounce_leading(() => {\n if (oneOption) {\n host.querySelector('#' + parent.id).blur();\n atcb_log_event('openSingletonLink', parent.id, data.identifier);\n } else {\n atcb_toggle(host, 'close');\n atcb_log_event('openCalendarLink', parent.id, data.identifier);\n }\n atcb_generate_links(host, type, data);\n }),\n );\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n if (oneOption) {\n host.querySelector('#' + parent.id).blur();\n atcb_log_event('openSingletonLink', parent.id, data.identifier);\n } else {\n atcb_toggle(host, 'close');\n atcb_log_event('openCalendarLink', parent.id, data.identifier);\n }\n atcb_generate_links(host, type, data, 'all', true);\n }\n });\n }\n break;\n case 'close':\n parent.id = data.identifier + '-close';\n parent.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_log_event('closeList', 'List Close Button', atcbStates['active']);\n atcb_toggle(host, 'close');\n }),\n );\n parent.addEventListener('keyup', function (event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n atcb_log_event('closeList', 'List Close Button', atcbStates['active']);\n atcb_toggle(host, 'close', data, 'all', true);\n }\n });\n break;\n }\n atcb_generate_label_content(data, parent, type, icon, text, oneOption);\n}\nfunction atcb_generate_label_content(data, parent, type, icon, text, oneOption) {\n const defaultTriggerText = (function () {\n if (data.pastDateHandling != 'none') {\n let allOverdue = true;\n for (let i = 0; i < data.dates.length; i++) {\n if (!data.dates[`${i}`].overdue) {\n allOverdue = false;\n break;\n }\n }\n if (allOverdue) {\n return atcb_translate_hook('expired', data);\n }\n }\n return atcb_translate_hook('label.addtocalendar', data);\n })();\n if (text == '' && data.options.length === 1) {\n text = defaultTriggerText;\n }\n const labelText = {\n trigger: text || defaultTriggerText,\n apple: text || 'Apple',\n google: text || 'Google',\n ical: text || atcb_translate_hook('label.icalfile', data),\n msteams: text || 'Microsoft Teams',\n ms365: text || 'Microsoft 365',\n outlookcom: text || 'Outlook.com',\n yahoo: text || 'Yahoo',\n close: atcb_translate_hook('close', data),\n };\n text = labelText[`${type}`];\n if (data.buttonStyle == 'date' && (type == 'trigger' || oneOption)) {\n return;\n }\n if (icon) {\n const iconEl = document.createElement('span');\n iconEl.classList.add('atcb-icon');\n iconEl.innerHTML = atcbIcon[`${type}`];\n parent.append(iconEl);\n }\n if (((type == 'trigger' || oneOption) && !data.hideTextLabelButton) || (!oneOption && type != 'trigger' && !data.hideTextLabelList)) {\n const textEl = document.createElement('span');\n textEl.classList.add('atcb-text');\n textEl.textContent = text;\n parent.append(textEl);\n }\n parent.setAttribute('aria-label', text);\n}\nfunction atcb_generate_button(host, button, data, debug = false) {\n const oneOption = (function () {\n if (data.options.length === 1 || (data.buttonsList && data.buttonStyle != 'date')) {\n return true;\n }\n return false;\n })();\n const optionSplit = oneOption ? data.options : ['default'];\n optionSplit.forEach(function (option) {\n const buttonTriggerWrapper = document.createElement('div');\n buttonTriggerWrapper.classList.add('atcb-button-wrapper');\n if (data.rtl) {\n buttonTriggerWrapper.classList.add('atcb-rtl');\n }\n button.append(buttonTriggerWrapper);\n atcb_set_sizes(buttonTriggerWrapper, data.sizes);\n const buttonTrigger = document.createElement('button');\n buttonTrigger.classList.add('atcb-button');\n if (data.disabled) {\n buttonTrigger.setAttribute('disabled', true);\n buttonTrigger.style.cssText = 'opacity: .75; cursor: not-allowed; filter: brightness(95%); border-style: dashed;';\n }\n if (data.hideTextLabelButton) {\n buttonTrigger.classList.add('atcb-no-text');\n }\n if (data.trigger === 'click') {\n buttonTrigger.classList.add('atcb-click');\n }\n if (data.listStyle === 'overlay') {\n buttonTrigger.classList.add('atcb-dropoverlay');\n }\n buttonTrigger.type = 'button';\n buttonTrigger.setAttribute('aria-expanded', false); \n buttonTriggerWrapper.append(buttonTrigger);\n if (data.buttonStyle == 'date') {\n atcb_generate_date_button(data, buttonTrigger);\n }\n if (oneOption) {\n buttonTrigger.classList.add('atcb-single');\n const label = (function () {\n if (data.buttonsList && data.options.length > 1) {\n return data.optionLabels[0];\n }\n return data.label;\n })();\n atcb_generate_label(host, data, buttonTrigger, option, !data.hideIconButton, label, true);\n buttonTrigger.id = data.identifier;\n if (data.buttonsList) {\n buttonTrigger.id = data.identifier + '-' + option;\n }\n } else {\n atcb_generate_label(host, data, buttonTrigger, 'trigger', !data.hideIconButton, data.label);\n const buttonDropdownAnchor = document.createElement('div');\n buttonDropdownAnchor.classList.add('atcb-dropdown-anchor');\n buttonTrigger.append(buttonDropdownAnchor);\n }\n if (!data.hideCheckmark && !data.hideTextLabelButton && !data.buttonsList && !data.disabled) {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n buttonTrigger.append(btnCheck);\n }\n });\n if (debug) {\n console.log('Add to Calendar Button \"' + data.identifier + '\" created');\n }\n}\nfunction atcb_generate_dropdown_list(host, data) {\n const optionsList = document.createElement('div');\n optionsList.classList.add('atcb-list');\n optionsList.role = 'list';\n if (data.rtl) {\n optionsList.classList.add('atcb-rtl');\n }\n let listCount = 0;\n data.options.forEach(function (option) {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item');\n optionItem.role = 'link';\n optionItem.tabIndex = 0;\n listCount++;\n optionItem.dataset.optionNumber = listCount;\n optionsList.append(optionItem);\n atcb_generate_label(host, data, optionItem, option, !data.hideIconList, data.optionLabels[listCount - 1]);\n });\n if (data.listStyle === 'modal') {\n const optionItem = document.createElement('div');\n optionItem.classList.add('atcb-list-item', 'atcb-list-item-close');\n optionItem.role = 'button';\n optionItem.tabIndex = 0;\n listCount++;\n optionItem.dataset.optionNumber = listCount;\n optionsList.append(optionItem);\n atcb_generate_label(host, data, optionItem, 'close', !data.hideIconList);\n }\n return optionsList;\n}\nfunction atcb_generate_bg_overlay(host, trigger = '', modal = false, darken = true) {\n const bgOverlay = (function () {\n if (modal) {\n return document.createElement('dialog');\n }\n return document.createElement('div');\n })();\n if (modal) {\n bgOverlay.setAttribute('open', true);\n }\n bgOverlay.id = 'atcb-bgoverlay';\n if (!darken) {\n bgOverlay.classList.add('atcb-no-bg');\n }\n bgOverlay.role = 'button';\n bgOverlay.tabIndex = 0;\n bgOverlay.addEventListener(\n 'mouseup',\n atcb_debounce_leading((e) => {\n if (e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }),\n );\n let fingerMoved = false;\n bgOverlay.addEventListener(\n 'touchstart',\n atcb_debounce_leading(() => (fingerMoved = false)),\n { passive: true },\n );\n bgOverlay.addEventListener(\n 'touchmove',\n atcb_debounce_leading(() => (fingerMoved = true)),\n { passive: true },\n );\n bgOverlay.addEventListener(\n 'touchend',\n atcb_debounce((e) => {\n if (fingerMoved !== false || e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }),\n { passive: true },\n );\n if (trigger !== 'click') {\n bgOverlay.addEventListener(\n 'mousemove',\n atcb_debounce_leading((e) => {\n if (e.target !== e.currentTarget) return;\n atcb_log_event('closeList', 'Background Hit', atcbStates['active']);\n atcb_toggle(host, 'close');\n }),\n );\n } else {\n bgOverlay.classList.add('atcb-click');\n }\n return bgOverlay;\n}\nfunction atcb_create_atcbl(host, atList = true) {\n const atcbL = document.createElement('div');\n atcbL.id = 'add-to-calendar-button-reference';\n atcbL.style.cssText = 'width: 130px; padding: 5px; height: auto; opacity: .8; transform: translate3d(0, 0, 0); z-index: 15000000;';\n setTimeout(() => {\n atcbL.innerHTML = '' + atcbIcon['atcb'] + '';\n }, 500);\n if (atList) {\n host.querySelector('.atcb-initialized .atcb-list-wrapper').append(atcbL);\n } else {\n if (window.innerHeight > 1000 || window.innerWidth > 1000) {\n host.append(atcbL);\n atcbL.style.cssText += 'position: fixed; bottom: 15px; right: 30px;';\n }\n }\n}\nfunction atcb_create_modal(host, data, icon = '', headline, content = '', buttons = [], subEvents = [], keyboardTrigger = false, goto = {}) {\n atcbStates['active'] = data.identifier;\n const modalHost = atcb_generate_modal_host(host, data, false);\n const bgOverlay = (function () {\n const el = modalHost.getElementById('atcb-bgoverlay');\n if (!el) {\n const newOverlay = atcb_generate_bg_overlay(host, 'click', true, !data.hideBackground);\n modalHost.querySelector('.atcb-modal-host-initialized').append(newOverlay);\n return newOverlay;\n }\n return el;\n })();\n const modalWrapper = document.createElement('div');\n modalWrapper.classList.add('atcb-modal');\n bgOverlay.append(modalWrapper);\n const modalCount = modalHost.querySelectorAll('.atcb-modal').length;\n modalWrapper.dataset.modalNr = modalCount;\n modalWrapper.tabIndex = 0;\n modalWrapper.focus({ preventScroll: true });\n modalWrapper.blur();\n const parentButton = (function () {\n const hostEl = host.getElementById(data.identifier);\n if (hostEl) {\n return hostEl;\n }\n return document.getElementById(data.identifier);\n })();\n if (parentButton) {\n parentButton.classList.add('atcb-active-modal');\n }\n const modal = document.createElement('div');\n modal.classList.add('atcb-modal-box');\n if (data.rtl) {\n modal.classList.add('atcb-rtl');\n }\n modalWrapper.append(modal);\n atcb_set_sizes(modal, data.sizes);\n atcb_set_fullsize(bgOverlay);\n if (icon != '' && !data.hideIconModal) {\n const modalIcon = document.createElement('div');\n modalIcon.classList.add('atcb-modal-icon');\n modalIcon.innerHTML = atcbIcon[`${icon}`];\n modal.append(modalIcon);\n }\n if (headline && headline != '') {\n const modalHeadline = document.createElement('div');\n modalHeadline.classList.add('atcb-modal-headline');\n modalHeadline.textContent = headline;\n modal.append(modalHeadline);\n }\n if (content != '') {\n const modalContent = document.createElement('div');\n modalContent.classList.add('atcb-modal-content');\n modalContent.innerHTML = content;\n modal.append(modalContent);\n }\n if (subEvents.length > 1) {\n if (!data.hideBranding) {\n atcb_create_atcbl(modalHost, false);\n }\n const modalsubEventsContent = document.createElement('div');\n modalsubEventsContent.classList.add('atcb-modal-content');\n modal.append(modalsubEventsContent);\n for (let i = 1; i < subEvents.length; i++) {\n const modalSubEventButton = document.createElement('button');\n modalSubEventButton.type = 'button';\n modalSubEventButton.id = data.identifier + '-' + subEvents[0] + '-' + i;\n if (atcbStates[`${data.identifier}`][`${subEvents[0]}`][i - 1] > 0) {\n modalSubEventButton.classList.add('atcb-saved');\n }\n modalSubEventButton.classList.add('atcb-subevent-btn');\n modalsubEventsContent.append(modalSubEventButton);\n atcb_generate_date_button(data, modalSubEventButton, i);\n if (!data.dates[i - 1].overdue || data.pastDateHandling == 'none') {\n if (i == 1 && keyboardTrigger) {\n modalSubEventButton.focus();\n }\n modalSubEventButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_log_event('openSubEventLink', modalSubEventButton.id, data.identifier);\n modalSubEventButton.blur();\n atcb_generate_links(host, subEvents[0], data, subEvents[`${i}`], keyboardTrigger, true);\n }),\n );\n } else {\n modalSubEventButton.setAttribute('disabled', true);\n modalSubEventButton.style.cssText = 'opacity: .75; cursor: not-allowed; filter: brightness(95%); border-style: dashed;';\n }\n }\n }\n if (buttons.length == 0) {\n buttons.push({ type: 'close', label: atcb_translate_hook('close', data) });\n }\n const modalButtons = document.createElement('div');\n modalButtons.classList.add('atcb-modal-buttons');\n modal.append(modalButtons);\n buttons.forEach((button, index) => {\n let modalButton;\n if (button.href != null && button.href != '') {\n modalButton = document.createElement('a');\n modalButton.setAttribute('target', atcbDefaultTarget);\n modalButton.setAttribute('href', button.href);\n modalButton.setAttribute('rel', 'noopener');\n } else {\n modalButton = document.createElement('button');\n modalButton.type = 'button';\n }\n modalButton.classList.add('atcb-modal-btn');\n if (button.primary) {\n modalButton.classList.add('atcb-modal-btn-primary');\n }\n if (button.label == null || button.label == '') {\n button.label = atcb_translate_hook('modal.button.default', data);\n }\n modalButton.textContent = button.label;\n modalButtons.append(modalButton);\n if (index == 0 && subEvents.length < 2 && keyboardTrigger) {\n modalButton.focus();\n }\n switch (button.type) {\n default:\n case 'close':\n modalButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_log_event('closeList', 'Modal Close Button', atcbStates['active']);\n atcb_close(host);\n }),\n );\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || (event.key === 'Alt' && event.key === 'Control' && event.code === 'Space')) {\n atcb_log_event('closeList', 'Modal Close Button', atcbStates['active']);\n atcb_toggle(host, 'close', '', '', true);\n }\n });\n break;\n case 'yahoo2nd': // for yahoo subscribe modal, where we guide the user through the process\n modalButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_close(host);\n atcb_subscribe_yahoo_modal_switch(host, data);\n }),\n );\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || (event.key === 'Alt' && event.key === 'Control' && event.code === 'Space')) {\n atcb_toggle(host, 'close', '', '', true);\n atcb_subscribe_yahoo_modal_switch(host, data, keyboardTrigger);\n }\n });\n break;\n case '2timeslink': // for the note that the user shall click the button twice\n modalButton.addEventListener(\n 'click',\n atcb_debounce(() => {\n atcb_close(host);\n atcb_generate_links(host, goto.type, data, goto.id, keyboardTrigger, false, true);\n }),\n );\n modalButton.addEventListener('keyup', function (event) {\n if (event.key === 'Enter' || event.code == 'Space' || (event.key === 'Alt' && event.key === 'Control' && event.code === 'Space')) {\n atcb_toggle(host, 'close', '', '', true);\n atcb_generate_links(host, goto.type, data, goto.id, keyboardTrigger, false, true);\n }\n });\n break;\n case 'none':\n break;\n }\n });\n if (modalCount > 1) {\n const prevModal = modalHost.querySelector('.atcb-modal[data-modal-nr=\"' + (modalCount - 1) + '\"]');\n prevModal.style.display = 'none';\n }\n atcb_manage_body_scroll(modalHost, modalWrapper);\n}\nfunction atcb_subscribe_yahoo_modal_switch(host, data, keyboardTrigger) {\n atcb_set_fully_successful(host, data);\n atcb_generate_links(host, 'yahoo2nd', data, 'all', keyboardTrigger);\n}\nfunction atcb_generate_date_button(data, parent, subEvent = 'all') {\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n const fullTimeInfo = (function () {\n let startDateInfo, endDateInfo, timeZoneInfoStart, timeZoneInfoEnd;\n let formattedTimeStart = {};\n let formattedTimeEnd = {};\n let timeBlocks = [];\n let timeZoneInfoStringStart = '';\n let timeZoneInfoStringEnd = '';\n if (subEvent == 'all') {\n formattedTimeStart = atcb_generate_time(data.dates[0]);\n formattedTimeEnd = atcb_generate_time(data.dates[data.dates.length - 1]);\n timeZoneInfoStart = data.dates[0].timeZone;\n timeZoneInfoEnd = data.dates[data.dates.length - 1].timeZone;\n } else {\n formattedTimeStart = atcb_generate_time(data.dates[`${subEvent}`]);\n formattedTimeEnd = formattedTimeStart;\n timeZoneInfoStart = data.dates[`${subEvent}`].timeZone;\n timeZoneInfoEnd = timeZoneInfoStart;\n }\n startDateInfo = new Date(formattedTimeStart.start);\n endDateInfo = new Date(formattedTimeEnd.end);\n if (formattedTimeStart.allday) {\n timeZoneInfoStart = 'GMT';\n }\n if (formattedTimeEnd.allday) {\n timeZoneInfoEnd = 'GMT';\n }\n const browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n const magicLocationPhrases = ['global', 'world-wide', 'worldwide', 'online'];\n const convertable = (function () {\n let i = 0;\n let j = data.dates.length - 1;\n if (subEvent != 'all') {\n i = j = subEvent;\n }\n for (i; i <= j; i++) {\n const magicLocation = (function () {\n if (data.dates[`${i}`].location != null && data.dates[`${i}`].location != '') {\n if (magicLocationPhrases.includes(data.dates[`${i}`].location.toLowerCase())) {\n return true;\n }\n }\n return false;\n })();\n if (!magicLocation && !data.dates[`${i}`].onlineEvent) {\n return false;\n }\n }\n return true;\n })();\n if (convertable) {\n timeZoneInfoStart = timeZoneInfoEnd = browserTimezone;\n } else {\n if (!formattedTimeStart.allday && browserTimezone != timeZoneInfoStart && timeZoneInfoStart != timeZoneInfoEnd) {\n timeZoneInfoStringStart = '(' + timeZoneInfoStart + ')';\n }\n if ((!formattedTimeEnd.allday && browserTimezone != timeZoneInfoEnd) || timeZoneInfoStart != timeZoneInfoEnd) {\n timeZoneInfoStringEnd = '(' + timeZoneInfoEnd + ')';\n }\n }\n const now = new Date();\n const dropYearStart = (function () {\n if (startDateInfo.getFullYear() == now.getFullYear()) {\n return true;\n }\n return false;\n })();\n const dropYearEnd = (function () {\n if (endDateInfo.getFullYear() == now.getFullYear()) {\n return true;\n }\n return false;\n })();\n const formatOptionsStart = get_format_options(timeZoneInfoStart, dropYearStart, data.language);\n const formatOptionsEnd = get_format_options(timeZoneInfoEnd, dropYearEnd, data.language);\n if (startDateInfo.toLocaleDateString(data.language, formatOptionsEnd.DateLong) === endDateInfo.toLocaleDateString(data.language, formatOptionsEnd.DateLong)) {\n if (formattedTimeStart.allday) {\n if (!dropYearStart) {\n timeBlocks.push(startDateInfo.toLocaleDateString(data.language, formatOptionsStart.DateLong));\n }\n } else {\n let timeString = '';\n if (dropYearStart) {\n timeString = startDateInfo.toLocaleString(data.language, formatOptionsStart.Time);\n } else {\n timeString = startDateInfo.toLocaleString(data.language, formatOptionsStart.DateTimeLong);\n }\n if (data.language == 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n if (timeZoneInfoStringStart != '') {\n timeBlocks.push(timeZoneInfoStringStart);\n }\n timeBlocks.push('-');\n timeString = endDateInfo.toLocaleTimeString(data.language, formatOptionsEnd.Time);\n if (data.language == 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n if (timeZoneInfoStringEnd != '') {\n timeBlocks.push(timeZoneInfoStringEnd);\n }\n }\n } else {\n if (formattedTimeStart.allday) {\n timeBlocks.push(startDateInfo.toLocaleDateString(data.language, formatOptionsStart.DateLong));\n } else {\n let timeString = '';\n if (dropYearStart) {\n timeString = startDateInfo.toLocaleString(data.language, formatOptionsStart.Time);\n } else {\n timeString = startDateInfo.toLocaleString(data.language, formatOptionsStart.DateTimeLong);\n }\n if (data.language == 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n }\n if (timeZoneInfoStringStart != '') {\n timeBlocks.push(timeZoneInfoStringStart);\n }\n timeBlocks.push('-');\n if (formattedTimeEnd.allday) {\n timeBlocks.push(endDateInfo.toLocaleDateString(data.language, formatOptionsEnd.DateLong));\n } else {\n let timeString = endDateInfo.toLocaleString(data.language, formatOptionsEnd.DateTimeLong);\n if (data.language == 'en') {\n timeString = timeString.replace(/:00/, '');\n }\n timeBlocks.push(timeString);\n }\n if (timeZoneInfoStringEnd != '') {\n timeBlocks.push(timeZoneInfoStringEnd);\n }\n }\n return timeBlocks;\n })();\n const hoverText = (function () {\n if (subEvent != 'all' && data.dates[`${subEvent}`].status == 'CANCELLED') {\n return atcb_translate_hook('date.status.cancelled', data) + '
' + atcb_translate_hook('date.status.cancelled.cta', data);\n }\n if (data.pastDateHandling != 'none') {\n if ((subEvent == 'all' && data.allOverdue) || (subEvent != 'all' && data.dates[`${subEvent}`].overdue)) {\n return atcb_translate_hook('expired', data);\n }\n }\n if (data.label && data.label != '') {\n return data.label;\n }\n return '+ ' + atcb_translate_hook('label.addtocalendar', data);\n })();\n const cancelledInfo = (function () {\n if (subEvent != 'all' && data.dates[`${subEvent}`].status == 'CANCELLED') {\n return atcb_translate_hook('date.status.cancelled', data);\n }\n return '';\n })();\n const recurringString = (function () {\n if (fullTimeInfo.length == 0) {\n return atcb_translate_hook('recurring', data) + ' ⟳';\n }\n return '⟳';\n })();\n let subEventAll = false;\n if (subEvent === 'all') {\n subEvent = 0;\n subEventAll = true;\n }\n const startDate = new Date(atcb_generate_time(data.dates[`${subEvent}`]).start);\n const allDay = atcb_generate_time(data.dates[`${subEvent}`]).allday;\n const timeZone = data.dates[`${subEvent}`].timeZone;\n const btnLeft = document.createElement('div');\n btnLeft.classList.add('atcb-date-btn-left');\n parent.append(btnLeft);\n const btnDay = document.createElement('div');\n btnDay.classList.add('atcb-date-btn-day');\n btnLeft.append(btnDay);\n const btnMonth = document.createElement('div');\n btnMonth.classList.add('atcb-date-btn-month');\n btnDay.textContent = (function () {\n if (allDay) {\n return startDate.toLocaleString(data.language, { day: 'numeric' });\n }\n return startDate.toLocaleString(data.language, {\n day: 'numeric',\n timeZone: timeZone,\n });\n })();\n btnMonth.textContent = (function () {\n if (allDay) {\n return startDate.toLocaleString(data.language, { month: 'short' });\n }\n return startDate.toLocaleString(data.language, {\n month: 'short',\n timeZone: timeZone,\n });\n })();\n btnLeft.append(btnMonth);\n const btnRight = document.createElement('div');\n btnRight.classList.add('atcb-date-btn-right');\n parent.append(btnRight);\n const btnDetails = document.createElement('div');\n btnDetails.classList.add('atcb-date-btn-details');\n btnRight.append(btnDetails);\n const btnHeadline = document.createElement('div');\n btnHeadline.classList.add('atcb-date-btn-headline');\n if (data.dates.length > 1 && subEventAll) {\n btnHeadline.textContent = data.name; \n } else {\n btnHeadline.textContent = data.dates[`${subEvent}`].name;\n }\n btnDetails.append(btnHeadline);\n if ((data.dates[`${subEvent}`].location != null && data.dates[`${subEvent}`].location != '' && !data.dates[`${subEvent}`].onlineEvent) || cancelledInfo != '') {\n const btnLocation = document.createElement('div');\n btnLocation.classList.add('atcb-date-btn-content');\n btnDetails.append(btnLocation);\n if (cancelledInfo != '') {\n btnLocation.textContent = cancelledInfo;\n btnLocation.style.fontWeight = '600';\n btnLocation.style.color = '#9c1a23';\n } else {\n btnLocation.classList.add('atcb-date-btn-content-location');\n const btnLocationIcon = document.createElement('span');\n btnLocationIcon.classList.add('atcb-date-btn-content-icon');\n btnLocationIcon.innerHTML = atcbIcon['location'];\n btnLocation.append(btnLocationIcon);\n const btnLocationText = document.createElement('span');\n btnLocationText.textContent = data.dates[`${subEvent}`].location;\n btnLocation.append(btnLocationText);\n }\n } else {\n if (data.dates[`${subEvent}`].description != '' && fullTimeInfo.length == 0 && (data.recurrence == null || data.recurrence == '')) {\n const btnDescription = document.createElement('div');\n btnDescription.classList.add('atcb-date-btn-content');\n btnDescription.textContent = data.dates[`${subEvent}`].description;\n btnDescription.style.cssText = 'overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;';\n btnDetails.append(btnDescription);\n } else {\n btnHeadline.style.cssText = '-webkit-line-clamp: 2;';\n if (fullTimeInfo.length == 0 && (data.recurrence == null || data.recurrence == '')) {\n btnRight.style.alignSelf = 'center';\n btnHeadline.style.cssText = 'text-align: center; -webkit-line-clamp: 2;';\n }\n }\n }\n if (fullTimeInfo.length > 0 || (data.recurrence != null && data.recurrence != '')) {\n const btnDateTime = document.createElement('div');\n btnDateTime.classList.add('atcb-date-btn-content');\n btnDetails.append(btnDateTime);\n const btnDateTimeIcon = document.createElement('span');\n btnDateTimeIcon.classList.add('atcb-date-btn-content-icon');\n btnDateTimeIcon.innerHTML = atcbIcon['ical'];\n btnDateTime.append(btnDateTimeIcon);\n const btnDateTimeText = document.createElement('span');\n btnDateTimeText.classList.add('atcb-date-btn-content-text');\n btnDateTime.append(btnDateTimeText);\n fullTimeInfo.forEach(function (block) {\n const btnDateTimeTextBlock = document.createElement('span');\n btnDateTimeTextBlock.textContent = block;\n btnDateTimeText.append(btnDateTimeTextBlock);\n });\n if (data.recurrence != null && data.recurrence != '') {\n const recurSign = document.createElement('span');\n recurSign.innerHTML = recurringString;\n btnDateTimeText.append(recurSign);\n }\n }\n const btnHover = document.createElement('div');\n btnHover.classList.add('atcb-date-btn-hover');\n btnHover.innerHTML = hoverText;\n btnRight.append(btnHover);\n if (!data.hideCheckmark) {\n const btnCheck = document.createElement('div');\n btnCheck.classList.add('atcb-checkmark');\n btnCheck.innerHTML = atcbIcon['checkmark'];\n parent.append(btnCheck);\n }\n}\nfunction get_format_options(timeZoneInfo, dropYear = false, language = 'en') {\n const hoursFormat = (function () {\n if (language == 'en') {\n return 'h12'; \n }\n return 'h23'; \n })();\n if (dropYear) {\n return {\n DateLong: {\n timeZone: timeZoneInfo,\n month: 'short',\n day: 'numeric',\n },\n DateTimeLong: {\n timeZone: timeZoneInfo,\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat,\n },\n Time: {\n timeZone: timeZoneInfo,\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat,\n },\n };\n }\n return {\n DateLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n },\n DateTimeLong: {\n timeZone: timeZoneInfo,\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat,\n },\n Time: {\n timeZone: timeZoneInfo,\n hour: 'numeric',\n minute: '2-digit',\n hourCycle: hoursFormat,\n },\n };\n}\nfunction atcb_generate_modal_host(host, data, reset = true) {\n const existingModalHost = document.getElementById(data.identifier + '-modal-host');\n if (!reset && existingModalHost) {\n return existingModalHost.shadowRoot;\n }\n if (existingModalHost) {\n existingModalHost.remove();\n }\n let newModalHost = document.createElement('div');\n newModalHost.id = data.identifier + '-modal-host';\n if (host.host.hasAttribute('styleLight')) {\n newModalHost.setAttribute('styleLight', host.host.getAttribute('styleLight'));\n }\n if (host.host.hasAttribute('styleDark')) {\n newModalHost.setAttribute('styleDark', host.host.getAttribute('styleDark'));\n }\n if (host.host.hasAttribute('cspnonce')) {\n newModalHost.setAttribute('cspnonce', host.host.getAttribute('cspnonce'));\n }\n newModalHost.setAttribute('atcb-button-id', data.identifier);\n newModalHost.setAttribute('style', 'transform:translate3D(0, 0, 0);visibility:visible;opacity:1;position:fixed;top:0;left:0;width:100%;height:100%;display:flex;z-index:13999998;');\n document.body.append(newModalHost);\n newModalHost.attachShadow({ mode: 'open', delegateFocus: true });\n const elem = document.createElement('template');\n elem.innerHTML = '
';\n newModalHost.shadowRoot.append(elem.content.cloneNode(true));\n atcb_set_light_mode(newModalHost.shadowRoot, data);\n atcb_load_css(newModalHost.shadowRoot, null, data.buttonStyle, false, false, data.customCss);\n return newModalHost.shadowRoot;\n}\nfunction atcb_generate_overlay_dom(host, data) {\n const newHost = atcb_generate_modal_host(host, data);\n atcb_set_fullsize(newHost.querySelector('.atcb-modal-host-initialized'));\n const nodes = Array.from(host.children);\n nodes.forEach((node) => {\n if (node.tagName != 'STYLE') {\n newHost.querySelector('.atcb-modal-host-initialized').append(node.cloneNode(true));\n }\n });\n newHost.querySelector('button.atcb-button').removeAttribute('id');\n host.host.classList.add('atcb-shadow-hide');\n host.querySelector('.atcb-initialized').style.opacity = '0';\n atcb_position_shadow_button(host, newHost);\n window.addEventListener('scroll', atcb_position_shadow_button_listener);\n window.addEventListener('resize', atcb_position_shadow_button_listener);\n return newHost.querySelector('.atcb-modal-host-initialized');\n}\n\n\nfunction atcb_generate_rich_data(data, parent) {\n const schemaEl = document.createElement('script');\n schemaEl.id = 'atcb-schema-' + data.identifier;\n if (parent.hasAttribute('cspnonce')) {\n const cspnonceRegex = /[`'\"()[\\]{}<>\\s]/;\n if (cspnonceRegex.test(parent.getAttribute('cspnonce'))) {\n throw new Error('cspnonce input contains forbidden characters.');\n }\n schemaEl.setAttribute('nonce', parent.getAttribute('cspnonce'));\n }\n schemaEl.type = 'application/ld+json';\n const id = data.name.replace(/\\s/g, '');\n const schemaContentMulti = [];\n if (data.dates.length > 1) {\n const parts = [];\n parts.push('\"@context\":\"https://schema.org\"');\n parts.push('\"@type\":\"EventSeries\"');\n parts.push('\"@id\":\"' + id + '\"');\n parts.push('\"name\":\"' + data.name + '\",');\n schemaContentMulti.push('{\\r\\n' + parts.join(',\\r\\n') + '\\r\\n');\n }\n const schemaContentFull = [];\n for (let i = 0; i < data.dates.length; i++) {\n const schemaContent = [];\n schemaContent.push('\"@context\":\"https://schema.org\"');\n schemaContent.push('\"@type\":\"Event\"');\n if (data.dates.length > 1) {\n schemaContent.push('\"@id\":\"' + id + '-' + (i + 1) + '\"');\n }\n if (data.dates[`${i}`].status === 'CANCELLED') {\n schemaContent.push('\"eventStatus\":\"https://schema.org/EventCancelled\"');\n }\n schemaContent.push('\"name\":\"' + data.dates[`${i}`].name + '\"');\n if (data.dates[`${i}`].descriptionHtmlFree) {\n schemaContent.push('\"description\":\"' + data.dates[`${i}`].descriptionHtmlFree + '\"');\n }\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'delimiters', 'general', true);\n schemaContent.push('\"startDate\":\"' + formattedDate.start + '\"');\n if (formattedDate.duration) {\n schemaContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaContent.push(data.dates[`${i}`].onlineEvent ? '\"eventAttendanceMode\":\"https://schema.org/OnlineEventAttendanceMode\",\\r\\n\"location\": {\\r\\n\"@type\":\"VirtualLocation\",\\r\\n\"url\":\"' + data.dates[`${i}`].location + '\"\\r\\n}' : '\"location\":\"' + data.dates[`${i}`].location + '\"');\n if (data.recurrence && data.recurrence !== '') {\n schemaContent.push(...atcb_generate_rich_data_recurrence(data, formattedDate));\n } else {\n schemaContent.push('\"endDate\":\"' + formattedDate.end + '\"');\n }\n if (data.dates[`${i}`].organizer && data.dates[`${i}`].organizer !== '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n schemaContent.push('\"organizer\":{\\r\\n\"@type\":\"Person\",\\r\\n\"name\":\"' + organizerParts[0] + '\",\\r\\n\"email\":\"' + organizerParts[1] + '\"\\r\\n}');\n }\n const imageData = [];\n if (data.images) {\n if (Array.isArray(data.images)) {\n for (let i = 0; i < data.images.length; i++) {\n if (atcb_secure_url(data.images[`${i}`], data.debug) && data.images[`${i}`].startsWith('http')) {\n imageData.push('\"' + data.images[`${i}`] + '\"');\n }\n }\n }\n } else {\n imageData.push('\"https://add-to-calendar-button.com/demo_assets/img/1x1.png\"');\n imageData.push('\"https://add-to-calendar-button.com/demo_assets/img/4x3.png\"');\n imageData.push('\"https://add-to-calendar-button.com/demo_assets/img/16x9.png\"');\n }\n if (imageData.length > 0) {\n schemaContent.push('\"image\":[\\r\\n' + imageData.join(',\\r\\n') + ']');\n }\n schemaContentFull.push('{\\r\\n' + schemaContent.join(',\\r\\n') + '\\r\\n}');\n }\n if (data.dates.length > 1) {\n schemaEl.textContent = schemaContentMulti.join(',\\r\\n') + '\"subEvents\":[\\r\\n' + schemaContentFull.join(',\\r\\n') + '\\r\\n]\\r\\n}';\n } else {\n schemaEl.textContent = schemaContentFull[0];\n }\n document.body.insertBefore(schemaEl, document.body.firstChild);\n}\nfunction atcb_generate_rich_data_recurrence(data, formattedDate) {\n const schemaRecurrenceContent = [];\n schemaRecurrenceContent.push('\"eventSchedule\": { \"@type\": \"Schedule\"');\n schemaRecurrenceContent.push('\"scheduleTimezone\":\"' + data.dates[0].timeZone + '\"');\n if (data.recurrence_interval && data.recurrence_interval !== '' && data.recurrence_frequency && data.recurrence_frequency !== '') {\n const repeatFrequency = 'P' + data.recurrence_interval + data.recurrence_frequency.substring(0, 1);\n schemaRecurrenceContent.push('\"repeatFrequency\":\"' + repeatFrequency + '\"');\n }\n if (data.recurrence_byDay && data.recurrence_byDay !== '') {\n const byDayString = (function () {\n if (/\\d/.test(data.recurrence_byDay)) {\n return '\"' + data.recurrence_byDay + '\"';\n } else {\n const byDays = data.recurrence_byDay.split(',');\n const helperMap = {\n MO: 'https://schema.org/Monday',\n TU: 'https://schema.org/Tuesday',\n WE: 'https://schema.org/Wednesday',\n TH: 'https://schema.org/Thursday',\n FR: 'https://schema.org/Friday',\n SA: 'https://schema.org/Saturday',\n SU: 'https://schema.org/Sunday',\n };\n const output = [];\n for (let i = 0; i < byDays.length; i++) {\n output.push('\"' + helperMap[byDays[`${i}`]] + '\"');\n }\n return '[' + output.join(',') + ']';\n }\n })();\n schemaRecurrenceContent.push('\"byDay\":' + byDayString);\n }\n if (data.recurrence_byMonth && data.recurrence_byMonth !== '') {\n const byMonthString = data.recurrence_byMonth.includes(',') ? '[' + data.recurrence_byMonth + ']' : data.recurrence_byMonth;\n schemaRecurrenceContent.push('\"byMonth\":\"' + byMonthString + '\"');\n }\n if (data.recurrence_byMonthDay && data.recurrence_byMonthDay !== '') {\n const byMonthDayString = data.recurrence_byMonthDay.includes(',') ? '[' + data.recurrence_byMonthDay + ']' : data.recurrence_byMonthDay;\n schemaRecurrenceContent.push('\"byMonthDay\":\"' + byMonthDayString + '\"');\n }\n if (data.recurrence_count && data.recurrence_count !== '') {\n schemaRecurrenceContent.push('\"repeatCount\":\"' + data.recurrence_count + '\"');\n }\n if (data.recurrence_until && data.recurrence_until !== '') {\n schemaRecurrenceContent.push('\"endDate\":\"' + data.recurrence_until + '\"');\n }\n if (data.startTime && data.startTime !== '' && data.endTime && data.endTime !== '') {\n schemaRecurrenceContent.push('\"startTime\":\"' + data.startTime + ':00\"');\n schemaRecurrenceContent.push('\"endTime\":\"' + data.endTime + ':00\"');\n schemaRecurrenceContent.push('\"duration\":\"' + formattedDate.duration + '\"');\n }\n schemaRecurrenceContent.push('\"startDate\":\"' + data.startDate + '\" }');\n return schemaRecurrenceContent;\n}\n\n\nfunction atcb_generate_links(host, type, data, subEvent = 'all', keyboardTrigger = false, multiDateModal = false, skipDoubleLink = false) {\n let linkType = type;\n if (type == 'apple') {\n linkType = 'ical';\n }\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent) - 1;\n } else if (data.dates.length == 1) {\n subEvent = 0;\n }\n if (data.subscribe) {\n atcb_generate_subscribe_links(host, linkType, data, keyboardTrigger);\n return;\n }\n if (subEvent != 'all') {\n if (data.dates[`${subEvent}`].status == 'CANCELLED' && linkType != 'ical') {\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('date.status.cancelled', data), atcb_translate_hook('date.status.cancelled.cta', data), [], [], keyboardTrigger);\n } else {\n if (!skipDoubleLink) {\n if (atcbIsiOS() && linkType === 'google') {\n atcb_create_modal(\n host,\n data,\n 'warning',\n '',\n atcb_translate_hook('modal.crios.google.text', data),\n [\n {\n label: atcb_translate_hook('continue', data),\n primary: true,\n type: '2timeslink',\n },\n { label: atcb_translate_hook('cancel', data) },\n ],\n [],\n keyboardTrigger,\n { type: type, id: subEvent + 1 },\n );\n return;\n }\n }\n switch (linkType) {\n case 'ical': // also for apple (see above)\n atcb_generate_ical(host, data, subEvent, keyboardTrigger);\n break;\n case 'google':\n atcb_generate_google(data, data.dates[`${subEvent}`]);\n break;\n case 'msteams':\n atcb_generate_msteams(data, data.dates[`${subEvent}`]);\n break;\n case 'ms365':\n atcb_generate_microsoft(data, data.dates[`${subEvent}`]);\n break;\n case 'outlookcom':\n atcb_generate_microsoft(data, data.dates[`${subEvent}`], 'outlook');\n break;\n case 'yahoo':\n atcb_generate_yahoo(data, data.dates[`${subEvent}`]);\n break;\n }\n }\n const modalHost = document.getElementById(data.identifier + '-modal-host');\n if (modalHost) {\n const subEventButton = modalHost.shadowRoot.getElementById(data.identifier + '-' + type + '-' + (subEvent + 1));\n if (subEventButton) {\n subEventButton.classList.add('atcb-saved');\n }\n }\n atcbStates[`${data.identifier}`][`${type}`][`${subEvent}`]++;\n const filteredStates = atcbStates[`${data.identifier}`][`${type}`].filter(function (value) {\n return value < 1;\n });\n if (filteredStates.length == 0) {\n atcb_set_fully_successful(host, data, multiDateModal);\n }\n return;\n }\n atcb_generate_multidate_links(host, type, linkType, data, keyboardTrigger, multiDateModal);\n}\nfunction atcb_generate_multidate_links(host, type, linkType, data, keyboardTrigger, multiDateModal) {\n if (\n linkType == 'ical' &&\n data.dates.every(function (theSubEvent) {\n if (theSubEvent.status == 'CANCELLED' || (theSubEvent.organizer != null && theSubEvent.organizer != '')) {\n return false;\n }\n return true;\n })\n ) {\n atcb_generate_ical(host, data, 'all', keyboardTrigger);\n for (let i = 0; i < atcbStates[`${data.identifier}`][`${type}`].length; i++) {\n atcbStates[`${data.identifier}`][`${type}`][`${i}`]++;\n }\n atcb_set_fully_successful(host, data, multiDateModal);\n return;\n }\n if (!multiDateModal) {\n const individualButtons = [type];\n for (let i = 0; i < data.dates.length; i++) {\n individualButtons.push(i + 1);\n }\n atcb_create_modal(host, data, type, atcb_translate_hook('modal.multidate.h', data), atcb_translate_hook('modal.multidate.text', data), [], individualButtons, keyboardTrigger);\n }\n}\nfunction atcb_generate_subscribe_links(host, linkType, data, keyboardTrigger) {\n const adjustedFileUrl = data.icsFile.replace('https://', 'webcal://');\n switch (linkType) {\n case 'ical': // also for apple (see above)\n if (atcbIsAndroid() || data.fakeAndroid) {\n atcb_subscribe_ical(data, data.icsFile);\n break;\n }\n atcb_subscribe_ical(data, adjustedFileUrl);\n break;\n case 'google':\n atcb_subscribe_google(data, adjustedFileUrl);\n break;\n case 'ms365':\n atcb_subscribe_microsoft(data, adjustedFileUrl, data.name);\n break;\n case 'outlookcom':\n atcb_subscribe_microsoft(data, adjustedFileUrl, data.name, 'outlook');\n break;\n case 'yahoo':\n if (data.proxy) {\n atcb_open_cal_url(data, 'yahoo', '', true);\n return;\n }\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(\n host,\n data,\n 'yahoo',\n atcb_translate_hook('modal.subscribe.yahoo.h', data),\n atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.subscribe.yahoo.text', data),\n [\n {\n label: atcb_translate_hook('modal.subscribe.yahoo.button', data),\n primary: true,\n type: 'yahoo2nd',\n href: 'https://www.yahoo.com/calendar',\n },\n { label: atcb_translate_hook('cancel', data) },\n ],\n [],\n keyboardTrigger,\n );\n return;\n case 'yahoo2nd':\n atcb_copy_to_clipboard(data.icsFile);\n atcb_create_modal(\n host,\n data,\n 'yahoo',\n atcb_translate_hook('modal.subscribe.yahoo.h', data),\n atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.subscribe.yahoo.text', data),\n [\n {\n label: atcb_translate_hook('modal.subscribe.yahoo.button', data),\n type: 'none',\n href: 'https://www.yahoo.com/calendar',\n },\n { label: atcb_translate_hook('cancel', data) },\n ],\n [],\n keyboardTrigger,\n );\n return;\n }\n atcb_set_fully_successful(host, data);\n}\nfunction atcb_set_fully_successful(host, data, multiDateModal = false) {\n const trigger = host.getElementById(data.identifier);\n if (trigger) {\n trigger.classList.add('atcb-saved');\n }\n atcb_saved_hook(host, data);\n if (multiDateModal && host.querySelectorAll('.atcb-modal[data-modal-nr]').length < 2) {\n atcb_toggle(host, 'close');\n }\n}\nfunction atcb_subscribe_ical(data, fileUrl) {\n atcb_open_cal_url(data, 'ical', fileUrl, true);\n}\nfunction atcb_subscribe_google(data, fileUrl) {\n const baseUrl = 'https://calendar.google.com/calendar/r?cid=';\n const newFileUrl = (function () {\n const fileUrlRegex = /^(https?:\\/\\/|webcal:\\/\\/|\\/\\/)calendar\\.google\\.com\\//;\n if (fileUrlRegex.test(fileUrl)) {\n return fileUrl.replace(/^(.)*\\?cid=/, '');\n }\n return encodeURIComponent(fileUrl);\n })();\n atcb_open_cal_url(data, 'google', baseUrl + newFileUrl, true);\n}\nfunction atcb_subscribe_microsoft(data, fileUrl, calName, type = '365') {\n const urlParts = [];\n const baseUrl = (function () {\n if (type == 'outlook') {\n return 'https://outlook.live.com/calendar/0/addfromweb/?';\n } else {\n return 'https://outlook.office.com/calendar/0/addfromweb/?';\n }\n })();\n urlParts.push('url=' + encodeURIComponent(fileUrl));\n urlParts.push('name=' + encodeURIComponent(calName));\n atcb_open_cal_url(data, type, baseUrl + urlParts.join('&'), true);\n}\nfunction atcb_generate_google(data, date) {\n const urlParts = [];\n urlParts.push('https://calendar.google.com/calendar/render?action=TEMPLATE');\n const formattedDate = atcb_generate_time(date, 'clean', 'google');\n urlParts.push('dates=' + encodeURIComponent(formattedDate.start) + '%2F' + encodeURIComponent(formattedDate.end));\n if (date.timeZone != null && date.timeZone != '' && !/(GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|WET)/i.test(date.timeZone) && !formattedDate.allday) {\n urlParts.push('ctz=' + date.timeZone);\n }\n if (date.name != null && date.name != '') {\n urlParts.push('text=' + encodeURIComponent(date.name));\n }\n const tmpDataDescription = [];\n if (date.description != null && date.description != '') {\n tmpDataDescription.push(date.description);\n }\n if (date.location != null && date.location != '') {\n urlParts.push('location=' + encodeURIComponent(date.location));\n if (atcbIsiOS() || data.fakeIOS) {\n if (tmpDataDescription.length > 0) {\n tmpDataDescription.push('

');\n }\n tmpDataDescription.push('📍: ' + date.location);\n }\n }\n if (tmpDataDescription.length > 0) {\n urlParts.push('details=' + encodeURIComponent(tmpDataDescription.join('')));\n }\n if (date.recurrence != null && date.recurrence != '') {\n urlParts.push('recur=' + encodeURIComponent(date.recurrence));\n }\n if (date.availability != null && date.availability != '') {\n const availabilityPart = (function () {\n if (date.availability == 'free') {\n return 'crm=AVAILABLE&trp=false';\n }\n return 'crm=BUSY&trp=true';\n })();\n urlParts.push(availabilityPart);\n }\n atcb_open_cal_url(data, 'google', urlParts.join('&'));\n}\nfunction atcb_generate_yahoo(data, date) {\n const urlParts = [];\n urlParts.push('https://calendar.yahoo.com/?v=60');\n const formattedDate = atcb_generate_time(date, 'clean');\n urlParts.push('st=' + encodeURIComponent(formattedDate.start) + '&et=' + encodeURIComponent(formattedDate.end));\n if (formattedDate.allday) {\n urlParts.push('dur=allday');\n }\n if (date.name != null && date.name != '') {\n urlParts.push('title=' + encodeURIComponent(date.name));\n }\n if (date.location != null && date.location != '') {\n urlParts.push('in_loc=' + encodeURIComponent(date.location));\n }\n if (date.descriptionHtmlFree != null && date.descriptionHtmlFree != '') {\n urlParts.push('desc=' + encodeURIComponent(date.descriptionHtmlFree));\n }\n atcb_open_cal_url(data, 'yahoo', urlParts.join('&'));\n}\nfunction atcb_generate_microsoft(data, date, type = '365') {\n const urlParts = [];\n const basePath = (function () {\n if (atcbIsMobile() || data.fakeMobile) {\n return '/calendar/0/deeplink/compose?path=%2Fcalendar%2Faction%2Fcompose&rru=addevent';\n }\n return '/calendar/action/compose?rru=addevent';\n })();\n const baseUrl = (function () {\n if (type == 'outlook') {\n return 'https://outlook.live.com' + basePath;\n } else {\n return 'https://outlook.office.com' + basePath;\n }\n })();\n urlParts.push(baseUrl);\n const formattedDate = atcb_generate_time(date, 'delimiters', 'microsoft');\n urlParts.push('startdt=' + formattedDate.start);\n urlParts.push('enddt=' + formattedDate.end);\n if (formattedDate.allday) {\n urlParts.push('allday=true');\n }\n if (date.name != null && date.name != '') {\n urlParts.push('subject=' + encodeURIComponent(date.name));\n }\n if (date.location != null && date.location != '') {\n urlParts.push('location=' + encodeURIComponent(date.location));\n }\n if (date.description != null && date.description != '') {\n urlParts.push('body=' + encodeURIComponent(date.description));\n }\n atcb_open_cal_url(data, type, urlParts.join('&'));\n}\nfunction atcb_generate_msteams(data, date) {\n const urlParts = [];\n const baseUrl = 'https://teams.microsoft.com/l/meeting/new?';\n const formattedDate = atcb_generate_time(date, 'delimiters', 'msteams', true);\n if (!formattedDate.allday || atcbIsMobile() || data.fakeMobile) {\n urlParts.push('startTime=' + encodeURIComponent(formattedDate.start));\n urlParts.push('endTime=' + encodeURIComponent(formattedDate.end));\n } else {\n urlParts.push('startTime=' + formattedDate.start);\n urlParts.push('endTime=' + formattedDate.end);\n }\n if (date.name != null && date.name != '') {\n urlParts.push('subject=' + encodeURIComponent(date.name));\n }\n let locationString = '';\n if (date.location != null && date.location != '') {\n locationString = encodeURIComponent(date.location);\n urlParts.push('location=' + locationString);\n locationString += ' // '; \n }\n if (date.descriptionHtmlFree != null && date.descriptionHtmlFree != '') {\n urlParts.push('content=' + locationString + encodeURIComponent(date.descriptionHtmlFree));\n }\n atcb_open_cal_url(data, 'msteams', baseUrl + urlParts.join('&'));\n}\nfunction atcb_open_cal_url(data, type, url, subscribe = false, target = '') {\n if (target == '') {\n target = atcbDefaultTarget;\n }\n if (atcb_secure_url(url)) {\n if (data.proxy && data.proKey && data.proKey != '') {\n const urlType = subscribe ? 's' : 'o';\n const query = url ? '?url=' + encodeURIComponent(url) : '';\n url = 'https://caldn.net/' + data.proKey + '/' + urlType + '/' + type + query;\n if (!atcb_secure_url(url)) {\n return;\n }\n }\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const newTab = window.open(url, target);\n if (newTab) {\n newTab.focus();\n }\n }\n}\nfunction atcb_generate_ical(host, data, subEvent = 'all', keyboardTrigger = false) {\n if (subEvent != 'all') {\n subEvent = parseInt(subEvent);\n }\n const filename = atcb_determine_ical_filename(data, subEvent);\n const givenIcsFile = (function () {\n if (subEvent != 'all' && data.dates[`${subEvent}`].icsFile != null && data.dates[`${subEvent}`].icsFile != '') {\n return data.dates[`${subEvent}`].icsFile;\n }\n if (data.icsFile != null && data.icsFile != '') {\n return data.icsFile;\n }\n return '';\n })();\n if (givenIcsFile && givenIcsFile !== '' && data.proxy) {\n atcb_open_cal_url(data, 'ical', givenIcsFile);\n return;\n }\n if (givenIcsFile != '' && (!atcbIsiOS() || !atcbIsWebView() || data.bypassWebViewCheck == true)) {\n if (atcbIsiOS() && !atcbIsSafari()) {\n atcb_save_file(givenIcsFile.replace(/^https?:\\/\\//, 'webcal://'), filename);\n return;\n }\n atcb_save_file(givenIcsFile, filename);\n return;\n }\n const now = new Date();\n const ics_lines = ['BEGIN:VCALENDAR', 'VERSION:2.0'];\n ics_lines.push('PRODID:-// https://add-to-calendar-pro.com // button v' + atcbVersion + ' //EN');\n ics_lines.push('CALSCALE:GREGORIAN');\n if (subEvent == 'all') {\n ics_lines.push('METHOD:PUBLISH');\n } else {\n if (data.dates[`${subEvent}`].status != null && data.dates[`${subEvent}`].status == 'CANCELLED') {\n ics_lines.push('METHOD:CANCEL');\n } else {\n if (data.dates[`${subEvent}`].organizer != null && data.dates[`${subEvent}`].organizer != '') {\n ics_lines.push('METHOD:REQUEST');\n } else {\n ics_lines.push('METHOD:PUBLISH');\n }\n }\n }\n const usedTimeZones = [];\n const loopStart = (function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return 0;\n })();\n const loopEnd = (function () {\n if (subEvent != 'all') {\n return subEvent;\n }\n return data.dates.length - 1;\n })();\n for (let i = loopStart; i <= loopEnd; i++) {\n const formattedDate = atcb_generate_time(data.dates[`${i}`], 'clean', 'ical');\n const timeAddon = (function () {\n if (formattedDate.allday) {\n return ';VALUE=DATE';\n }\n if (data.dates[`${i}`].timeZone != null && data.dates[`${i}`].timeZone != '') {\n const timeZoneBlock = tzlib_get_ical_block(data.dates[`${i}`].timeZone);\n if (!usedTimeZones.includes(data.dates[`${i}`].timeZone)) {\n ics_lines.push(timeZoneBlock[0]);\n }\n usedTimeZones.push(data.dates[`${i}`].timeZone);\n return ';' + timeZoneBlock[1];\n }\n })();\n ics_lines.push('BEGIN:VEVENT');\n ics_lines.push('UID:' + data.dates[`${i}`].uid);\n ics_lines.push('DTSTAMP:' + atcb_format_datetime(now, 'clean', true));\n ics_lines.push('DTSTART' + timeAddon + ':' + formattedDate.start);\n ics_lines.push('DTEND' + timeAddon + ':' + formattedDate.end);\n ics_lines.push('SUMMARY:' + atcb_rewrite_ical_text(data.dates[`${i}`].name, true));\n if (data.dates[`${i}`].descriptionHtmlFreeICal != null && data.dates[`${i}`].descriptionHtmlFreeICal != '') {\n ics_lines.push('DESCRIPTION:' + atcb_rewrite_ical_text(data.dates[`${i}`].descriptionHtmlFreeICal, true));\n }\n if (data.dates[`${i}`].description != null && data.dates[`${i}`].description != '') {\n ics_lines.push('X-ALT-DESC;FMTTYPE=text/html:\\r\\n \\r\\n \\r\\n ' + atcb_rewrite_ical_text(data.dates[`${i}`].description, true) + '\\r\\n ');\n }\n if (data.dates[`${i}`].location != null && data.dates[`${i}`].location != '') {\n ics_lines.push('LOCATION:' + atcb_rewrite_ical_text(data.dates[`${i}`].location, true));\n }\n if (data.dates[`${i}`].organizer != null && data.dates[`${i}`].organizer != '') {\n const organizerParts = data.dates[`${i}`].organizer.split('|');\n ics_lines.push('ORGANIZER;CN=\"' + atcb_rewrite_ical_text(organizerParts[0], false, true) + '\":MAILTO:' + organizerParts[1]);\n }\n if (data.dates[`${i}`].attendee != null && data.dates[`${i}`].attendee != '') {\n const attendeeParts = data.dates[`${i}`].attendee.split('|');\n ics_lines.push('ATTENDEE;ROLE=REQ-PARTICIPANT;CN=\"' + atcb_rewrite_ical_text(attendeeParts[0], false, true) + '\":MAILTO:' + attendeeParts[1]);\n }\n if (data.recurrence != null && data.recurrence != '') {\n ics_lines.push(data.recurrence);\n }\n if (data.dates[`${i}`].availability != null && data.dates[`${i}`].availability != '') {\n const transpVal = (function () {\n if (data.dates[`${i}`].availability == 'free') {\n return 'TRANSPARENT';\n }\n return 'OPAQUE';\n })();\n ics_lines.push('TRANSP:' + transpVal);\n }\n ics_lines.push('SEQUENCE:' + data.dates[`${i}`].sequence);\n ics_lines.push('STATUS:' + data.dates[`${i}`].status);\n ics_lines.push('CREATED:' + data.created);\n ics_lines.push('LAST-MODIFIED:' + data.updated);\n ics_lines.push('END:VEVENT');\n }\n ics_lines.push('END:VCALENDAR');\n const dataUrl = (function () {\n if (givenIcsFile != '') {\n return givenIcsFile;\n }\n return 'data:text/calendar;charset=utf-8,' + encodeURIComponent(ics_lines.join('\\r\\n'));\n })();\n if ((atcbIsiOS() && !atcbIsSafari()) || (atcbIsWebView() && (atcbIsiOS() || (atcbIsAndroid() && atcbIsProblematicWebView())))) {\n atcb_ical_copy_note(host, dataUrl, data, keyboardTrigger);\n return;\n }\n atcb_save_file(dataUrl, filename);\n}\nfunction atcb_determine_ical_filename(data, subEvent) {\n const filenameSuffix = (function () {\n if (subEvent != 'all' && subEvent != 0) {\n return '-' + parseInt(subEvent) + 1;\n }\n return '';\n })();\n if (data.iCalFileName != null && data.iCalFileName != '') {\n return data.iCalFileName + filenameSuffix;\n }\n if (data.icsFile != null && data.icsFile != '') {\n const filenamePart = data.icsFile.split('/').pop().split('.')[0];\n if (filenamePart != '') {\n return filenamePart + filenameSuffix;\n }\n }\n return 'event-to-save-in-my-calendar' + filenameSuffix;\n}\nfunction atcb_ical_copy_note(host, dataUrl, data, keyboardTrigger) {\n atcb_copy_to_clipboard(dataUrl);\n if (atcbIsiOS() && !atcbIsSafari()) {\n atcb_create_modal(\n host,\n data,\n 'warning',\n atcb_translate_hook('modal.opensafari.ical.h', data),\n atcb_translate_hook('modal.opensafari.ical.text', data) + '
' + atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.opensafari.ical.steps', data),\n [],\n [],\n keyboardTrigger,\n );\n return;\n }\n atcb_create_modal(host, data, 'warning', atcb_translate_hook('modal.webview.ical.h', data), atcb_translate_hook('modal.webview.ical.text', data) + '
' + atcb_translate_hook('modal.clipboard.text', data) + '
' + atcb_translate_hook('modal.webview.ical.steps', data), [], [], keyboardTrigger);\n}\n\n\nfunction atcb_saved_hook(host, data) {\n atcb_log_event('success', data.identifier, data.identifier);\n}\nfunction atcb_save_file(file, filename) {\n try {\n const save = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n save.rel = 'noopener';\n save.href = file;\n if (atcbIsMobile()) {\n save.target = '_self';\n } else {\n save.target = '_blank';\n }\n save.download = filename + '.ics';\n const evt = new MouseEvent('click', {\n view: window,\n button: 0,\n bubbles: true,\n cancelable: false,\n });\n save.dispatchEvent(evt);\n (window.URL || window.webkitURL).revokeObjectURL(save.href);\n } catch (e) {\n console.error(e);\n }\n}\nfunction atcb_generate_time(data, style = 'delimiters', targetCal = 'general', addTimeZoneOffset = false) {\n if (data.startTime != null && data.startTime != '' && data.endTime != null && data.endTime != '') {\n const newStartDate = new Date(data.startDate + 'T' + data.startTime + ':00.000+00:00');\n const newEndDate = new Date(data.endDate + 'T' + data.endTime + ':00.000+00:00');\n const durationMS = newEndDate - newStartDate;\n const durationHours = Math.floor(durationMS / 1000 / 60 / 60);\n const durationMinutes = Math.floor(((durationMS - durationHours * 60 * 60 * 1000) / 1000 / 60) % 60);\n const durationString = (function () {\n if (durationHours < 10) {\n return '0' + durationHours + ':' + ('0' + durationMinutes).slice(-2);\n }\n return durationHours + ':' + ('0' + durationMinutes).slice(-2);\n })();\n if (targetCal == 'ical' || (targetCal == 'google' && !/(GMT[+|-]\\d{1,2}|Etc\\/U|Etc\\/Zulu|CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|WET)/i.test(data.timeZone))) {\n return {\n start: atcb_format_datetime(newStartDate, 'clean', true, true),\n end: atcb_format_datetime(newEndDate, 'clean', true, true),\n duration: durationString,\n allday: false,\n };\n }\n const offsetStart = tzlib_get_offset(data.timeZone, data.startDate, data.startTime);\n const offsetEnd = tzlib_get_offset(data.timeZone, data.endDate, data.endTime);\n if (addTimeZoneOffset) {\n const formattedOffsetStart = offsetStart.slice(0, 3) + ':' + offsetStart.slice(3);\n const formattedOffsetEnd = offsetEnd.slice(0, 3) + ':' + offsetEnd.slice(3);\n return {\n start: newStartDate.toISOString().replace('.000Z', formattedOffsetStart),\n end: newEndDate.toISOString().replace('.000Z', formattedOffsetEnd),\n duration: durationString,\n allday: false,\n };\n }\n const calcOffsetStart = parseInt(offsetStart[0] + 1) * -1 * ((parseInt(offsetStart.substring(1, 3)) * 60 + parseInt(offsetStart.substring(3, 5))) * 60 * 1000);\n const calcOffsetEnd = parseInt(offsetEnd[0] + 1) * -1 * ((parseInt(offsetEnd.substring(1, 3)) * 60 + parseInt(offsetEnd.substring(3, 5))) * 60 * 1000);\n newStartDate.setTime(newStartDate.getTime() + calcOffsetStart);\n newEndDate.setTime(newEndDate.getTime() + calcOffsetEnd);\n return {\n start: atcb_format_datetime(newStartDate, style),\n end: atcb_format_datetime(newEndDate, style),\n duration: durationString,\n allday: false,\n };\n } else {\n const startDate = data.startDate.split('-');\n const endDate = data.endDate.split('-');\n const newStartDate = new Date(Date.UTC(startDate[0], startDate[1] - 1, startDate[2], 12, 0, 0));\n const newEndDate = new Date(Date.UTC(endDate[0], endDate[1] - 1, endDate[2], 12, 0, 0));\n if (targetCal === 'google' || (targetCal === 'microsoft' && !atcbIsMobile()) || targetCal === 'msteams' || targetCal === 'ical') {\n newEndDate.setDate(newEndDate.getDate() + 1);\n }\n if (targetCal === 'msteams') {\n if (atcbIsMobile()) {\n const offset = newStartDate.getTimezoneOffset();\n const formattedOffset = (function () {\n if (offset < 0) {\n return '+' + ('0' + Math.abs(offset / 60)).slice(-2) + ':' + ('0' + Math.abs(offset % 60)).slice(-2);\n } else {\n return '-' + ('0' + Math.abs(offset / 60)).slice(-2) + ':' + ('0' + Math.abs(offset % 60)).slice(-2);\n }\n })();\n return {\n start: atcb_format_datetime(newStartDate, style, false, true) + 'T00:00:00' + formattedOffset,\n end: atcb_format_datetime(newEndDate, style, false, true) + 'T00:00:00' + formattedOffset,\n allday: true,\n };\n }\n return {\n start: atcb_format_datetime(newStartDate, style, false, true) + '+00:00',\n end: atcb_format_datetime(newEndDate, style, false, true) + '+00:00',\n allday: true,\n };\n }\n return {\n start: atcb_format_datetime(newStartDate, style, false),\n end: atcb_format_datetime(newEndDate, style, false),\n allday: true,\n };\n }\n}\nfunction atcb_format_datetime(datetime, style = 'delimiters', includeTime = true, removeZ = false) {\n const regex = (function () {\n if (includeTime) {\n if (style == 'clean') {\n return /(-|:|(\\.\\d{3}))/g;\n }\n return /(\\.\\d{3})/g;\n }\n if (style == 'clean') {\n return /(-|T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z)/g;\n }\n return /T(\\d{2}:\\d{2}:\\d{2}\\.\\d{3})Z/g;\n })();\n const output = removeZ ? datetime.toISOString().replace(regex, '').replace('Z', '') : datetime.toISOString().replace(regex, '');\n return output;\n}\nfunction atcb_secure_content(data, isJSON = true) {\n const toClean = isJSON ? JSON.stringify(data) : data;\n const cleanedUp = toClean.replace(/(<(?!br)([^>]+)>)/gi, '');\n if (isJSON) {\n return JSON.parse(cleanedUp);\n } else {\n return cleanedUp;\n }\n}\nfunction atcb_secure_url(url, throwError = true) {\n if (url.match(/((\\.\\.\\/)|(\\.\\.\\\\)|(%2e%2e%2f)|(%252e%252e%252f)|(%2e%2e\\/)|(%252e%252e\\/)|(\\.\\.%2f)|(\\.\\.%252f)|(%2e%2e%5c)|(%252e%252e%255c)|(%2e%2e\\\\)|(%252e%252e\\\\)|(\\.\\.%5c)|(\\.\\.%255c)|(\\.\\.%c0%af)|(\\.\\.%25c0%25af)|(\\.\\.%c1%9c)|(\\.\\.%25c1%259c))/gi)) {\n if (throwError) {\n console.error('Seems like the generated URL includes at least one security issue and got blocked. Please check the calendar button parameters!');\n }\n return false;\n } else {\n return true;\n }\n}\nfunction atcb_validEmail(email) {\n if (!/^.{0,70}@.{1,30}\\.[a-zA-Z]{2,9}$/.test(email)) {\n return false;\n }\n return true;\n}\nfunction atcb_rewrite_html_elements(content, clear = false, iCalBreaks = false) {\n if (clear) {\n content = content.replace(/\\[(|\\/)(url|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\]|((\\|.*)\\[\\/url\\])/gi, '');\n content = content.replace(/\\{(|\\/)(url|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\}|((\\|.*)\\{\\/url\\})/gi, '');\n if (iCalBreaks) {\n content = content.replace(/(\\[br\\]|\\{br\\})/gi, '\\\\n');\n } else {\n content = content.replace(/(\\[br\\]|\\{br\\})/gi, ' ');\n }\n content = content.replace(/&[#a-zA-Z0-9]{1,9};/gi, '');\n } else {\n content = content.replace(/\\[(\\/|)(br|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\]/gi, '<$1$2>');\n content = content.replace(/\\{(\\/|)(br|hr|p|b|strong|u|i|em|li|ul|ol|h\\d)\\}/gi, '<$1$2>');\n content = content.replace(/\\[url\\]([\\w&$+.,:;=~!*'?@^%#|\\s\\-()/]*)\\[\\/url\\]/gi, function (match, p1) {\n return atcb_parse_url_code(p1);\n });\n content = content.replace(/\\{url\\}([\\w&$+.,:;=~!*'?@^%#|\\s\\-()/]*)\\{\\/url\\}/gi, function (match, p1) {\n return atcb_parse_url_code(p1);\n });\n }\n return content;\n}\nfunction atcb_parse_url_code(input) {\n const urlText = input.split('|');\n const text = (function () {\n if (urlText.length > 1 && urlText[1] != '') {\n return urlText[1];\n } else {\n return urlText[0];\n }\n })();\n return '' + text + '';\n}\nfunction atcb_rewrite_ical_text(content, truncate = true, inQuotes = false) {\n if (inQuotes) {\n content = content.replace(/\"/g, '');\n } else {\n content = content.replace(/\\\\/g, '\\\\\\\\').replace(/(,|;)/g, '\\\\$1').replace(/\\\\\\\\n/g, '\\\\n');\n }\n if (truncate) {\n content = content.replace(/.{60}/g, '$&' + '\\r\\n ');\n }\n return content;\n}\nfunction atcb_position_list(host, trigger, list, blockUpwards = false, blockDownwards = false) {\n let anchorSet = false;\n const originalTrigger = trigger;\n if (trigger.querySelector('.atcb-dropdown-anchor') !== null) {\n trigger = trigger.querySelector('.atcb-dropdown-anchor');\n anchorSet = true;\n }\n list.style.position = 'relative';\n list.style.display = 'inline-block';\n let triggerDim = trigger.getBoundingClientRect();\n const btnDim = originalTrigger.getBoundingClientRect();\n const btnParentDim = originalTrigger.parentNode.getBoundingClientRect();\n const viewportHeight = document.documentElement.clientHeight;\n if (anchorSet === true && !list.classList.contains('atcb-dropoverlay')) {\n let listDim = list.getBoundingClientRect();\n list.style.width = listDim.width + 'px';\n if (list.classList.contains('atcb-dropup') || (!blockUpwards && triggerDim.top + listDim.height > viewportHeight - 20 && 2 * btnDim.top + btnDim.height - triggerDim.top - listDim.height > 20) || blockDownwards) {\n originalTrigger.classList.add('atcb-dropup');\n list.classList.add('atcb-dropup');\n list.style.bottom = btnParentDim.bottom - btnDim.bottom + (triggerDim.top - btnDim.top) + 'px';\n } else {\n list.style.top = btnDim.top - btnParentDim.top + (triggerDim.top - btnDim.top) + 'px';\n if (originalTrigger.classList.contains('atcb-dropup')) {\n originalTrigger.classList.remove('atcb-dropup');\n }\n }\n triggerDim = trigger.getBoundingClientRect();\n list.style.minWidth = triggerDim.width + 'px';\n if ((list.classList.contains('atcb-dropdown') && !list.classList.contains('atcb-style-round')) || list.classList.contains('atcb-style-text') || list.classList.contains('atcb-style-neumorphism')) {\n list.style.maxWidth = triggerDim.width + 'px';\n }\n listDim = list.getBoundingClientRect();\n list.style.left = Math.round(triggerDim.left - btnParentDim.left - (listDim.width - triggerDim.width) / 2) + 'px';\n } else {\n list.style.minWidth = btnDim.width + 20 + 'px';\n const listDim = list.getBoundingClientRect();\n list.style.width = listDim.width + 'px';\n const sideMargin = Math.round((btnDim.width - listDim.width) / 4);\n list.style.margin = -Math.round((listDim.height + btnDim.height) / 2) + 'px ' + sideMargin + 'px 0 ' + sideMargin + 'px';\n }\n list.style.position = 'absolute';\n list.style.display = 'block';\n const atcbL = host.querySelector('#add-to-calendar-button-reference');\n if (atcbL) {\n if (originalTrigger.classList.contains('atcb-dropup')) {\n originalTrigger.parentNode.parentNode.after(atcbL);\n atcbL.style.padding = '5px 15px';\n atcbL.style.position = 'absolute';\n atcbL.style.left = btnDim.left + 'px';\n }\n }\n}\nfunction atcb_position_shadow_button(originalEl, shadowEl) {\n const wrapperDim = originalEl.querySelector('.atcb-initialized').getBoundingClientRect();\n const newWrapper = shadowEl.querySelector('.atcb-initialized');\n newWrapper.style.width = wrapperDim.width + 'px';\n newWrapper.style.height = wrapperDim.height + 'px';\n newWrapper.style.top = wrapperDim.top + 'px';\n newWrapper.style.left = wrapperDim.left + 'px';\n}\nfunction atcb_position_shadow_button_listener() {\n const active = atcbStates['active'];\n if (active !== null && active !== '') {\n const originalEl = document.querySelector('add-to-calendar-button[atcb-button-id=' + active + ']').shadowRoot;\n const shadowEl = document.querySelector('div[atcb-button-id=' + active + ']').shadowRoot;\n atcb_position_shadow_button(originalEl, shadowEl);\n }\n}\nfunction atcb_manage_body_scroll(host, modalObj = null) {\n const modal = (function () {\n if (modalObj != null) {\n return modalObj;\n } else {\n const allModals = host.querySelectorAll('.atcb-modal');\n if (allModals.length === 0) {\n return null;\n }\n return allModals[allModals.length - 1];\n }\n })();\n if (modal == null) {\n return;\n }\n const modalDim = modal.getBoundingClientRect();\n if (modalDim.height + 150 > window.innerHeight) {\n document.body.classList.add('atcb-modal-no-scroll');\n document.documentElement.classList.add('atcb-modal-no-scroll');\n } else {\n document.body.classList.remove('atcb-modal-no-scroll');\n document.documentElement.classList.remove('atcb-modal-no-scroll');\n }\n}\nfunction atcb_set_fullsize(el) {\n el.style.width = window.innerWidth + 'px';\n el.style.height = window.innerHeight + 100 + 'px';\n}\nfunction atcb_set_sizes(el, sizes) {\n el.style.setProperty('--base-font-size-l', sizes['l'] + 'px');\n el.style.setProperty('--base-font-size-m', sizes['m'] + 'px');\n el.style.setProperty('--base-font-size-s', sizes['s'] + 'px');\n}\nfunction atcb_generate_uuid() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));\n}\nfunction atcb_copy_to_clipboard(dataString) {\n const tmpInput = document.createElement('input');\n document.body.append(tmpInput);\n const editable = tmpInput.contentEditable;\n const readOnly = tmpInput.readOnly;\n tmpInput.contentEditable = true;\n tmpInput.readOnly = false;\n tmpInput.value = dataString;\n if (atcbIsiOS()) {\n var range = document.createRange();\n range.selectNodeContents(tmpInput);\n var selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n tmpInput.setSelectionRange(0, 999999);\n } else {\n tmpInput.select();\n }\n tmpInput.contentEditable = editable;\n tmpInput.readOnly = readOnly;\n document.execCommand('copy');\n tmpInput.remove();\n}\nfunction atcb_debounce(func, timeout = 200) {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n}\nfunction atcb_debounce_leading(func, timeout = 300) {\n let timer;\n return (...args) => {\n if (!timer) {\n func.apply(this, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = undefined;\n }, timeout);\n };\n}\n\n\nfunction atcb_log_event(event, trigger, identifier) {\n const parentEl = (function () {\n const customTrigger = document.getElementById(identifier);\n if (customTrigger) {\n return customTrigger;\n }\n return document.querySelector('[atcb-button-id=\"' + identifier + '\"]');\n })();\n if (parentEl) {\n parentEl.setAttribute('atcb-last-event', event + ':' + trigger);\n }\n if (atcbIsBrowser()) {\n atcb_push_to_data_layer(event, trigger);\n }\n}\nfunction atcb_push_to_data_layer(event, trigger) {\n let action = '';\n switch (event) {\n case 'initialization':\n action = 'Initialized';\n break;\n case 'openList':\n action = 'Opened';\n break;\n case 'closeList':\n action = 'Closed';\n break;\n case 'openCalendarLink':\n action = 'Opened';\n break;\n case 'openSingletonLink':\n action = 'Opened';\n break;\n case 'openSubEventLink':\n action = 'Opened';\n break;\n case 'success':\n action = 'Saved';\n break;\n }\n const atcbDataLayer = (window.dataLayer = window.dataLayer || []);\n atcbDataLayer.push({\n eventCategory: 'Add-to-Calendar-Button',\n eventAction: action,\n eventLabel: trigger,\n event: event,\n });\n}\n\n\n/* How to add new languages:\n * 1. Duplicate the \"en\" block at the following \"i18nStrings\" object.\n * 2. Change the key to the ISO 639-1 code of your language (https://www.w3schools.com/tags/ref_language_codes.asp).\n * 3. Translate the labels.\n * 4. Add the language to the \"rtlLanguages\" array below, if it write from right to left.\n * 4. Update the \"language\" part at the configuration page of the demo page - add the new lagnuages to the \"Options\" info (/demo/pages/configuration.vue).\n * 5. Also update the language.ts file at the demo page, so the language appears at the demo playground (/demo/src/components/models/language.ts).\n */\nconst rtlLanguages = ['ar', 'fa'];\nconst i18nStrings = {\n en: {\n 'label.addtocalendar': 'Add to Calendar',\n 'label.icalfile': 'iCal File',\n close: 'Close',\n 'modal.button.default': 'Click me',\n 'modal.webview.ical.h': 'Open your browser',\n 'modal.webview.ical.text': 'Unfortunately, in-app browsers have problems with the way we generate the calendar file.',\n 'modal.clipboard.text': 'We automatically copied a magical URL into your clipboard.',\n 'modal.webview.ical.steps': '
  1. Open another browser on your phone, ...
  2. Paste the clipboard content and go.
',\n 'modal.opensafari.ical.h': 'Open Safari',\n 'modal.opensafari.ical.text': 'Unfortunately, iOS has some problems generating and opening the calendar file outside of Safari.',\n 'modal.opensafari.ical.steps': '
  1. Open Safari, ...
  2. Paste the clipboard content and go.
',\n 'modal.multidate.h': 'This is an event series',\n 'modal.multidate.text': 'Add the individual events one by one:',\n 'date.status.cancelled': 'This date got cancelled.',\n 'date.status.cancelled.cta': 'Please update your calendar!',\n 'modal.subscribe.yahoo.h': 'Add Calendar to Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Open now the Yahoo Calendar.
  2. Click the \"Actions\" tab.
  3. Hit \"Follow Other Calendars\".
  4. Set a name and paste the clipboard content into the url field.
',\n 'modal.subscribe.yahoo.button': 'Open Yahoo Calendar',\n 'modal.crios.google.text': 'If you are using the Google Calendar app and it is not already open in the background, unfortunately, you might need to start this process twice.',\n continue: 'Continue',\n cancel: 'Cancel',\n expired: 'Expired',\n recurring: 'Recurring',\n },\n de: {\n 'label.addtocalendar': 'Im Kalender speichern',\n 'label.icalfile': 'iCal-Datei',\n close: 'Schließen',\n 'modal.button.default': 'Klick mich',\n 'modal.webview.ical.h': 'Öffne deinen Browser',\n 'modal.webview.ical.text': 'Leider haben In-App-Browser Probleme mit der Art, wie wir Kalender-Dateien erzeugen.',\n 'modal.clipboard.text': 'Wir haben automatisch eine magische URL in deine Zwischenablage kopiert.',\n 'modal.webview.ical.steps': '
  1. Öffne einen anderen Browser auf deinem Smartphone, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.opensafari.ical.h': 'Öffne Safari',\n 'modal.opensafari.ical.text': 'Leider hat iOS einige Probleme beim Generieren und Öffnen der Kalenderdatei außerhalb von Safari.',\n 'modal.opensafari.ical.steps': '
  1. Öffne Safari, ...
  2. Nutze die Einfügen-Funktion, um fortzufahren.
',\n 'modal.multidate.h': 'Dies ist eine Termin-Reihe',\n 'modal.multidate.text': 'Füge die einzelnen Termine der Reihe nach deinem Kalender hinzu:',\n 'date.status.cancelled': 'Dieser Termin wurde abgesagt.',\n 'date.status.cancelled.cta': 'Bitte aktualisiere deinen Kalender!',\n 'modal.subscribe.yahoo.h': 'Kalender zu Yahoo hinzufügen',\n 'modal.subscribe.yahoo.text': '
  1. Öffne den Yahoo-Kalender.
  2. Klicke auf den \"Aktionen\" Tab.
  3. Wähle \"Weiteren Kalendern folgen\".
  4. Wähle einen Namen und füge die URL aus deiner Zwischenablage in das URL-Feld ein.
',\n 'modal.subscribe.yahoo.button': 'Yahoo-Kalender öffnen',\n 'modal.crios.google.text': 'Wenn du die Google Calendar App verwendest und diese nicht bereits im Hintergrund geöffnet ist, musst du diesen Vorgang leider möglicherweise zweimal starten.',\n continue: 'Weiter',\n cancel: 'Abbrechen',\n expired: 'Abgelaufen',\n recurring: 'Wiederkehrend',\n },\n es: {\n 'label.addtocalendar': 'Añadir al Calendario',\n 'label.icalfile': 'iCal Ficha',\n close: 'Ciérralo',\n 'modal.button.default': 'Haz clic mí',\n 'modal.webview.ical.h': 'Abra su browser',\n 'modal.webview.ical.text': 'Lamentablemente, los browsers in-app tienen problemas con la forma en que generamos el archivo del calendario.',\n 'modal.clipboard.text': 'Hemos copiado automáticamente una URL mágica en su portapapeles.',\n 'modal.webview.ical.steps': '
  1. Abre otro browser en tu smartphone, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.opensafari.ical.h': 'Abrir Safari',\n 'modal.opensafari.ical.text': 'Desafortunadamente, iOS tiene algunos problemas para generar y abrir el archivo de calendario fuera de Safari.',\n 'modal.opensafari.ical.steps': '
  1. Abrir Safari, ...
  2. Utilice la función de pegar para continuar.
',\n 'modal.multidate.h': 'Esta es una serie de fechas',\n 'modal.multidate.text': 'Añada las fechas individuales a su calendario en orden:',\n 'date.status.cancelled': 'Esta fecha fue cancelada.',\n 'date.status.cancelled.cta': 'Actualice su calendario!',\n 'modal.subscribe.yahoo.h': 'Añadir calendario a Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Abra el calendario de Yahoo.
  2. Haga clic en la pestaña \"Acciones\".
  3. Seleccione \"Seguir otros calendarios\".
  4. Elige un nombre y pega la URL de tu portapapeles en el campo URL.
',\n 'modal.subscribe.yahoo.button': 'Abrir calendario de Yahoo',\n 'modal.crios.google.text': 'Si estás utilizando la aplicación Google Calendar y no está abierta en segundo plano, lamentablemente, es posible que necesites iniciar este proceso dos veces.',\n continue: 'Continuar',\n cancel: 'Cancelar',\n expired: 'Caducada',\n recurring: 'Periódica',\n },\n pt: {\n 'label.addtocalendar': 'Incluir no Calendário',\n 'label.icalfile': 'Ficheiro iCal',\n close: 'Fechar',\n 'modal.button.default': 'Clicar-me',\n 'modal.webview.ical.h': 'Abra o seu browser',\n 'modal.webview.ical.text': 'Infelizmente, os navegadores em tampas têm problemas com a forma como geramos o ficheiro de calendário.',\n 'modal.clipboard.text': 'Copiámos automaticamente um URL mágico para a sua área de transferência.',\n 'modal.webview.ical.steps': '
  1. Abrir outro browser en tu smartphone, ...
  2. Use a função colar para continuar.
',\n 'modal.opensafari.ical.h': 'Safari aberto',\n 'modal.opensafari.ical.text': 'Infelizmente, o iOS tem alguns problemas para gerar e abrir o arquivo de calendário fora do Safari.',\n 'modal.opensafari.ical.steps': '
  1. Safari aberto, ...
  2. Use a função colar para continuar.
',\n 'modal.multidate.h': 'Esta é uma série de datas',\n 'modal.multidate.text': 'Adicione as datas individuais ao seu calendário, por ordem:',\n 'date.status.cancelled': 'Esta data foi cancelada.',\n 'date.status.cancelled.cta': 'Actualize o seu calendário!',\n 'modal.subscribe.yahoo.h': 'Adicionar calendário ao Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Abrir o calendário do Yahoo.
  2. Clique no separador \"Acções\".
  3. Seleccione \"Seguir outros calendários\".
  4. Escolha um nome e cole o URL da sua área de transferência no campo URL.
',\n 'modal.subscribe.yahoo.button': 'Abra o Calendário do Yahoo',\n 'modal.crios.google.text': 'Se estiver usando o aplicativo Google Calendar e ele não estiver aberto em segundo plano, infelizmente, você pode precisar iniciar este processo duas vezes.',\n continue: 'Continuar',\n cancel: 'Cancelar',\n expired: 'Expirada',\n recurring: 'Recorrente',\n },\n fr: {\n 'label.addtocalendar': \"Ajouter à l'Agenda\",\n 'label.icalfile': 'Fichier iCal',\n close: 'Fermer',\n 'modal.button.default': 'Cliquez-moi',\n 'modal.webview.ical.h': 'Ouvrez votre navigateur',\n 'modal.webview.ical.text': \"Malheureusement, les navigateurs in-app ont des problèmes avec la manière dont nous créons les fichiers d'agenda.\",\n 'modal.clipboard.text': 'Nous avons automatiquement copié une URL magique dans votre presse-papiers.',\n 'modal.webview.ical.steps': '
  1. Ouvrez un autre navigateur sur votre smartphone, ...
  2. Collez le contenu du presser-papier et continuez.
',\n 'modal.opensafari.ical.h': 'Ouvrir Safari',\n 'modal.opensafari.ical.text': 'Malheureusement, iOS rencontre des problèmes pour générer et ouvrir le fichier de calendrier en dehors de Safari.',\n 'modal.opensafari.ical.steps': '
  1. Ouvrez Safari, ...
  2. Collez le contenu du presse-papier et continuez.
',\n 'modal.multidate.h': 'Ceci est un évènement récurrent',\n 'modal.multidate.text': 'Ajouter les différents évènements un par un:',\n 'date.status.cancelled': 'Cette date est annulée.',\n 'date.status.cancelled.cta': 'Actualisez votre agenda!',\n 'modal.subscribe.yahoo.h': 'Ajouter un agenda à Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Ouvrez l\\'Agenda Yahoo.
  2. Cliquez sur l\\'onglet \"Actions\".
  3. Sélectionnez \"Suivre d\\'autres agendas\".
  4. Choisissez un nom et collez le contenu de votre presse-papiers dans le champ URL.
',\n 'modal.subscribe.yahoo.button': 'Ouvrir le calendrier Yahoo',\n 'modal.crios.google.text': \"Si vous utilisez l'application Google Calendar et qu'elle n'est pas déjà ouverte en arrière-plan, malheureusement, il se pourrait que vous deviez lancer ce processus deux fois.\",\n continue: 'Continuer',\n cancel: 'Annuler',\n expired: 'Expiré',\n recurring: 'Récurrente',\n },\n nl: {\n 'label.addtocalendar': 'Opslaan in Agenda',\n 'label.icalfile': 'iCal File',\n close: 'Sluiten',\n 'modal.button.default': 'Klik me',\n 'modal.webview.ical.h': 'Open uw browser',\n 'modal.webview.ical.text': 'Helaas hebben in-app browsers problemen met de manier waarop wij kalenderbestanden maken.',\n 'modal.clipboard.text': 'We hebben automatisch een magische URL naar je klembord gekopieerd.',\n 'modal.webview.ical.steps': '
  1. Open een andere browser op uw smartphone, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.opensafari.ical.h': 'Open Safari',\n 'modal.opensafari.ical.text': 'Helaas heeft iOS enkele problemen met het genereren en openen van het agendabestand buiten Safari.',\n 'modal.opensafari.ical.steps': '
  1. Open Safari, ...
  2. Gebruik de insert functie om verder te gaan.
',\n 'modal.multidate.h': 'Dit is een reeks data',\n 'modal.multidate.text': 'Voeg de afzonderlijke delen één voor één toe:',\n 'date.status.cancelled': 'Deze datum is geannuleerd.',\n 'date.status.cancelled.cta': 'Uw agenda bijwerken!',\n 'modal.subscribe.yahoo.h': 'Toevoegen aan Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Open de Yahoo calendar.
  2. Klik op de \"Acties\" tab.
  3. Selecteer \"Volg Andere Agenda\\'s\".
  4. Kies een naam en plak de URL van uw klembord in het URL-veld.
',\n 'modal.subscribe.yahoo.button': 'Open Yahoo Agenda',\n 'modal.crios.google.text': 'Als je de Google Calendar-app gebruikt en deze is niet al geopend op de achtergrond, dan zul je helaas mogelijk dit proces twee keer moeten starten.',\n continue: 'Doorgaan',\n cancel: 'Annuleren',\n expired: 'Verlopen',\n recurring: 'Terugkerend',\n },\n tr: {\n 'label.addtocalendar': 'Takvime Ekle',\n 'label.icalfile': 'iCal Dosyası',\n close: 'Kapat',\n 'modal.button.default': 'Beni tıklayın',\n 'modal.webview.ical.h': 'Tarayıcınızı açın',\n 'modal.webview.ical.text': 'Ne yazık ki, uygulama içi tarayıcılar takvim dosyalarını oluşturma şeklimizle ilgili sorunlar yaşıyor.',\n 'modal.clipboard.text': 'Panonuza otomatik olarak sihirli bir URL kopyaladık.',\n 'modal.webview.ical.steps': '
  1. Akıllı telefonunuzda başka bir tarayıcı açın, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.opensafari.ical.h': 'Açık Safari',\n 'modal.opensafari.ical.text': 'Ne yazık ki iOS, takvim dosyasını Safari dışında oluştururken ve açarken bazı sorunlar yaşıyor.',\n 'modal.opensafari.ical.steps': '
  1. Açık Safari, ...
  2. Devam etmek için insert fonksiyonunu kullanın.
',\n 'modal.multidate.h': 'Bu bir etkinlik serisidir',\n 'modal.multidate.text': 'Parçaları teker teker ekleyin:',\n 'date.status.cancelled': 'Bu tarih iptal edildi.',\n 'date.status.cancelled.cta': 'Lütfen takviminizi güncelleyin!',\n 'modal.subscribe.yahoo.h': \"Yahoo'ya takvim ekleme\",\n 'modal.subscribe.yahoo.text': '
  1. Yahoo takvimini açın.
  2. \"Eylemler\" sekmesine tıklayın.
  3. \"Diğer Takvimleri Takip Et\" öğesini seçin.
  4. Bir ad seçin ve URL\\'yi panonuzdan URL alanına yapıştırın.
',\n 'modal.subscribe.yahoo.button': 'Yahoo Takvimini aç',\n 'modal.crios.google.text': 'Google Takvim uygulamasını kullanıyorsanız ve zaten arka planda açık değilse, ne yazık ki bu işlemi iki kez başlatmanız gerekebilir.',\n continue: 'Devam etmek',\n cancel: 'İptal',\n expired: 'Günü geçmiş',\n recurring: 'Yinelenen',\n },\n zh: {\n 'label.addtocalendar': '添加到日历',\n 'label.icalfile': 'iCal 文件',\n close: '关',\n 'modal.button.default': '点我',\n 'modal.webview.ical.h': '打开浏览器',\n 'modal.webview.ical.text': '不幸的是,应用内浏览器在我们生成日历文件的方式上存在问题。',\n 'modal.clipboard.text': '我们自动将魔术 URL 复制到您的剪贴板。',\n 'modal.webview.ical.steps': '
  1. 打开手机上的任何其他浏览器, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.opensafari.ical.h': '打开 Safari',\n 'modal.opensafari.ical.text': '不幸的是,iOS 在 Safari 之外生成和打开日历文件时遇到一些问题。',\n 'modal.opensafari.ical.steps': '
  1. 打开 Safari, ...
  2. 粘贴剪贴板内容并开始。
',\n 'modal.multidate.h': '这是一个活动系列',\n 'modal.multidate.text': '逐个添加各个部分:',\n 'date.status.cancelled': '此日期已取消。',\n 'date.status.cancelled.cta': '请更新您的日历!',\n 'modal.subscribe.yahoo.h': '将日历添加到 Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. 打开 Yahoo 日历。
  2. 点击“操作”标签。
  3. 选择“关注其他日历”。
  4. 选择一个名称并将剪贴板中的 URL 粘贴到 URL 字段中。
',\n 'modal.subscribe.yahoo.button': '打开雅虎日历',\n 'modal.crios.google.text': '如果您正在使用 Google 日历应用,且该应用未在后台打开,很遗憾,您可能需要启动此进程两次。',\n continue: '继续',\n cancel: '中止',\n expired: '已到期',\n recurring: '再次发生的',\n },\n ar: {\n 'label.addtocalendar': 'إضافة إلى التقويم',\n 'label.icalfile': 'ملف iCal',\n close: 'قريب',\n 'modal.button.default': 'انقر فوق لي',\n 'modal.webview.ical.h': 'افتح المستعرض الخاص بك',\n 'modal.webview.ical.text': 'لسوء الحظ ، تواجه المتصفحات داخل التطبيق مشاكل في طريقة إنشاء ملف التقويم.',\n 'modal.clipboard.text': 'قمنا تلقائيًا بنسخ عنوان URL سحري إلى الحافظة الخاصة بك.',\n 'modal.webview.ical.steps': '
  1. افتح أي متصفح آخر على هاتفك الذكي, ...
  2. .الصق محتوى الحافظة واذهب
',\n 'modal.opensafari.ical.h': 'افتح Safari',\n 'modal.opensafari.ical.text': 'لسوء الحظ ، يواجه iOS بعض المشكلات في إنشاء ملف التقويم وفتحه خارج Safari.',\n 'modal.opensafari.ical.steps': '
  1. افتح Safari, ...
  2. الصق محتوى الحافظة واذهب.
',\n 'modal.multidate.h': 'هذه سلسلة أحداث',\n 'modal.multidate.text': 'أضف الأجزاء الفردية واحدة تلو الأخرى:',\n 'date.status.cancelled': 'تم إلغاء هذا التاريخ.',\n 'date.status.cancelled.cta': 'الرجاء تحديث التقويم الخاص بك!',\n 'modal.subscribe.yahoo.h': 'أضف التقويم إلى Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. افتح تقويم Yahoo.
  2. انقر فوق علامة التبويب \"الإجراءات\".
  3. حدد \"متابعة تقويمات أخرى\".
  4. اختر اسمًا والصق عنوان URL من الحافظة الخاصة بك في حقل URL.
',\n 'modal.subscribe.yahoo.button': 'افتح تقويم ياهو',\n 'modal.crios.google.text': 'إذا كنت تستخدم تطبيق Google Calendar ولم يكن مفتوحًا بالفعل في الخلفية، فقد تحتاج إلى بدء هذه العملية مرتين على الأقل.',\n continue: 'استمر',\n cancel: 'إحباط',\n expired: 'منتهي الصلاحية',\n recurring: 'يتكرر',\n },\n hi: {\n 'label.addtocalendar': 'कैलेंडर में जोड़ें',\n 'label.icalfile': 'iCal फ़ाइल',\n close: 'बंद करना',\n 'modal.button.default': 'मुझे क्लिक करें',\n 'modal.webview.ical.h': 'अपना ब्राउज़र खोलें',\n 'modal.webview.ical.text': 'दुर्भाग्य से, इन-ऐप ब्राउज़र में कैलेंडर फ़ाइल बनाने के तरीके में समस्याएँ हैं।',\n 'modal.clipboard.text': 'हमने आपके क्लिपबोर्ड पर स्वचालित रूप से एक जादुई URL कॉपी कर लिया है।',\n 'modal.webview.ical.steps': '
  1. अपने फ़ोन पर दूसरा ब्राउज़र खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.opensafari.ical.h': 'सफारी खोलें',\n 'modal.opensafari.ical.text': 'दुर्भाग्य से, iOS में सफ़ारी के बाहर कैलेंडर फ़ाइल बनाने और खोलने में कुछ समस्याएँ हैं।',\n 'modal.opensafari.ical.steps': '
  1. सफारी खोलें, ...
  2. क्लिपबोर्ड सामग्री चिपकाएं और जाएं।
',\n 'modal.multidate.h': 'यह एक इवेंट सीरीज़ है',\n 'modal.multidate.text': 'अलग-अलग हिस्सों को एक-एक करके जोड़ें:',\n 'date.status.cancelled': 'यह तिथि रद्द हो गई।',\n 'date.status.cancelled.cta': 'कृपया अपना कैलेंडर अपडेट करें!',\n 'modal.subscribe.yahoo.h': 'Yahoo . में कैलेंडर जोड़ें',\n 'modal.subscribe.yahoo.text': '
  1. Yahoo कैलेंडर खोलें।
  2. \"कृती\" टैब पर क्लिक करें।
  3. \"इतर कॅलेंडर्सचे अनुसरण करा\" चुनें।
  4. एक नाम चुनें और अपने क्लिपबोर्ड से URL को URL फ़ील्ड में पेस्ट करें।
',\n 'modal.subscribe.yahoo.button': 'याहू कैलेंडर खोलें',\n 'modal.crios.google.text': 'अगर आप Google Calendar एप्लिकेशन का उपयोग कर रहे हैं और यह पहले से ही पृष्ठभूमि में नहीं खुला है, तो दुखद है कि आपको शायद इस प्रक्रिया को दो बार शुरू करने की आवश्यकता हो सकती है।',\n continue: 'जारी रखें',\n cancel: 'रद्द करना',\n expired: 'खत्म हो चुका',\n recurring: 'पुनरावर्ती',\n },\n pl: {\n 'label.addtocalendar': 'Dodaj do kalendarza',\n 'label.icalfile': 'Plik iCal',\n close: 'Zamknij',\n 'modal.button.default': 'Kliknij mnie',\n 'modal.webview.ical.h': 'Otwórz przeglądarkę',\n 'modal.webview.ical.text': 'Niestety, przeglądarki in-app mają problemy ze sposobem, w jaki generujemy plik kalendarza.',\n 'modal.clipboard.text': 'Automatycznie skopiowaliśmy magiczny adres URL do schowka.',\n 'modal.webview.ical.steps': '
  1. Otwórz inną przeglądarkę w swoim telefonie, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.opensafari.ical.h': 'Otwórz Safari',\n 'modal.opensafari.ical.text': 'Niestety iOS ma pewne problemy z generowaniem i otwieraniem pliku kalendarza poza Safari.',\n 'modal.opensafari.ical.steps': '
  1. Otwórz Safari, ...
  2. Wklej zawartość schowka i ruszaj.
',\n 'modal.multidate.h': 'To jest cykl imprez',\n 'modal.multidate.text': 'Dodawać po kolei poszczególne części:',\n 'date.status.cancelled': 'Ta data została odwołana.',\n 'date.status.cancelled.cta': 'Zaktualizuj swój kalendarz!',\n 'modal.subscribe.yahoo.h': 'Dodaj kalendarz do Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Otwórz kalendarz Yahoo.
  2. Kliknij na zakładkę \"Czynności\".
  3. Wybierz \"Obserwuj inne kalendarze\".
  4. Wybierz nazwę i wklej adres URL ze schowka w polu URL.
',\n 'modal.subscribe.yahoo.button': 'Otwórz kalendarz Yahoo',\n 'modal.crios.google.text': 'Jeśli używasz aplikacji Google Calendar i nie jest ona już otwarta w tle, niestety, może być konieczne dwukrotne uruchomienie tego procesu.',\n continue: 'Kontynuować',\n cancel: 'Anuluj',\n expired: 'Wygasły',\n recurring: 'Powtarzający się',\n },\n id: {\n 'label.addtocalendar': 'Tambahkan ke Kalender',\n 'label.icalfile': 'File iCal',\n close: 'Tutup',\n 'modal.button.default': 'Klik saya',\n 'modal.webview.ical.h': 'Buka browser Anda',\n 'modal.webview.ical.text': 'Sayangnya, browser dalam aplikasi memiliki masalah dengan cara kami menghasilkan file kalender.',\n 'modal.clipboard.text': 'Kami telah secara otomatis menyalin URL ajaib ke clipboard Anda.',\n 'modal.webview.ical.steps': '
  1. Buka peramban lain pada ponsel Anda, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.opensafari.ical.h': 'Buka Safari',\n 'modal.opensafari.ical.text': 'Sayangnya, iOS memiliki beberapa masalah dalam membuat dan membuka file kalender di luar Safari.',\n 'modal.opensafari.ical.steps': '
  1. Buka Safari, ...
  2. Tempelkan konten clipboard dan pergi.
',\n 'modal.multidate.h': 'Ini adalah rangkaian acara',\n 'modal.multidate.text': 'Tambahkan masing-masing bagian satu per satu:',\n 'date.status.cancelled': 'Tanggal ini dibatalkan.',\n 'date.status.cancelled.cta': 'Perbarui kalender Anda!',\n 'modal.subscribe.yahoo.h': 'Tambahkan kalender ke Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Buka kalender Yahoo.
  2. Klik pada tab \"Tindakan\".
  3. Pilih \"Ikuti Kalender Lain\".
  4. Pilih nama dan tempelkan URL dari clipboard Anda ke bidang URL.
',\n 'modal.subscribe.yahoo.button': 'Buka kalender Yahoo',\n 'modal.crios.google.text': 'Jika Anda menggunakan aplikasi Google Calendar dan aplikasi tersebut belum terbuka di latar belakang, sayangnya, Anda mungkin perlu memulai proses ini dua kali.',\n continue: 'Lanjutkan',\n cancel: 'Batal',\n expired: 'Kedaluwarsa',\n recurring: 'Berulang',\n },\n no: {\n 'label.addtocalendar': 'Legg til i kalenderen',\n 'label.icalfile': 'iCal-fil',\n close: 'Lukk',\n 'modal.button.default': 'Klikk på meg',\n 'modal.webview.ical.h': 'Åpne nettleseren din',\n 'modal.webview.ical.text': 'Dessverre har nettlesere i appen problemer med måten vi genererer kalenderfilen på.',\n 'modal.clipboard.text': 'Vi kopierte automatisk en magisk URL til utklippstavlen din.',\n 'modal.webview.ical.steps': '
  1. Åpne en annen nettleser på telefonen, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.opensafari.ical.h': 'Åpne Safari',\n 'modal.opensafari.ical.text': 'Dessverre har iOS noen problemer med å generere og åpne kalenderfilen utenfor Safari.',\n 'modal.opensafari.ical.steps': '
  1. Åpne Safari, ...
  2. Lim inn innholdet på utklippstavlen og gå.
',\n 'modal.multidate.h': 'Dette er en avtaleserie',\n 'modal.multidate.text': 'Legg til de enkelte datoene i kalenderen din i rekkefølge:',\n 'date.status.cancelled': 'Denne datoen ble avlyst.',\n 'date.status.cancelled.cta': 'Oppdater kalenderen din!',\n 'modal.subscribe.yahoo.h': 'Legg til kalender til Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Åpne Yahoo-kalenderen.
  2. Klikk på «Handlinger»-fanen.
  3. Velg «Følg andre kalendere».
  4. Velg et navn og lim inn URL-en fra utklippstavlen i URL-feltet.
',\n 'modal.subscribe.yahoo.button': 'Åpne Yahoo-kalenderen',\n 'modal.crios.google.text': 'Hvis du bruker Google Calendar-appen og den ikke allerede er åpen i bakgrunnen, må du dessverre kanskje starte denne prosessen to ganger.',\n continue: 'Fortsette',\n cancel: 'Avbryt',\n expired: 'Utløpt',\n recurring: 'Tilbakevendende',\n },\n fi: {\n 'label.addtocalendar': 'Lisää kalenteriin',\n 'label.icalfile': 'iCal-tiedosto',\n close: 'Sulje',\n 'modal.button.default': 'Klikkaa minua',\n 'modal.webview.ical.h': 'Avaa selain',\n 'modal.webview.ical.text': 'Valitettavasti sovelluksen sisäisillä selaimilla on ongelmia kalenteritiedoston luomisessa.',\n 'modal.clipboard.text': 'Olemme automaattisesti kopioineet maagisen URL-osoitteen leikepöydällesi.',\n 'modal.webview.ical.steps': '
  1. Avaa toinen selain puhelimessasi., ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.opensafari.ical.h': 'Avaa Safari',\n 'modal.opensafari.ical.text': 'Valitettavasti iOS:llä on ongelmia kalenteritiedoston luomisessa ja avaamisessa Safarin ulkopuolella.',\n 'modal.opensafari.ical.steps': '
  1. Avaa Safari, ...
  2. liitä leikepöydän sisältö ja lähde.
',\n 'modal.multidate.h': 'Tämä on tapahtumasarja',\n 'modal.multidate.text': 'Lisää yksittäiset osat yksi kerrallaan:',\n 'date.status.cancelled': 'Tämä päivämäärä peruttiin.',\n 'date.status.cancelled.cta': 'Päivitä kalenterisi!',\n 'modal.subscribe.yahoo.h': 'Lisää kalenteri Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Avaa Yahoo-kalenteri.
  2. Napsauta \"Toiminnot\"-välilehteä.
  3. Valitse \"Seuraa muiden kalentereita\".
  4. Valitse nimi ja liitä URL-osoite leikepöydältäsi URL-kenttään.
',\n 'modal.subscribe.yahoo.button': 'Avaa Yahoo-kalenteri',\n 'modal.crios.google.text': 'Jos käytät Google Kalenteri -sovellusta eikä se ole jo avoinna taustalla, valitettavasti saatat joutua aloittamaan tämän prosessin kahdesti.',\n continue: 'Jatkaa',\n cancel: 'Peruuta',\n expired: 'Vanhentunut',\n recurring: 'Toistuva',\n },\n sv: {\n 'label.addtocalendar': 'Lägg till i kalender',\n 'label.icalfile': 'iCal-fil',\n close: 'Stäng',\n 'modal.button.default': 'Klicka på mig',\n 'modal.webview.ical.h': 'Öppna din webbläsare',\n 'modal.webview.ical.text': 'Tyvärr har webbläsare i appen problem med hur vi genererar kalenderfilen.',\n 'modal.clipboard.text': 'Vi har automatiskt kopierat en magisk URL till ditt klippblock.',\n 'modal.webview.ical.steps': '
  1. Öppna en annan webbläsare på telefonen, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.opensafari.ical.h': 'Öppna Safari',\n 'modal.opensafari.ical.text': 'Tyvärr har iOS vissa problem med att generera och öppna kalenderfilen utanför Safari.',\n 'modal.opensafari.ical.steps': '
  1. Öppna Safari, ...
  2. Insätt innehållet i klippbordet och kör.
',\n 'modal.multidate.h': 'Detta är en evenemangsserie',\n 'modal.multidate.text': 'Lägg till de enskilda delarna en efter en:',\n 'date.status.cancelled': 'Detta datum har ställts in.',\n 'date.status.cancelled.cta': 'Uppdatera din kalender!',\n 'modal.subscribe.yahoo.h': 'Lägg till kalender i Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Öppna Yahoo-kalendern.
  2. Klicka på fliken \"Åtgärder\".
  3. Välj \"Följ andra kalendrar\".
  4. Välj ett namn och klistra in URL:en från klippbordet i URL-fältet.
',\n 'modal.subscribe.yahoo.button': 'Öppna Yahoo-kalendern',\n 'modal.crios.google.text': 'Om du använder Google Calendar-appen och den inte redan är öppen i bakgrunden, måste du tyvärr kanske starta denna process två gånger.',\n continue: 'Fortsätta',\n cancel: 'Avbryt',\n expired: 'Utgånget',\n recurring: 'Återkommande',\n },\n cs: {\n 'label.addtocalendar': 'Přidat do kalendáře',\n 'label.icalfile': 'Soubor iCal',\n close: 'Zavřít',\n 'modal.button.default': 'Klikněte na mě',\n 'modal.webview.ical.h': 'Otevřete prohlížeč',\n 'modal.webview.ical.text': 'Prohlížeče v aplikacích mají bohužel problémy se způsobem generování souboru kalendáře.',\n 'modal.clipboard.text': 'Do schránky jsme automaticky zkopírovali kouzelnou adresu URL.',\n 'modal.webview.ical.steps': '
  1. Otevření jiného prohlížeče v telefonu, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.opensafari.ical.h': 'Otevřít Safari',\n 'modal.opensafari.ical.text': 'Bohužel má iOS nějaké problémy s generováním a otevíráním souboru kalendáře mimo Safari.',\n 'modal.opensafari.ical.steps': '
  1. Otevřít Safari, ...
  2. Vložte obsah schránky a přejděte.
',\n 'modal.multidate.h': 'Jedná se o sérii událostí',\n 'modal.multidate.text': 'Přidávejte jednotlivé díly jeden po druhém:',\n 'date.status.cancelled': 'Toto datum bylo zrušeno.',\n 'date.status.cancelled.cta': 'Aktualizujte svůj kalendář!',\n 'modal.subscribe.yahoo.h': 'Přidat kalendář do Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Otevřete kalendář Yahoo.
  2. Klikněte na kartu \"Akce\".
  3. Vyberte možnost \"Sledovat další kalendáře\".
  4. Vyberte název a vložte adresu URL ze schránky do pole URL.
',\n 'modal.subscribe.yahoo.button': 'Otevřete kalendář Yahoo',\n 'modal.crios.google.text': 'Pokud používáte aplikaci Google Calendar a není již otevřená na pozadí, bohužel budete pravděpodobně muset tento proces spustit dvakrát.',\n continue: 'Pokračovat',\n cancel: 'Storno',\n expired: 'Platnost vypršela',\n recurring: 'Opakující se',\n },\n ja: {\n 'label.addtocalendar': 'カレンダーに追加',\n 'label.icalfile': 'iCalファイル',\n close: '閉じる',\n 'modal.button.default': 'クリックしてください',\n 'modal.webview.ical.h': 'ブラウザを起動する',\n 'modal.webview.ical.text': '残念ながら、アプリ内ブラウザは、カレンダーファイルの生成方法に問題があります。',\n 'modal.clipboard.text': '魔法のURLを自動的にクリップボードにコピーしています。',\n 'modal.webview.ical.steps': '
  1. スマートフォンで別のブラウザを起動する, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.opensafari.ical.h': 'オープンSafari',\n 'modal.opensafari.ical.text': '残念ながら、iOS では、Safari の外でカレンダー ファイルを生成したり開いたりする際にいくつかの問題があります。',\n 'modal.opensafari.ical.steps': '
  1. オープンSafari, ...
  2. クリップボードの内容を貼り付けて行く。
',\n 'modal.multidate.h': 'イベントシリーズです',\n 'modal.multidate.text': '個々のパーツを一つずつ追加していく:',\n 'date.status.cancelled': 'この日はキャンセルになりました。',\n 'date.status.cancelled.cta': 'カレンダーを更新する!',\n 'modal.subscribe.yahoo.h': 'Yahooにカレンダーを追加する',\n 'modal.subscribe.yahoo.text': '
  1. Yahooカレンダーを開く。
  2. [実行] タブをクリックします。
  3. [その他のカレンダーのフォロー] を選択します。
  4. 名前を決めて、クリップボードにあるURLをURL欄に貼り付けます。
',\n 'modal.subscribe.yahoo.button': 'Yahooカレンダーを開く',\n 'modal.crios.google.text': 'Google カレンダーアプリを使用しており、それがバックグラウンドで既に開かれていない場合、残念ながら、このプロセスを2回開始する必要があるかもしれません。',\n continue: '続ける',\n cancel: 'キャンセル',\n expired: '期限切れ',\n recurring: '繰り返し',\n },\n it: {\n 'label.addtocalendar': 'Aggiungi al calendario',\n 'label.icalfile': 'File iCal',\n close: 'Chiudere',\n 'modal.button.default': 'Clicca su di me',\n 'modal.webview.ical.h': 'Aprire il browser',\n 'modal.webview.ical.text': 'Purtroppo i browser in-app hanno problemi con il modo in cui generiamo il file del calendario.',\n 'modal.clipboard.text': 'Abbiamo copiato automaticamente un URL magico negli appunti.',\n 'modal.webview.ical.steps': '
  1. Aprire un altro browser sul cellulare, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.opensafari.ical.h': 'Aprire Safari',\n 'modal.opensafari.ical.text': \"Sfortunatamente, iOS ha alcuni problemi nella generazione e nell'apertura del file del calendario al di fuori di Safari.\",\n 'modal.opensafari.ical.steps': '
  1. Aprire Safari, ...
  2. Incollare il contenuto degli appunti e partire.
',\n 'modal.multidate.h': 'Questa è una serie di eventi',\n 'modal.multidate.text': 'Aggiungere le singole parti una per una:',\n 'date.status.cancelled': 'La data è stata annullata.',\n 'date.status.cancelled.cta': 'Aggiornare il calendario!',\n 'modal.subscribe.yahoo.h': 'Aggiungi il calendario a Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Aprire il calendario di Yahoo.
  2. Fare clic sulla scheda \"Azioni\".
  3. Selezionare \"Segui altri calendari\".
  4. Scegliere un nome e incollare l\\'URL dagli appunti nel campo URL.
',\n 'modal.subscribe.yahoo.button': 'Apri il calendario di Yahoo',\n 'modal.crios.google.text': \"Se stai utilizzando l'applicazione Google Calendar e non è già aperta in background, purtroppo potrebbe essere necessario avviare questo processo due volte.\",\n continue: 'Continuare',\n cancel: 'Annulla',\n expired: 'Scaduta',\n recurring: 'Ricorrente',\n },\n ko: {\n 'label.addtocalendar': '캘린더에 추가',\n 'label.icalfile': 'iCal 파일',\n close: '닫다',\n 'modal.button.default': '클릭 해주세요',\n 'modal.webview.ical.h': '브라우저 열기',\n 'modal.webview.ical.text': '불행히도 인앱 브라우저는 캘린더 파일을 생성하는 방식에 문제가 있습니다.',\n 'modal.clipboard.text': '매직 URL을 클립보드에 자동으로 복사했습니다.',\n 'modal.webview.ical.steps': '
  1. 휴대전화에서 다른 브라우저 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.opensafari.ical.h': 'Safari 열기',\n 'modal.opensafari.ical.text': '안타깝게도 iOS에는 Safari 외부에서 캘린더 파일을 생성하고 여는 데 몇 가지 문제가 있습니다.',\n 'modal.opensafari.ical.steps': '
  1. Safari 열기, ...
  2. 클립보드 내용을 붙여넣고 이동합니다.
',\n 'modal.multidate.h': '이벤트 시리즈입니다',\n 'modal.multidate.text': '개별 부품을 하나씩 추가:',\n 'date.status.cancelled': '이 날짜는 취소되었습니다.',\n 'date.status.cancelled.cta': '캘린더를 업데이트하세요!',\n 'modal.subscribe.yahoo.h': 'Yahoo에 캘린더 추가',\n 'modal.subscribe.yahoo.text': '
  1. Yahoo 캘린더를 엽니다.
  2. \"동작\" 탭을 클릭합니다.
  3. \"다른 일정관리 팔로우\"를 선택합니다.
  4. 이름을 선택하고 클립보드의 URL을 URL 필드에 붙여넣습니다.
',\n 'modal.subscribe.yahoo.button': '야후 캘린더 열기',\n 'modal.crios.google.text': 'Google 캘린더 앱을 사용하고 있고 이미 백그라운드에서 열려 있지 않다면, 안타깝게도 이 프로세스를 두 번 시작해야 할 수 있습니다.',\n continue: '계속하다',\n cancel: '취소',\n expired: '만료됨',\n recurring: '되풀이',\n },\n vi: {\n 'label.addtocalendar': 'Thêm vào Lịch',\n 'label.icalfile': 'Tệp iCal',\n close: 'Đóng',\n 'modal.button.default': 'Nhấp vào đây',\n 'modal.webview.ical.h': 'Mở trình duyệt của bạn',\n 'modal.webview.ical.text': 'Rất tiếc, các trình duyệt trong ứng dụng gặp sự cố với cách chúng tôi tạo tệp lịch.',\n 'modal.clipboard.text': 'Chúng tôi đã tự động sao chép một URL ma thuật vào khay nhớ tạm của bạn.',\n 'modal.webview.ical.steps': '
  1. Mở trình duyệt khác trên điện thoại của bạn, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.opensafari.ical.h': 'Mở Safari',\n 'modal.opensafari.ical.text': 'Rất tiếc, iOS gặp một số sự cố khi tạo và mở tệp lịch bên ngoài Safari.',\n 'modal.opensafari.ical.steps': '
  1. Mở Safari, ...
  2. Dán nội dung khay nhớ tạm và bắt đầu.
',\n 'modal.multidate.h': 'Đây là một chuỗi sự kiện',\n 'modal.multidate.text': 'Thêm từng phần riêng lẻ một:',\n 'date.status.cancelled': 'Ngày này đã bị hủy.',\n 'date.status.cancelled.cta': 'Cập nhật lịch của bạn!',\n 'modal.subscribe.yahoo.h': 'Thêm lịch vào Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Mở Lịch Yahoo.
  2. Nhấp vào tab \"Hành động\".
  3. Chọn \"Theo dõi các Lịch khác\".
  4. Chọn tên và dán URL từ khay nhớ tạm của bạn vào trường URL.
',\n 'modal.subscribe.yahoo.button': 'Mở lịch Yahoo',\n 'modal.crios.google.text': 'Nếu bạn đang sử dụng ứng dụng Google Calendar và nó chưa mở trong nền, thì rất tiếc, bạn có thể cần phải bắt đầu quy trình này hai lần.',\n continue: 'Tiếp tục',\n cancel: 'Hủy bỏ',\n expired: 'Hết hạn',\n recurring: 'Định kỳ',\n },\n ro: {\n 'label.addtocalendar': 'Adauga In Calendar',\n 'label.icalfile': 'Fisier iCal',\n close: 'Inchide',\n 'modal.button.default': 'Apasa-ma',\n 'modal.webview.ical.h': 'Deschide browserul',\n 'modal.webview.ical.text': 'Din pacate, browserele din aplicatie au probleme cu generarea de fisiere pentru calendar.',\n 'modal.clipboard.text': 'Ti-am copiat automat un URL magic in clipboard',\n 'modal.webview.ical.steps': '
  1. Deschide un alt browser pe telefonul tau, ...
  2. Lipeste continutul din clipboard si continua.
',\n 'modal.opensafari.ical.h': 'Deschide Safari',\n 'modal.opensafari.ical.text': 'Din păcate, iOS are unele probleme la generarea și deschiderea fișierului calendar în afara Safari.',\n 'modal.opensafari.ical.steps': '
  1. Deschides Safari, ...
  2. Lipeste continutul din clipboard si continua.
',\n 'modal.multidate.h': 'Aceasta este o serie de evenimente',\n 'modal.multidate.text': 'Adauga evenimentele individuale una cate una:',\n 'date.status.cancelled': 'Aceasta data a fost anulata.',\n 'date.status.cancelled.cta': 'Te rugam sa-ti updatezi calendarul!',\n 'modal.subscribe.yahoo.h': 'Adauga Calendar in Yahoo',\n 'modal.subscribe.yahoo.text': '
  1. Deschide acum calendarul Yahoo.
  2. Apasa pe tab-ul de \"Actiuni\".
  3. Apasa \"Urmareste alte calendare\".
  4. Seteaza un nume si lipeste continutul din clipboard in casuta cu url.
',\n 'modal.subscribe.yahoo.button': 'Deschideți calendarul Yahoo',\n 'modal.crios.google.text': 'Dacă utilizați aplicația Google Calendar și aceasta nu este deja deschisă în fundal, din păcate, s-ar putea să fie necesar să începeți acest proces de două ori.',\n continue: 'Continua',\n cancel: 'Anuleaza',\n expired: 'Expirat',\n recurring: 'Recurente',\n },\n fa: {\n 'label.addtocalendar': 'افزودن به تقویم',\n 'label.icalfile': 'پرونده iCal',\n close: 'بستن',\n 'modal.button.default': 'اینجا کلیک کنید',\n 'modal.webview.ical.h': 'مرورگر خود را باز کنید',\n 'modal.webview.ical.text': 'متاسفانه، مرورگرهای درون برنامه‌ای با نحوه تولید پرونده تقویم مشکل دارند.',\n 'modal.clipboard.text': 'ما به طور خودکار یک نشانی اینترنتی جادویی را در کلیپ‌بورد شما کپی کردیم.',\n 'modal.webview.ical.steps': '
  1. مرورگر دیگری را در گوشی خود باز کنید، ...
  2. محتوای کلیپ‌بورد را Paste کنید و Go را بزنید که آدرس باز شود.
',\n 'modal.opensafari.ical.h': 'سافاری را باز کنید',\n 'modal.opensafari.ical.text': 'متأسفانه iOS در تولید و باز کردن فایل تقویم خارج از سافاری مشکلاتی دارد.',\n 'modal.opensafari.ical.steps': '
  1. سافاری را باز کنید، ...
  2. محتوای کلیپ‌بورد را Paste کنید و Go را بزنید که آدرس باز شود.
',\n 'modal.multidate.h': 'این یک سری رویداد است',\n 'modal.multidate.text': 'رویدادهای شخصی را یکی یکی اضافه کنید:',\n 'date.status.cancelled': 'این تاریخ لغو شد',\n 'date.status.cancelled.cta': 'لطفا تقویم خود را به‌روز کنید!',\n 'modal.subscribe.yahoo.h': 'افزودن تقویم به یاهو',\n 'modal.subscribe.yahoo.text': '
  1. اکنون تقویم یاهو را باز کنید.
  2. روی زبانه «Actions» کلیک کنید.
  3. روی «Follow Other Calendars» ضربه بزنید.
  4. یک نام وارد کنید و محتوای کلیپ‌بورد را در قسمت url قرار دهید.
',\n 'modal.subscribe.yahoo.button': 'تقویم یاهو را باز کنید',\n 'modal.crios.google.text': 'اگر از برنامه Google Calendar استفاده می‌کنید و آن در پس‌زمینه باز نشده است، متأسفانه احتمالاً نیاز به دو بار شروع این فرآیند دارید.',\n continue: 'ادامه دادن',\n cancel: 'لغو',\n expired: 'منقضی شده',\n },\n et: {\n 'label.addtocalendar': 'Lisa kalendrisse',\n 'label.icalfile': 'iCal fail',\n close: 'Sulge',\n 'modal.button.default': 'Kliki siia',\n 'modal.webview.ical.h': 'Ava oma veebilehitseja',\n 'modal.webview.ical.text': 'Kahjuks on rakendusesisestel veebilehitsejatel probleeme kalendrifailide loomisega.',\n 'modal.clipboard.text': 'Kalendri veebi aadress on automaatselt kopeeritud sinu lõikelauale.',\n 'modal.webview.ical.steps': '
  1. Ava teine veebilehitseja oma telefonis, ...
  2. Kleebi lõikelaua sisu ning mine sellele lehele.
',\n 'modal.opensafari.ical.h': 'Ava Safari',\n 'modal.opensafari.ical.text': 'Kahjuks on iOS-il probleeme kalendrifaili genereerimise ja avamisega väljaspool Safarit.',\n 'modal.opensafari.ical.steps': '
  1. Ava Safari, ...
  2. Kleebi lõikelaua sisu ning mine sellele lehele.
',\n 'modal.multidate.h': 'See on sündmuste seeria',\n 'modal.multidate.text': 'Ava üksikud sündmused ükshaaval:',\n 'date.status.cancelled': 'See kuupäev on tühistatud.',\n 'date.status.cancelled.cta': 'Palun uuenda oma kalendrit!',\n 'modal.subscribe.yahoo.h': 'Lisa kalender Yahoo-sse',\n 'modal.subscribe.yahoo.text': '
  1. Ava oma Yahoo kalender.
  2. Kliki \"Actions\" vahelehte.
  3. Vajuta \"Follow Other Calendars\".
  4. Määra nimi ning lisa lõikelaua sisu URL (veebi aadressi) väljale.
',\n 'modal.subscribe.yahoo.button': 'Avage Yahoo kalender',\n 'modal.crios.google.text': 'Kui kasutate rakendust Google Calendar ja see pole taustal juba avatud, siis kahjuks võib olla vajalik selle protsessi kahe korra käivitamine.',\n continue: 'Jätkama',\n cancel: 'Tühista',\n expired: 'Aegunud',\n },\n};\nconst availableLanguages = Object.keys(i18nStrings);\nfunction atcb_translate_hook(identifier, data) {\n if (data.customLabels != null && data.customLabels[`${identifier}`] != null && data.customLabels[`${identifier}`] != '') {\n return atcb_rewrite_html_elements(data.customLabels[`${identifier}`]);\n } else {\n return atcb_translate(identifier, data.language);\n }\n}\nfunction atcb_translate(identifier, language) {\n if (!language) {\n language = 'en';\n }\n if (i18nStrings[`${language}`][`${identifier}`]) {\n return i18nStrings[`${language}`][`${identifier}`];\n }\n return identifier;\n}\n\n\nlet atcbInitialGlobalInit = false;\nlet atcbBtnCount = 0;\nconst lightModeMutationObserver = [];\nconst template = `
`;\nif (atcbIsBrowser()) {\n class AddToCalendarButton extends HTMLElement {\n constructor() {\n super();\n const elem = document.createElement('template');\n elem.innerHTML = template;\n this.attachShadow({ mode: 'open', delegateFocus: true });\n this.shadowRoot.append(elem.content.cloneNode(true));\n this.loaded = false;\n this.initialized = false;\n this.data = {};\n this.error = false;\n }\n async connectedCallback() {\n this.debug = this.hasAttribute('debug');\n if (this.getAttribute('proKey') != null && this.getAttribute('proKey') != '') {\n this.data = atcb_get_pro_data(this.getAttribute('proKey'));\n }\n if (this.data.name == null || this.data.name == '') {\n try {\n this.data = atcb_read_attributes(this);\n } catch (e) {\n if (this.debug) {\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n return;\n } finally {\n this.data.proKey = '';\n this.loaded = true;\n }\n }\n this.initButton();\n }\n disconnectedCallback() {\n atcb_cleanup(this.shadowRoot, this.data);\n if (this.debug) {\n console.log('Add to Calendar Button \"' + this.data.identifier + '\" destroyed');\n }\n if (document.querySelectorAll('add-to-calendar-button').length == 0) {\n atcbBtnCount = 0;\n }\n }\n static get observedAttributes() {\n const observeAdditionally = ['instance'];\n return atcbWcParams\n .map((element) => {\n return element.toLowerCase();\n })\n .concat(observeAdditionally);\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (this.data.proKey != null && this.data.proKey != '') {\n return;\n }\n if (!this.loaded) {\n return;\n }\n if (this.debug && this.initialized) {\n console.log(`${name}'s value has been changed from ${oldValue} to ${newValue}`);\n }\n atcb_cleanup(this.shadowRoot, this.data);\n this.data = {};\n this.shadowRoot.querySelector('.atcb-initialized').remove();\n const elem = document.createElement('template');\n elem.innerHTML = template;\n this.shadowRoot.append(elem.content.cloneNode(true));\n try {\n this.data = atcb_read_attributes(this);\n } catch (e) {\n if (this.debug) {\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n return;\n }\n this.initButton();\n }\n initButton() {\n if (!this.initialized) {\n this.initialized = true;\n atcbBtnCount = atcbBtnCount + 1;\n }\n if (this.identifier && this.identifier != '') {\n this.data.identifier = this.identifier;\n } else {\n if (this.data.identifier && this.data.identifier != '') {\n if (!/^[\\w\\-_]+$/.test(this.data.identifier)) {\n this.data.identifier = '';\n if (this.debug) {\n console.warn('Add to Calendar Button generation: identifier invalid - using auto numbers instead');\n }\n } else {\n this.data.identifier = 'atcb-btn-' + this.data.identifier;\n }\n }\n if (this.data.identifier == null || this.data.identifier == '') {\n this.data.identifier = 'atcb-btn-' + atcbBtnCount;\n }\n this.identifier = this.data.identifier;\n }\n this.setAttribute('atcb-button-id', this.data.identifier);\n try {\n this.style.visibility = 'visible';\n this.style.opacity = '1';\n this.style.position = 'relative';\n atcb_build_button(this.shadowRoot, this.data, this.debug);\n } catch (e) {\n if (this.debug) {\n atcb_render_debug_msg(this.shadowRoot, e);\n }\n return;\n }\n }\n }\n if (!customElements.get('add-to-calendar-button')) {\n customElements.define('add-to-calendar-button', AddToCalendarButton);\n }\n}\nfunction atcb_read_attributes(el) {\n let data = {};\n data['hideBranding'] = true;\n for (let i = 0; i < atcbWcParams.length; i++) {\n let attr = atcbWcParams[`${i}`];\n if (el.hasAttribute(`${attr}`)) {\n let inputVal = atcb_secure_content(el.getAttribute(`${attr}`).replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false);\n let val;\n if (atcbWcBooleanParams.includes(attr)) {\n if (inputVal == '') {\n val = true;\n } else {\n val = inputVal === 'true';\n }\n } else if (atcbWcObjectParams.includes(attr)) {\n val = JSON.parse(inputVal);\n } else if (atcbWcObjectArrayParams.includes(attr)) {\n const cleanedInput = (function () {\n if (inputVal.substring(0, 1) != '[') {\n return '[' + inputVal + ']';\n }\n return inputVal;\n })();\n val = JSON.parse(cleanedInput);\n } else if (atcbWcArrayParams.includes(attr)) {\n const cleanedInput = (function () {\n let newVal = inputVal;\n if (inputVal.includes('\"') || inputVal.includes(\"'\")) {\n if (inputVal.includes('[')) {\n newVal = inputVal.substring(2, inputVal.length - 2);\n } else {\n newVal = inputVal.substring(1, inputVal.length - 1);\n }\n }\n if (!inputVal.includes('|')) {\n newVal = newVal.replace(/\\s/g, '');\n }\n return newVal;\n })();\n if (cleanedInput.includes(\"','\")) {\n val = cleanedInput.split(\"','\");\n } else {\n val = cleanedInput.split('\",\"');\n }\n } else if (atcbWcNumberParams.includes(attr)) {\n val = parseInt(inputVal);\n } else {\n val = inputVal;\n }\n data[`${attr}`] = val;\n }\n const identifierAttr = el.getAttribute('identifier');\n if (identifierAttr != null && identifierAttr != '') {\n data['identifier'] = atcb_secure_content(identifierAttr.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false);\n }\n }\n if (!atcb_check_required(data)) {\n const slotInput = el.innerHTML;\n const atcbJsonInput = (function () {\n if (slotInput != '') {\n try {\n return JSON.parse(atcb_secure_content(slotInput.replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false));\n } catch (e) {\n throw new Error('Add to Calendar Button generation failed: JSON content provided, but badly formatted (in doubt, try some tool like https://jsonformatter.org/ to validate).\\r\\nError message: ' + e);\n }\n }\n return '';\n })();\n if (atcbJsonInput.length == 0) {\n console.error(data.validationError);\n throw new Error('Add to Calendar Button generation failed: no data provided or missing required fields - see console logs for details');\n }\n data = atcbJsonInput;\n }\n return data;\n}\nfunction atcb_build_button(host, data, debug = false) {\n data = atcb_decorate_data(data);\n if (atcb_validate(data)) {\n const rootObj = host.querySelector('.atcb-initialized');\n atcb_set_light_mode(host, data);\n rootObj.setAttribute('lang', data.language);\n atcb_load_css(host, rootObj, data.buttonStyle, data.inline, data.buttonsList, data.customCss);\n atcb_setup_state_management(data);\n atcb_set_global_event_listener(host, data);\n atcb_init_log(data.proKey, debug);\n if (!data.hidden) {\n atcb_generate_button(host, rootObj, data, debug);\n if (!data.hideRichData && data.name && data.dates[0].location && data.dates[0].startDate) {\n atcb_generate_rich_data(data, host.host);\n }\n }\n atcb_log_event('initialization', data.identifier, data.identifier);\n } else if (debug) {\n console.error(data.validationError);\n throw new Error(data.validationError);\n }\n}\nfunction atcb_cleanup(host, data) {\n atcb_close(host);\n atcb_unset_global_event_listener(data.identifier);\n const schemaEl = document.getElementById('atcb-schema-' + data.identifier);\n if (schemaEl) {\n schemaEl.remove();\n }\n Array.from(host.querySelectorAll('.atcb-debug-error-msg'))\n .concat(Array.from(host.querySelectorAll('style')))\n .concat(Array.from(host.querySelectorAll('.atcb-button-wrapper')))\n .forEach((el) => el.remove());\n delete atcbStates[`${data.identifier}`];\n}\nfunction atcb_set_light_mode(shadowRoot, data) {\n shadowRoot.host.classList.remove('atcb-dark', 'atcb-light', 'atcb-bodyScheme');\n const hostLightMode = (function () {\n if (data.lightMode == 'bodyScheme') {\n if (document.body.classList.contains('atcb-dark') || document.documentElement.classList.contains('atcb-dark')) {\n return 'dark';\n } else {\n return 'light';\n }\n }\n return data.lightMode;\n })();\n shadowRoot.host.classList.add('atcb-' + hostLightMode);\n}\nfunction atcb_load_css(host, rootObj = null, style = '', inline = false, buttonsList = false, customCss = '') {\n const cspnonceRegex = /[`'\"()[\\]{}<>\\s]/;\n const nonceVal = (function () {\n if (!host.host.hasAttribute('cspnonce')) {\n return null;\n }\n if (cspnonceRegex.test(host.host.getAttribute('cspnonce'))) {\n throw new Error('cspnonce input contains forbidden characters.');\n }\n return host.host.getAttribute('cspnonce');\n })();\n if (!document.getElementById('atcb-global-style')) {\n const cssGlobalContent = document.createElement('style');\n cssGlobalContent.id = 'atcb-global-style';\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;\n cssGlobalContent.innerText = '.atcb-modal-no-scroll { overflow-y: hidden !important; -webkit-overflow-scrolling: touch; } body.atcb-modal-no-scroll { padding-right: ' + scrollBarWidth + 'px; }';\n if (nonceVal) {\n cssGlobalContent.setAttribute('nonce', nonceVal);\n }\n document.head.append(cssGlobalContent);\n }\n if (customCss != '' && style == 'custom') {\n const cssFile = document.createElement('link');\n cssFile.setAttribute('rel', 'stylesheet');\n cssFile.setAttribute('type', 'text/css');\n cssFile.setAttribute('href', customCss);\n if (nonceVal) {\n cssFile.setAttribute('nonce', nonceVal);\n }\n if (rootObj == null) {\n host.host.style.display = 'none';\n loadExternalCssAsynch(cssFile, host, host.host);\n } else {\n const placeholder = document.createElement('div');\n placeholder.style.cssText = 'width: 150px; height: 40px; border-radius: 200px; background-color: #777; opacity: .3;';\n host.prepend(placeholder);\n loadExternalCssAsynch(cssFile, host, rootObj, placeholder, inline, buttonsList);\n }\n return;\n }\n if (style != 'none' && atcbCssTemplate[`${style}`] != null) {\n const cssContent = document.createElement('style');\n if (nonceVal) {\n cssContent.setAttribute('nonce', nonceVal);\n }\n const overrideDefaultCss = (function () {\n if (host.host.hasAttribute('styleLight')) {\n const output = ':host { ' + atcb_secure_content(host.host.getAttribute('styleLight').replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false) + ' }';\n return output;\n }\n return '';\n })();\n const overrideDarkCss = (function () {\n if (host.host.hasAttribute('styleDark')) {\n const output = ':host(.atcb-dark), :host-context(html.atcb-dark):host(.atcb-bodyScheme), :host-context(body.atcb-dark):host(.atcb-bodyScheme) { ' + atcb_secure_content(host.host.getAttribute('styleDark').replace(/(\\\\r\\\\n|\\\\n|\\\\r)/g, ''), false) + ' }';\n return output;\n }\n return '';\n })();\n cssContent.innerText = atcbCssTemplate[`${style}`] + overrideDefaultCss + overrideDarkCss;\n host.prepend(cssContent);\n }\n if (rootObj != null) {\n if (inline) {\n rootObj.style.display = 'inline-block';\n } else {\n if (buttonsList) {\n rootObj.style.display = 'flex';\n rootObj.style.flexWrap = 'wrap';\n rootObj.style.justifyContent = 'center';\n } else {\n rootObj.style.display = 'block';\n }\n }\n }\n}\nasync function loadExternalCssAsynch(cssFile, host, rootObj, placeholder = null, inline = false, buttonsList = false) {\n host.prepend(cssFile);\n await new Promise((resolve) => {\n cssFile.onload = resolve;\n });\n if (placeholder != null) {\n placeholder.remove();\n }\n if (inline) {\n rootObj.style.display = 'inline-block';\n } else {\n if (buttonsList) {\n rootObj.style.display = 'flex';\n rootObj.style.flexWrap = 'wrap';\n rootObj.style.justifyContent = 'center';\n } else {\n rootObj.style.display = 'block';\n }\n }\n}\nfunction atcb_render_debug_msg(host, error) {\n if (host.querySelector('.atcb-debug-error-msg')) return;\n const errorBanner = document.createElement('div');\n errorBanner.classList.add('atcb-debug-error-msg');\n errorBanner.style.cssText = 'color: #bf2e2e; font-size: 12px; font-weight: bold; padding: 12px 15px; border: 2px solid #bf2e2e; max-width: 180px; border-radius: 13px;';\n errorBanner.textContent = error;\n host.append(errorBanner);\n}\n// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\nfunction atcb_action(data, triggerElement, keyboardTrigger = false) {\n if (!atcbIsBrowser()) {\n return;\n }\n data = atcb_secure_content(data);\n data.hideBranding = true;\n if (data.proKey != null && data.proKey != '') {\n data = atcb_get_pro_data(data.proKey);\n }\n data.debug = data.debug === 'true';\n if (!atcb_check_required(data)) {\n console.error(data.validationError);\n return;\n }\n data = atcb_decorate_data(data);\n let root = document.body;\n data.trigger = 'click';\n if (triggerElement) {\n root = triggerElement;\n if (triggerElement.id != null && triggerElement.id != '') {\n data.identifier = triggerElement.id;\n } else {\n if (data.identifier != null && data.identifier != '' && /^[\\w\\-_]+$/.test(data.identifier)) {\n data.identifier = 'atcb-btn-' + data.identifier;\n } else {\n data.identifier = 'atcb-btn-custom';\n }\n triggerElement.id = data.identifier;\n }\n if (data.listStyle === 'dropdown' || data.listStyle === 'dropdown-static' || data.listStyle === 'dropup-static') {\n data.listStyle = 'modal';\n }\n } else {\n data.identifier = 'atcb-btn-custom';\n data.listStyle = 'modal';\n }\n if (!atcb_validate(data)) {\n console.error(data.validationError);\n return;\n }\n const oneOption = (function () {\n if (data.options.length === 1) {\n return true;\n }\n return false;\n })();\n const potentialExistingHost = document.getElementById('atcb-customTrigger-' + data.identifier + '-host');\n if (potentialExistingHost) {\n atcb_close(potentialExistingHost.shadowRoot, false);\n if (atcbStates[`${atcbStates['active']}`]) {\n delete atcbStates[`${atcbStates['active']}`];\n }\n potentialExistingHost.remove();\n }\n atcb_log_event('initialization', data.identifier, data.identifier);\n if (!data.blockInteraction) {\n const host = document.createElement('div');\n host.id = 'atcb-customTrigger-' + data.identifier + '-host';\n if (root == document.body) {\n document.body.append(host);\n } else {\n root.after(host);\n }\n host.setAttribute('atcb-button-id', data.identifier);\n host.attachShadow({ mode: 'open', delegateFocus: true });\n if (!oneOption || (data.options[0] !== 'apple' && data.options[0] !== 'ical') || (data.dates && data.dates.length > 1 && data.dates.organizer) || atcbIsMobile()) {\n if (triggerElement) {\n const btnDim = triggerElement.getBoundingClientRect();\n host.style.position = 'relative';\n host.style.left = -btnDim.width + 'px';\n host.style.top = btnDim.height + 'px';\n }\n const elem = document.createElement('template');\n elem.innerHTML = template;\n host.shadowRoot.append(elem.content.cloneNode(true));\n const rootObj = host.shadowRoot.querySelector('.atcb-initialized');\n atcb_set_light_mode(host.shadowRoot, data);\n host.shadowRoot.querySelector('.atcb-initialized').setAttribute('lang', data.language);\n atcb_load_css(host.shadowRoot, rootObj, data.buttonStyle, false, false, data.customCss);\n atcb_set_global_event_listener(host.shadowRoot, data);\n }\n atcb_setup_state_management(data);\n if (oneOption) {\n atcb_generate_links(host.shadowRoot, data.options[0], data, 'all', keyboardTrigger);\n atcb_log_event('openSingletonLink', data.identifier, data.identifier);\n } else {\n atcb_toggle(host.shadowRoot, 'open', data, triggerElement, keyboardTrigger);\n }\n }\n atcb_init_log(data.proKey, data.debug);\n if (data.debug) {\n console.log('Add to Calendar Button \"' + data.identifier + '\" triggered');\n }\n return data.identifier;\n}\nfunction atcb_setup_state_management(data) {\n const singleDates = [];\n for (let i = 0; i < data.options.length; i++) {\n singleDates[data.options[`${i}`]] = [];\n for (let id = 1; id <= data.dates.length; id++) {\n singleDates[data.options[`${i}`]].push(0);\n }\n }\n atcbStates[data.identifier] = singleDates;\n}\nfunction atcb_init_log(pro = '', debug = false) {\n if (!atcbInitialGlobalInit) {\n const versionOutput = (function () {\n if (debug) {\n return ' (version ' + atcbVersion + ')';\n }\n return '';\n })();\n if (pro != '') {\n console.log('Add to Calendar PRO script initialized' + versionOutput + ' | https://add-to-calendar-pro.com');\n } else {\n console.log('%c\\nAdd to Calendar Button script initialized' + versionOutput + '\\n' + 'see https://add-to-calendar-button.com for details.\\n', 'font-weight: bold;');\n }\n atcbInitialGlobalInit = true;\n }\n}\nfunction atcb_get_pro_data(licenseKey) {\n /*!\n * @preserve\n * PER LICENSE AGREEMENT, YOU ARE NOT ALLOWED TO REMOVE OR CHANGE THIS FUNCTION!\n */\n const data = {};\n if (licenseKey != null && licenseKey != '') {\n data.proKey = licenseKey;\n data.identifier = licenseKey;\n console.error('Add to Calendar Button proKey invalid! Falling back to local data...');\n }\n return data;\n}\nfunction atcb_set_global_event_listener(host, data) {\n if (!atcbIsBrowser()) {\n return;\n }\n if (data.lightMode == 'bodyScheme') {\n lightModeMutationObserver[data.identifier] = new MutationObserver(function (mutationsList) {\n mutationsList.forEach((mutation) => {\n if (mutation.attributeName === 'class') {\n atcb_set_light_mode(host, data);\n }\n });\n });\n lightModeMutationObserver[data.identifier].observe(document.documentElement, { attributes: true });\n lightModeMutationObserver[data.identifier].observe(document.body, { attributes: true });\n }\n if (!atcbInitialGlobalInit) {\n document.addEventListener('keyup', atcb_global_listener_keyup);\n document.addEventListener('keydown', atcb_global_listener_keydown);\n window.addEventListener('resize', atcb_global_listener_resize);\n }\n}\nfunction atcb_global_listener_keyup(event) {\n const host = (function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n if (root) {\n return root.shadowRoot;\n }\n return null;\n })();\n if (host && event.key === 'Escape') {\n atcb_log_event('closeList', 'Ecs Hit', atcbStates['active']);\n atcb_toggle(host, 'close', '', '', true);\n }\n}\nfunction atcb_global_listener_keydown(event) {\n const host = (function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n const rootModal = document.getElementById(atcbStates['active'] + '-modal-host');\n if (rootModal) {\n return rootModal.shadowRoot;\n }\n if (root) {\n return root.shadowRoot;\n }\n return null;\n })();\n if (host && host.querySelector('.atcb-list') && (event.key === 'ArrowDown' || event.key === 'ArrowUp' || event.key === 'Tab')) {\n event.preventDefault();\n let targetFocus = 0;\n let currFocusOption = host.activeElement;\n const optionListCount = host.querySelectorAll('.atcb-list-item').length;\n if (currFocusOption && currFocusOption.classList.contains('atcb-list-item')) {\n if (event.key === 'ArrowDown' && currFocusOption.dataset.optionNumber < optionListCount) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) + 1;\n } else if (event.key === 'Tab') {\n if (currFocusOption.dataset.optionNumber < optionListCount) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) + 1;\n } else {\n targetFocus = 1;\n }\n } else if (event.key === 'ArrowUp' && currFocusOption.dataset.optionNumber >= 1) {\n targetFocus = parseInt(currFocusOption.dataset.optionNumber) - 1;\n }\n if (targetFocus > 0) {\n host.querySelector('.atcb-list-item[data-option-number=\"' + targetFocus + '\"]').focus();\n }\n } else {\n switch (event.key) {\n default:\n host.querySelector('.atcb-list-item[data-option-number=\"1\"]').focus();\n break;\n case 'ArrowUp':\n host.querySelector('.atcb-list-item[data-option-number=\"' + optionListCount + '\"]').focus();\n break;\n }\n }\n }\n}\nfunction atcb_global_listener_resize() {\n const host = (function () {\n const root = document.querySelector('[atcb-button-id=\"' + atcbStates['active'] + '\"]');\n const rootModal = document.getElementById(atcbStates['active'] + '-modal-host');\n if (rootModal) {\n return rootModal.shadowRoot;\n }\n if (root) {\n return root.shadowRoot;\n }\n return null;\n })();\n if (host) {\n const activeOverlay = host.querySelector('#atcb-bgoverlay');\n if (activeOverlay) {\n atcb_set_fullsize(activeOverlay);\n atcb_manage_body_scroll(host);\n }\n }\n}\nfunction atcb_unset_global_event_listener(identifier) {\n if (typeof lightModeMutationObserver[`${identifier}`] !== 'undefined') {\n lightModeMutationObserver[`${identifier}`].disconnect();\n }\n}\n\nexport { atcb_action, i18nStrings, atcbCssTemplate as cssStyles };","import { atcb_action } from \"add-to-calendar-button\";\nimport CalendarTodayRoundedIcon from '@mui/icons-material/CalendarTodayRounded';\n\nconst CalendarButton = (props: any) => {\n const { config } = props;\n\n const handleClick = () => {\n if (typeof atcb_action === \"function\") {\n atcb_action(config);\n }\n };\n\n return (\n \n \n \n );\n};\n\nexport default CalendarButton;\n","\nimport sha256 from \"sha256\";\nimport { hsl } from \"color-convert\";\nimport { useRefine } from \"../context/RefineProvider\";\n\n\ninterface BadgeLevelProps {\n level?: string;\n topic?: string;\n location?: string;\n onClick?: () => void;\n}\n\nfunction generaColoreHash(location: string): string {\n // Calcola l'hash SHA-256 della location\n const hash = sha256(location);\n\n // Estrai l'hue dall'hash e normalizzalo tra 0 e 360\n const hashValue = parseInt(hash.substr(0, 2), 16) / 255;\n\n // Definisci l'intervallo di hue da arancione a viola (30°-270°) nella rappresentazione HSL\n const minHue = 130;\n const maxHue = 280;\n\n // Calcola il valore dell'hue all'interno dell'intervallo\n const hue = minHue + hashValue * (maxHue - minHue);\n\n // Definisci i valori di saturazione e luminosità desiderati (0-100)\n const desiredSaturation = 65; // 100% saturazione\n const desiredLightness = 60; // 50% luminosità\n\n // Converti l'hue, saturazione e luminosità in RGB\n const [r, g, b] = hsl.rgb([hue, desiredSaturation, desiredLightness]);\n\n // Restituisci il colore in formato esadecimale\n const colore = `rgb(${r}, ${g}, ${b})`;\n return colore;\n}\n\nconst BadgeLevel: React.FC = ({ level, topic, location }) => {\n const context = useRefine();\n if(!context) throw new Error(\"RefineProvider not found\");\n \n const { setRefineAttribute, setRefineValue } = context;\n \n let attribute = \"\";\n let bgColor = \"\";\n let textColor = \"text-white\";\n \n if (level) {\n bgColor = \"bg-primaryColor\";\n attribute = \"level\";\n } else if (topic) {\n bgColor = \"bg-secondaryColor\";\n attribute = \"topic\";\n } else if (location) {\n attribute = \"location\";\n }\n const value = level || topic || location;\n \n if(!value) throw new Error(\"No value provided\");\n\n const handleButtonClick = (attribute: string, value: string) => {\n setRefineAttribute(attribute);\n setRefineValue(value);\n }\n\n\n return (\n handleButtonClick(attribute, value)}\n style={{\n backgroundColor: location ? generaColoreHash(location) : undefined,\n }}\n className={`${bgColor} ${textColor} text-sm font-medium uppercase px-2.5 py-0.5 rounded`}\n >\n {value}\n \n );\n};\n\nexport default BadgeLevel;","const Avatar = ({ speakers, onClick }: any) => {\n return (\n
\n
\n {speakers.map((speaker: any, index: number) => (\n
onClick(index)}> {/* Aggiungi qui l'onClick */}\n {speaker.photo && speaker.photo.length > 25 ? (\n \n ) : (\n \n {speaker.name && speaker.surname\n ? speaker.name.charAt(0) + speaker.surname.charAt(0)\n : \"\"}\n
\n )}\n
\n ))}\n
\n
\n {speakers.map((speaker: any, index: number) => {\n const nameString = `${speaker.name} ${speaker.surname}`;\n return (\n
\n
1 ? \"flex\" : \"\"}>\n
{nameString}
\n
\n
\n );\n })}\n
\n \n );\n};\n\nexport default Avatar;","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n this.observers[event] = this.observers[event] || [];\n this.observers[event].push(listener);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event] = this.observers[event].filter(l => l !== listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = [].concat(this.observers[event]);\n cloned.forEach(observer => {\n observer(...args);\n });\n }\n if (this.observers['*']) {\n const cloned = [].concat(this.observers['*']);\n cloned.forEach(observer => {\n observer.apply(observer, [event, ...args]);\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nconst chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = new RegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const paths = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n let j = 2;\n let p = paths.slice(i, i + j).join(keySeparator);\n let mix = current[p];\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n const joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n const result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const defaultValue = options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n this.pluralResolver.getSuffixes(language, options).forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const regexpStr = `${this.prefix}(.+?)${this.suffix}`;\n this.regexp = new RegExp(regexpStr, 'g');\n const regexpUnescapeStr = `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`;\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n const nestingRegexpStr = `${this.nestingPrefix}(.+?)${this.nestingSuffix}`;\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: (value, format, lng, options) => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import parseTag from './parse-tag'\n\nconst tagRE = /<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g\nconst whitespaceRE = /^\\s*$/\n\n// re-used obj for quick lookups of components\nconst empty = Object.create(null)\n\nexport default function parse(html, options) {\n options || (options = {})\n options.components || (options.components = empty)\n const result = []\n const arr = []\n let current\n let level = -1\n let inComponent = false\n\n // handle text at top level\n if (html.indexOf('<') !== 0) {\n var end = html.indexOf('<')\n result.push({\n type: 'text',\n content: end === -1 ? html : html.substring(0, end),\n })\n }\n\n html.replace(tagRE, function (tag, index) {\n if (inComponent) {\n if (tag !== '') {\n return\n } else {\n inComponent = false\n }\n }\n const isOpen = tag.charAt(1) !== '/'\n const isComment = tag.startsWith('