{"version":3,"file":"static/js/main.e978dc27.js","mappings":"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,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJ3vE,GAAIA,GACJ4vE,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJE,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJE,GAAIA,GACJC,GAAIA,GACJ9+P,GAAIA,GACJ++P,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJx/M,GAAIA,GACJy/M,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC,GAAIA,GACJC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,GAAAA,QAAAA,IAAAA,IAAAA,EAAkBq2V,MAEbnyS,EAAAA,GAAAA,oBAAmB9jD,GAAAA,OACfm3V,GAAiB,EAAGt0V,OAAO7C,IAAAA,IAK9BugW,EAAmB,kBAAaD,EAAqBtgW,EAAKJ,EAAS65B,GAAAA,WAAAA,EAAAA,aAAAA,OAGzE8mU,EAAiBn9U,WAAa,YAAA8V,OAC5BmnU,EAAqBC,EAAsBtgW,EAAAA,GAAAA,GAAUJ,EAAAA,GAAYs5B,KAGnEqnU,EAAiB/3R,MAAQ,YAAAA,OACvB63R,EAAqBC,EAAsBtgW,EAAAA,GAAAA,GACtCJ,EAAAA,CACH4oE,MAAO9+D,MAAMxI,UAAUuJ,OAAO7K,EAAQ4oE,MAAOA,GAAOhnD,OAAOmzB,aAGxD4rT,EDzBOvgW,CAAqCwgW,GAAiBxgW,IDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,WACA,SCnIUqB,SAAQ,YAClB6f,GAAO64H,GAAc74H,GAAO64H,OELT0mN,WAAAA,SAAAA,EAO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","sources":["../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/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/serialize/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/ArrowBackIos.js","../node_modules/@mui/icons-material/ArrowForwardIos.js","../node_modules/@mui/icons-material/ChevronLeft.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/KeyboardArrowDown.js","../node_modules/@mui/icons-material/KeyboardArrowLeft.js","../node_modules/@mui/icons-material/KeyboardArrowRight.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/material/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@mui/material/node_modules/react-is/index.js","../node_modules/@mui/material/styles/createMixins.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/defaultTheme.js","../node_modules/@mui/material/styles/identifier.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/utils/esm/resolveProps.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.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/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/material/utils/createChainedFunction.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/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory.js","../node_modules/@mui/material/utils/setRef.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/index.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/utils/esm/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.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/styled-engine/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/createSpacing.js","../node_modules/@mui/system/esm/createTheme/createTheme.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/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/capitalize.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/createChainedFunction.js","../node_modules/@mui/utils/esm/debounce.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/@mui/utils/esm/ownerDocument.js","../node_modules/@mui/utils/esm/ownerWindow.js","../node_modules/@mui/utils/esm/setRef.js","../node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef.js","../node_modules/@mui/utils/esm/useId.js","../node_modules/can-use-dom/index.js","../node_modules/classnames/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/startOfISOWeek/index.js","../node_modules/date-fns/esm/getISOWeekYear/index.js","../node_modules/date-fns/esm/startOfISOWeekYear/index.js","../node_modules/date-fns/esm/getISOWeek/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/subHours/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/subMinutes/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subYears/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/decode-uri-component/index.js","../node_modules/filter-obj/index.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/invariant/browser.js","../node_modules/isarray/index.js","../node_modules/mixpanel-browser/dist/mixpanel.cjs.js","../node_modules/object-assign/index.js","../node_modules/path-to-regexp/index.js","../node_modules/performance-now/lib/performance-now.js","../node_modules/platform/platform.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/query-string/index.js","../node_modules/raf/index.js","../node_modules/raf/node_modules/performance-now/src/performance-now.coffee","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-fast-marquee/src/components/Marquee.tsx","../node_modules/react-google-login/dist/google-login.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-motion/lib/TransitionMotion.js","../node_modules/react-motion/lib/mapToZero.js","../node_modules/react-motion/lib/mergeDiff.js","../node_modules/react-motion/lib/presets.js","../node_modules/react-motion/lib/shouldStopAnimation.js","../node_modules/react-motion/lib/spring.js","../node_modules/react-motion/lib/stepper.js","../node_modules/react-motion/lib/stripStyle.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-popper/lib/esm/utils.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/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.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/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.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/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.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/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-popper/lib/esm/Reference.js","../node_modules/react-reveal/Fade.js","../node_modules/react-reveal/RevealBase.js","../node_modules/react-reveal/globals.js","../node_modules/react-reveal/wrap.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react-spinners-css/node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react-spinners-css/node_modules/react/cjs/react.production.min.js","../node_modules/react-spinners-css/node_modules/react/index.js","../node_modules/react-spinners-css/node_modules/react/jsx-runtime.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/shallowequal/index.js","../node_modules/split-on-first/index.js","../node_modules/strict-uri-encode/index.js","../node_modules/sweetalert2-react-content/src/mounts.js","../node_modules/sweetalert2-react-content/src/index.js","../node_modules/sweetalert2/dist/sweetalert2.all.js","../node_modules/warning/warning.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/construct.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/get.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/history/esm/history.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/modules/createNameContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","utils/Images.js","components/sections/Loading_Page.js","../node_modules/jwt-decode/lib/atob.js","../node_modules/jwt-decode/lib/index.js","../node_modules/jwt-decode/lib/base64_url_decode.js","User_Data.js","utils/Sanitize_Query_Params.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","utils/User_Events_Util.js","utils/RedirectWithLang.js","utils/Redirects.js","ApiFacade.js","utils/Content.js","utils/Consent.js","utils/Platform.js","Backend.js","components/one_two_treat_area/One_Two_Treat_Icon.js","components/one_two_treat_area/Animated_Notification.js","utils/Formatting.js","utils/JWT_Utils.js","context/Offer_Popup_Context.js","utils/Offer_Events.js","utils/Link_Creator.js","utils/Joining.js","components/offers/Offer_Difficulty_Indicator.js","components/offers/Expandable_Hashtags.js","components/offers/Offer_Theme_Indicator.js","components/offers/Featured_Offer.js","components/buttons/Approve_Button.js","components/offer_providers/Blur_Provider.js","utils/Offers.js","utils/Sharing.js","components/one_two_treat_area/user_stats/Benefits_List.js","components/one_two_treat_area/User_Stats.js","components/one_two_treat_area/Tabs.js","components/offers/Daily_Earning_List.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/ssr-window/ssr-window.esm.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/dom7/dom7.esm.js","../node_modules/swiper/shared/dom.js","../node_modules/swiper/shared/get-support.js","../node_modules/swiper/shared/get-device.js","../node_modules/swiper/shared/get-browser.js","../node_modules/swiper/shared/utils.js","../node_modules/swiper/core/events-emitter.js","../node_modules/swiper/core/update/index.js","../node_modules/swiper/core/update/updateSize.js","../node_modules/swiper/core/update/updateSlides.js","../node_modules/swiper/core/update/updateAutoHeight.js","../node_modules/swiper/core/update/updateSlidesOffset.js","../node_modules/swiper/core/update/updateSlidesProgress.js","../node_modules/swiper/core/update/updateProgress.js","../node_modules/swiper/core/update/updateSlidesClasses.js","../node_modules/swiper/core/update/updateActiveIndex.js","../node_modules/swiper/core/update/updateClickedSlide.js","../node_modules/swiper/core/translate/index.js","../node_modules/swiper/core/translate/getTranslate.js","../node_modules/swiper/core/translate/setTranslate.js","../node_modules/swiper/core/translate/minTranslate.js","../node_modules/swiper/core/translate/maxTranslate.js","../node_modules/swiper/core/translate/translateTo.js","../node_modules/swiper/core/transition/transitionEmit.js","../node_modules/swiper/core/transition/index.js","../node_modules/swiper/core/transition/setTransition.js","../node_modules/swiper/core/transition/transitionStart.js","../node_modules/swiper/core/transition/transitionEnd.js","../node_modules/swiper/core/slide/index.js","../node_modules/swiper/core/slide/slideTo.js","../node_modules/swiper/core/slide/slideToLoop.js","../node_modules/swiper/core/slide/slideNext.js","../node_modules/swiper/core/slide/slidePrev.js","../node_modules/swiper/core/slide/slideReset.js","../node_modules/swiper/core/slide/slideToClosest.js","../node_modules/swiper/core/slide/slideToClickedSlide.js","../node_modules/swiper/core/loop/index.js","../node_modules/swiper/core/loop/loopCreate.js","../node_modules/swiper/core/loop/loopFix.js","../node_modules/swiper/core/loop/loopDestroy.js","../node_modules/swiper/core/events/onTouchStart.js","../node_modules/swiper/core/events/onTouchMove.js","../node_modules/swiper/core/events/onTouchEnd.js","../node_modules/swiper/core/events/onResize.js","../node_modules/swiper/core/events/onClick.js","../node_modules/swiper/core/events/onScroll.js","../node_modules/swiper/core/events/index.js","../node_modules/swiper/core/breakpoints/setBreakpoint.js","../node_modules/swiper/core/breakpoints/index.js","../node_modules/swiper/core/breakpoints/getBreakpoint.js","../node_modules/swiper/core/classes/index.js","../node_modules/swiper/core/classes/addClasses.js","../node_modules/swiper/core/classes/removeClasses.js","../node_modules/swiper/core/images/index.js","../node_modules/swiper/core/images/loadImage.js","../node_modules/swiper/core/images/preloadImages.js","../node_modules/swiper/core/check-overflow/index.js","../node_modules/swiper/core/defaults.js","../node_modules/swiper/core/moduleExtendParams.js","../node_modules/swiper/core/core.js","../node_modules/swiper/core/grab-cursor/index.js","../node_modules/swiper/core/grab-cursor/setGrabCursor.js","../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","../node_modules/swiper/core/modules/resize/resize.js","../node_modules/swiper/core/modules/observer/observer.js","../node_modules/swiper/components-shared/utils.js","../node_modules/swiper/components-shared/params-list.js","../node_modules/swiper/shared/calc-looped-slides.js","../node_modules/swiper/react/get-children.js","../node_modules/swiper/components-shared/update-swiper.js","../node_modules/swiper/react/use-isomorphic-layout-effect.js","../node_modules/swiper/react/context.js","../node_modules/swiper/react/swiper.js","../node_modules/swiper/components-shared/get-params.js","../node_modules/swiper/components-shared/mount-swiper.js","../node_modules/swiper/components-shared/get-changed-params.js","../node_modules/swiper/components-shared/update-on-virtual-data.js","../node_modules/swiper/react/virtual.js","../node_modules/swiper/react/loop.js","../node_modules/swiper/react/swiper-slide.js","components/one_two_treat_area/user_stats/Daily_Earning_Plan_Hint.js","components/offers/Daily_Earning_Plan.js","utils/hooks/useTimer.js","components/offers/Hot_Offer.js","components/one_two_treat_area/One_Two_Treat_Alert.js","components/one_two_treat_area/survey/Survey.js","components/one_two_treat_area/Surveys.js","components/one_two_treat_area/One_Two_Treat_Selection.js","context/Global_Spinner.js","../node_modules/react-router-transition/lib/index.js","components/graphics/Content_Page_Logo.js","utils/Logout.js","components/buttons/Login_Logout_Button.js","components/widgets/Logged_In_Heading.js","../node_modules/@babel/runtime/helpers/esm/readOnlyError.js","components/buttons/Header_Login_Button.js","components/sections/Content_Page_Header.js","components/seo/Organization.js","components/seo/Breadcrumb.js","components/text/About_Text.js","../node_modules/react-helmet-async/src/constants.js","../node_modules/react-helmet-async/src/utils.js","../node_modules/react-helmet-async/src/server.js","../node_modules/react-helmet-async/src/HelmetData.js","../node_modules/react-helmet-async/src/Provider.js","../node_modules/react-helmet-async/src/client.js","../node_modules/react-helmet-async/src/Dispatcher.js","../node_modules/react-helmet-async/src/index.js","components/seo/Meta_Tags.js","components/offers/Offer_Completion_Disclaimer.js","components/sections/Footer.js","../node_modules/@mui/material/FormGroup/formGroupClasses.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormGroup/FormGroup.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","../node_modules/@mui/material/FormControlLabel/FormControlLabel.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/internal/switchBaseClasses.js","../node_modules/@mui/material/internal/SwitchBase.js","../node_modules/@mui/material/Switch/switchClasses.js","../node_modules/@mui/material/Switch/Switch.js","../node_modules/@mui/base/Portal/Portal.js","../node_modules/@mui/utils/esm/getScrollbarSize.js","../node_modules/@mui/base/ModalUnstyled/ModalManager.js","../node_modules/@mui/base/FocusTrap/FocusTrap.js","../node_modules/@mui/base/ModalUnstyled/modalUnstyledClasses.js","../node_modules/@mui/base/utils/isHostComponent.js","../node_modules/@mui/base/utils/omitEventHandlers.js","../node_modules/@mui/base/utils/mergeSlotProps.js","../node_modules/@mui/base/utils/extractEventHandlers.js","../node_modules/@mui/base/utils/resolveComponentProps.js","../node_modules/@mui/base/utils/useSlotProps.js","../node_modules/@mui/base/utils/appendOwnerState.js","../node_modules/@mui/base/utils/ClassNameConfigurator.js","../node_modules/@mui/base/ModalUnstyled/ModalUnstyled.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/system/esm/createBox.js","components/offers/Offer_Details_Placeholder.js","components/forms/Subscription_Settings.js","../node_modules/@mui/material/Box/Box.js","components/modals/Info_Modal.js","webpages/About_Us.js","components/data/Account_Details.js","utils/Alerts.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","utils/Data_Validator.js","components/forms/Account_Security_Settings.js","components/forms/Account_Deletion.js","components/static/Password_Requirements.js","components/live_news/Live_News.js","components/live_news/News_Track.js","webpages/Account_Settings.js","webpages/Account_Suspended.js","components/data/Connect_To_Discord_Username.js","components/buttons/Connect_To_Discord_Button.js","webpages/Connect_To_Discord.js","components/text/Cookie_Text.js","webpages/Cookie_Policy.js","components/sections/Account_Access_Page_Header.js","components/widgets/Join/Signup_Input.js","utils/Email_Type.js","components/widgets/Join/Join.js","components/forms/Enable_Adult_Offers_Call.js","webpages/Email_Signup.js","webpages/Enable_Adult_Offers.js","../node_modules/react-faq-component/build/index.es.js","components/faq/FAQ_List.js","components/referrals/Refer_Homepage_Container.js","webpages/FAQ.js","components/buttons/Join_TreatCoin_Button.js","components/data/Username_Indicator.js","components/graphics/Homepage_Logo.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/Dialog.js","components/buttons/Offers_Page_Link_Button.js","components/prizes/Total_Rewards_Fund.js","components/buttons/Convert_Button.js","webpack://web-frontend/./node_modules/react-spinners-css/lib/esm/Spinner/style.module.css?a6ba","../../../../src/components/Spinner/index.tsx","../node_modules/react-auth-code-input/src/index.tsx","utils/Payments.js","components/payouts/Conversion_Calculator.js","components/prizes/Highscore.js","components/payment_methods/Add_Payment_Birth_Date_Picker.js","components/text/Convert_Text.js","utils/Competition_Interval.js","components/wrappers/Show_More.js","components/prizes/Current_Rewards.js","components/static/How_Does_It_Work_Section.js","components/widgets/Scroll_To_Top.js","components/offers/Incomplete_Offer.js","components/top_12_offers/Recommended_Offer_Details.js","components/static/Treat_Coins_Equals_Money_Section.js","components/offers/Hot_Offer_Homepage.js","components/buttons/Choose_Socials_Button.js","components/buttons/Link_Button.js","components/offers/Earn_Team_Popup.js","components/offers/Hot_Offer_Loader_Homepage.js","components/one_two_treat_area/User_Stats_Homepage.js","components/offers/Cashback_Offers_List.js","components/static/Brands_Container.js","components/offers/Completed_Layout.js","components/top_12_offers/Top_Offer_Homepage_Card.js","components/top_12_offers/Top_Offer_Homepage_List.js","components/offers/additional_offers/Additional_Offer_Card.js","components/offers/additional_offers/Additional_Offers_Container.js","components/buttons/Purple_Gradient_Button.js","components/modals/Cookie_Modal.js","components/buttons/Gain_Treat_Coins_By_Fun_Act_Button.js","components/static/Gain_Coins_By_Fun_Act.js","webpages/Homepage.js","components/buttons/Start_Now_Button.js","components/widgets/Top_Right_Close_Icon.js","utils/Survey.js","components/survey/Intro_Survey_Available_Call.js","components/static/Intro_Survey_Starting_Section.js","components/buttons/Back_To_The_Playground.js","components/checkboxes/Allow_Third_Party_Sharing_Checkbox.js","components/static/Intro_Survey_Finishing_Section.js","utils/Intro_Survey_Answers_Storage.js","components/static/Intro_Survey_Quiz_Layout.js","components/survey/Step_Progress.js","components/widgets/Progress_Bar.js","components/options/Quiz_Option.js","components/buttons/Back_Button.js","components/buttons/Next_Button.js","components/widgets/Slider.js","components/options/Select.js","../node_modules/country-flag-icons/source/react/3x2/index.js","components/options/Open_Screen_Select.js","components/options/Quiz_Option_With_Label.js","components/survey/Open_Screen.js","components/survey/Quiz.js","components/forms/Email_Login_Form.js","webpages/Intro_Survey.js","webpages/Intro_Survey_Finished.js","webpages/Leaderboards.js","components/login/Social_Login_Overlay.js","components/social/Login_Facebook.js","components/social/Login_Google.js","components/social/Login_Discord.js","webpages/Login.js","components/referrals/Stats_Tab.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/src/helpers/helpers.core.ts","../node_modules/chart.js/src/helpers/helpers.math.ts","../node_modules/chart.js/src/helpers/helpers.collection.ts","../node_modules/chart.js/src/helpers/helpers.extras.ts","../node_modules/chart.js/src/helpers/helpers.easing.ts","../node_modules/chart.js/src/helpers/helpers.color.ts","../node_modules/chart.js/src/core/core.animations.defaults.js","../node_modules/chart.js/src/helpers/helpers.intl.ts","../node_modules/chart.js/src/core/core.ticks.js","../node_modules/chart.js/src/core/core.defaults.js","../node_modules/chart.js/src/core/core.layouts.defaults.js","../node_modules/chart.js/src/core/core.scale.defaults.js","../node_modules/chart.js/src/helpers/helpers.canvas.js","../node_modules/chart.js/src/helpers/helpers.options.ts","../node_modules/chart.js/src/helpers/helpers.config.js","../node_modules/chart.js/src/helpers/helpers.curve.ts","../node_modules/chart.js/src/helpers/helpers.dom.ts","../node_modules/chart.js/src/helpers/helpers.interpolation.ts","../node_modules/chart.js/src/helpers/helpers.rtl.ts","../node_modules/chart.js/src/helpers/helpers.segment.js","../node_modules/chart.js/src/core/core.animator.js","../node_modules/chart.js/src/core/core.animation.js","../node_modules/chart.js/src/core/core.animations.js","../node_modules/chart.js/src/core/core.datasetController.js","../node_modules/chart.js/src/controllers/controller.bar.js","../node_modules/chart.js/src/controllers/controller.bubble.js","../node_modules/chart.js/src/controllers/controller.doughnut.js","../node_modules/chart.js/src/controllers/controller.line.js","../node_modules/chart.js/src/controllers/controller.polarArea.js","../node_modules/chart.js/src/controllers/controller.pie.js","../node_modules/chart.js/src/controllers/controller.radar.js","../node_modules/chart.js/src/controllers/controller.scatter.js","../node_modules/chart.js/src/core/core.adapters.ts","../node_modules/chart.js/src/core/core.interaction.js","../node_modules/chart.js/src/core/core.layouts.js","../node_modules/chart.js/src/platform/platform.base.js","../node_modules/chart.js/src/platform/platform.basic.js","../node_modules/chart.js/src/platform/platform.dom.js","../node_modules/chart.js/src/core/core.element.ts","../node_modules/chart.js/src/core/core.scale.autoskip.js","../node_modules/chart.js/src/core/core.scale.js","../node_modules/chart.js/src/core/core.typedRegistry.js","../node_modules/chart.js/src/core/core.registry.js","../node_modules/chart.js/src/core/core.plugins.js","../node_modules/chart.js/src/core/core.config.js","../node_modules/chart.js/src/core/core.controller.js","../node_modules/chart.js/src/platform/index.js","../node_modules/chart.js/src/elements/element.arc.ts","../node_modules/chart.js/src/elements/element.line.js","../node_modules/chart.js/src/elements/element.point.ts","../node_modules/chart.js/src/elements/element.bar.js","../node_modules/chart.js/src/plugins/plugin.filler/index.js","../node_modules/chart.js/src/plugins/plugin.legend.js","../node_modules/chart.js/src/plugins/plugin.title.js","../node_modules/chart.js/src/plugins/plugin.tooltip.js","../node_modules/chart.js/src/plugins/plugin.subtitle.js","../node_modules/chart.js/src/scales/scale.category.js","../node_modules/chart.js/src/scales/scale.linearbase.js","../node_modules/chart.js/src/scales/scale.linear.js","../node_modules/chart.js/src/scales/scale.logarithmic.js","../node_modules/chart.js/src/scales/scale.radialLinear.js","../node_modules/chart.js/src/scales/scale.time.js","../node_modules/chart.js/src/scales/scale.timeseries.js","../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx","components/widgets/Graph_Slider.js","components/referrals/Referral_Select.js","webpages/My_Team_Referrals.js","components/earnings/Coin_Earnings_List.js","components/payouts/Coin_Payouts_List.js","components/forms/Email_Subscription_Settings.js","utils/Earnings.js","components/earnings/Coin_Earning.js","components/payouts/Coin_Payout.js","webpages/My_Treat_Coin_Earnings.js","utils/Payouts.js","webpages/My_Treat_Coin_Payouts.js","webpages/Notification_Settings.js","components/buttons/See_Offers_Button.js","../node_modules/react-indiana-drag-scroll/node_modules/tslib/tslib.es6.js","../node_modules/react-indiana-drag-scroll/node_modules/classnames/index.js","../node_modules/react-indiana-drag-scroll/node_modules/debounce/index.js","../node_modules/react-indiana-drag-scroll/node_modules/style-inject/dist/style-inject.es.js","../node_modules/react-indiana-drag-scroll/src/index.tsx","../node_modules/react-indiana-drag-scroll/node_modules/easy-bem/index.js","components/offers/Incomplete_Offers_List.js","components/offers/Completed_Offers_List.js","components/offers/Completed_Offer.js","components/offers/X2_Offer_Playground.js","components/data/Playground_Dynamic_Title.js","webpages/Playground.js","components/text/Privacy_Text.js","webpages/Privacy_Policy.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","components/forms/Start_Your_Journey_Form.js","../node_modules/@mui/material/Checkbox/Checkbox.js","webpages/Start_Your_Journey.js","components/text/Terms_Text.js","webpages/Terms_Of_Use.js","components/offers/Offer_Report_Status.js","components/top_12_offers/Top_12_Offer_Page_Card.js","webpages/Top_12_Offers.js","components/payment_methods/Payment_Methods_List.js","components/payouts/Withdrawal_Method_Selector.js","components/payouts/Withdrawal_Calculator.js","webpages/Cashout.js","components/buttons/Menu_Join_Button.js","components/referrals/Refer_Menu_Button.js","utils/Referring.js","components/text/TreatCoins_Mission_Text.js","webpages/TreatCoins_Mission.js","components/payouts/Use_Treat_Coins_Withdrawal.js","../node_modules/react-router/modules/withRouter.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/Divider/dividerClasses.js","../node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../node_modules/@mui/material/MenuItem/menuItemClasses.js","../node_modules/@mui/material/MenuItem/MenuItem.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/Select/Select.js","components/selects/Language_Select.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/styled-components/src/utils/interleave.js","../node_modules/styled-components/src/utils/isPlainObject.js","../node_modules/styled-components/src/utils/empties.js","../node_modules/styled-components/src/utils/isFunction.js","../node_modules/styled-components/src/utils/getComponentName.js","../node_modules/styled-components/src/utils/isStyledComponent.js","../node_modules/styled-components/src/constants.js","../node_modules/styled-components/src/utils/error.js","../node_modules/styled-components/src/sheet/GroupedTag.js","../node_modules/styled-components/src/sheet/GroupIDAllocator.js","../node_modules/styled-components/src/sheet/Rehydration.js","../node_modules/styled-components/src/utils/nonce.js","../node_modules/styled-components/src/sheet/dom.js","../node_modules/styled-components/src/sheet/Tag.js","../node_modules/styled-components/src/sheet/Sheet.js","../node_modules/styled-components/src/utils/generateAlphabeticName.js","../node_modules/styled-components/src/utils/hash.js","../node_modules/styled-components/src/utils/isStaticRules.js","../node_modules/styled-components/src/models/ComponentStyle.js","../node_modules/styled-components/src/utils/stylis.js","../node_modules/styled-components/src/utils/stylisPluginInsertRule.js","../node_modules/styled-components/src/models/StyleSheetManager.js","../node_modules/styled-components/src/models/Keyframes.js","../node_modules/styled-components/src/utils/hyphenateStyleName.js","../node_modules/styled-components/src/utils/flatten.js","../node_modules/styled-components/src/utils/isStatelessFunction.js","../node_modules/styled-components/src/utils/addUnitIfNeeded.js","../node_modules/styled-components/src/constructors/css.js","../node_modules/styled-components/src/utils/checkDynamicCreation.js","../node_modules/styled-components/src/utils/determineTheme.js","../node_modules/styled-components/src/utils/escape.js","../node_modules/styled-components/src/utils/generateComponentId.js","../node_modules/styled-components/src/utils/isTag.js","../node_modules/styled-components/src/utils/mixinDeep.js","../node_modules/styled-components/src/models/ThemeProvider.js","../node_modules/styled-components/src/models/StyledComponent.js","../node_modules/styled-components/src/utils/generateDisplayName.js","../node_modules/styled-components/src/utils/joinStrings.js","../node_modules/styled-components/src/utils/domElements.js","../node_modules/styled-components/src/constructors/styled.js","../node_modules/styled-components/src/constructors/constructWithOptions.js","../node_modules/styled-components/src/models/GlobalStyle.js","../node_modules/styled-components/src/models/ServerStyleSheet.js","../node_modules/styled-components/src/constructors/keyframes.js","components/widgets/Menu_Drawer.js","../node_modules/styled-components/src/base.js","utils/Notifications_Fetcher.js","context/Menu_Context.js","utils/Get_Pathname.js","utils/Image_Path_Generator.js","components/widgets/Bottom_Menu.js","components/checkboxes/Offers_Clicked_Checkbox.js","../node_modules/consolidated-events/lib/index.esm.js","../node_modules/react-waypoint/es/index.js","webpages/Offers_Clicked.js","components/offers/popup/Offer_Share_Button.js","components/offers/popup/Report_Form_Error.js","components/offers/popup/Report_Input.js","utils/Check_False_Values.js","components/buttons/Back_Bordered_Button.js","components/offers/popup/Report_Form.js","utils/IsOverflow.js","utils/Check_Time_Diff.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.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/isObjectLike.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/tslib/tslib.es6.js","../node_modules/simplebar-core/packages/simplebar-core/src/scrollbar-width.ts","../node_modules/simplebar-core/packages/simplebar-core/src/helpers.ts","../node_modules/simplebar-core/packages/simplebar-core/src/index.ts","../node_modules/simplebar-react/dist/index.mjs","components/offers/popup/Video_Guide.js","components/offers/popup/Offer_Popup.js","utils/SubCategoriesGenerator.js","Main.js","components/offers/IFrame_CPX.js","../node_modules/@moengage/web-sdk/dist/index.js","utils/Moengage.js","App.js","index.js"],"sourcesContent":["/*\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'\n","import {IMPORT, 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 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:\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 m s\n\t\t\t\t\t\t\t\t\tcase 100: 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 default createCache;\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","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 default isPropValid;\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 default memoize;\n","import { createContext, useContext, forwardRef, createElement, Fragment } 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 hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */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\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return 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 = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/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 = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/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 var rules = 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, 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__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\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 default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 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 default unitlessKeys;\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","import * as React from 'react';\nimport { useLayoutEffect } 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 || useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\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 var maybeStyles = 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","\"use strict\";\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 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\nexports.default = _default;","\"use strict\";\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: \"M11.67 3.87 9.9 2.1 0 12l9.9 9.9 1.77-1.77L3.54 12z\"\n}), 'ArrowBackIos');\nexports.default = _default;","\"use strict\";\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: \"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z\"\n}), 'ArrowForwardIos');\nexports.default = _default;","\"use strict\";\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: \"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\"\n}), 'ChevronLeft');\nexports.default = _default;","\"use strict\";\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\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: \"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"\n}), 'KeyboardArrowDown');\nexports.default = _default;","\"use strict\";\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: \"M15.41 16.59 10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'KeyboardArrowLeft');\nexports.default = _default;","\"use strict\";\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: \"M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'KeyboardArrowRight');\nexports.default = _default;","\"use strict\";\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\");","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","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}","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 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 (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 createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","export default '$$material';","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 } 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 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 const variantsStyles = {};\n variants.forEach(definition => {\n const key = propsToClassKey(definition.props);\n variantsStyles[key] = definition.style;\n });\n return variantsStyles;\n};\nconst variantsResolver = (props, styles, theme, name) => {\n var _theme$components, _theme$components$nam;\n const {\n ownerState = {}\n } = props;\n const variantsStyles = [];\n const themeVariants = theme == null ? void 0 : (_theme$components = theme.components) == null ? void 0 : (_theme$components$nam = _theme$components[name]) == null ? void 0 : _theme$components$nam.variants;\n if (themeVariants) {\n themeVariants.forEach(themeVariant => {\n let isMatch = true;\n Object.keys(themeVariant.props).forEach(key => {\n if (ownerState[key] !== themeVariant.props[key] && props[key] !== themeVariant.props[key]) {\n isMatch = false;\n }\n });\n if (isMatch) {\n variantsStyles.push(styles[propsToClassKey(themeVariant.props)]);\n }\n });\n }\n return variantsStyles;\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 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}\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 overridesResolver\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 : componentSlot && componentSlot !== 'Root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n if (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 return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? props => {\n return stylesArg(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n } : stylesArg;\n }) : [];\n let transformedStyleArg = styleArg;\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 variantsResolver(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 } 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 => styleArg(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${componentSlot || ''}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n Component.displayName = displayName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import { 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;","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}","import { 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}","import 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_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;","import _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';\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$transitions2$d, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette$ownerState$c2, _palette2, _palette2$action, _palette3, _palette3$action;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null ? void 0 : (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null ? void 0 : (_theme$transitions2$d = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2$d.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null ? void 0 : (_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 ? void 0 : (_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 ? void 0 : (_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 ? void 0 : (_palette$ownerState$c2 = _palette[ownerState.color]) == null ? void 0 : _palette$ownerState$c2.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null ? void 0 : (_palette2$action = _palette2.action) == null ? void 0 : _palette2$action.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null ? void 0 : (_palette3$action = _palette3.action) == null ? void 0 : _palette3$action.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 ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox\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, {\n ownerState: ownerState,\n 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/#adding-new-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;","import _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;","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","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 return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\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}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","import { 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}","import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/className';\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 { unstable_ownerDocument as ownerDocument } from '@mui/utils';\nexport default ownerDocument;","import { unstable_ownerWindow as ownerWindow } from '@mui/utils';\nexport default ownerWindow;","import { unstable_useControlled as useControlled } from '@mui/utils';\nexport default useControlled;","/* 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}","import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nexport default useEnhancedEffect;","import { unstable_useEventCallback as useEventCallback } from '@mui/utils';\nexport default useEventCallback;","import { unstable_useForkRef as useForkRef } from '@mui/utils';\nexport default useForkRef;","// 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}","import { unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nexport default useIsFocusVisible;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement, Fragment } 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 var rules = 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 = 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__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/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 default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\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 default newStyled;\n","/**\n * @mui/styled-engine v5.12.0\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/* 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\";\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/**\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 { createUnarySpacing } from '../spacing';\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 _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 { 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$theme$breakpoi, _props$theme$breakpoi2;\n const breakpoint = ((_props$theme = props.theme) == null ? void 0 : (_props$theme$breakpoi = _props$theme.breakpoints) == null ? void 0 : (_props$theme$breakpoi2 = _props$theme$breakpoi.values) == null ? void 0 : _props$theme$breakpoi2[propValue]) || breakpointsValues[propValue];\n return {\n maxWidth: breakpoint || sizingTransform(propValue)\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 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;","import * 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;","import createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","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 // `Objet.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}","/**\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}","// 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 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 _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';\nconst globalStateClassesMapping = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n readOnly: 'readOnly',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\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}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\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 * as React from 'react';\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","import * as React from 'react';\nimport useEnhancedEffect from './useEnhancedEffect';\n\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n */\nexport default function useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((...args) =>\n // @ts-expect-error hide `this`\n // tslint:disable-next-line:ban-comma-operator\n (0, ref.current)(...args), []);\n}","import * 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}","import * 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// eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId' + ''];\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}","var canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nmodule.exports = canUseDOM;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","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 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\n\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\n\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek(dirtyDateLeft, options);\n var startOfWeekRight = startOfWeek(dirtyDateRight, options);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\n\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\n\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\n\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\n\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\n\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\n\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\n\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import startOfQuarter from \"../startOfQuarter/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\n\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n return time >= startTime && time <= endTime;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\n\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\n\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n\n return target;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n\n _defineProperty(this, \"subPriority\", 0);\n }\n\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n\n var _super = _createSuper(ValueSetter);\n\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n\n _classCallCheck(this, ValueSetter);\n\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n\n return _this;\n }\n\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n\n function DateToSystemTimezoneSetter() {\n var _this2;\n\n _classCallCheck(this, DateToSystemTimezoneSetter);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n\n return _this2;\n }\n\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n\n return DateToSystemTimezoneSetter;\n}(Setter);","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n }\n\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n\n return Parser;\n}();","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n\n var _super = _createSuper(EraParser);\n\n function EraParser() {\n var _this;\n\n _classCallCheck(this, EraParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n\n return _this;\n }\n\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n\n var _super = _createSuper(YearParser);\n\n function YearParser() {\n var _this;\n\n _classCallCheck(this, YearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return YearParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n\n var _super = _createSuper(LocalWeekYearParser);\n\n function LocalWeekYearParser() {\n var _this;\n\n _classCallCheck(this, LocalWeekYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n\n return LocalWeekYearParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\n\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n\n var _super = _createSuper(ISOWeekYearParser);\n\n function ISOWeekYearParser() {\n var _this;\n\n _classCallCheck(this, ISOWeekYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n\n return ISOWeekYearParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n\n var _super = _createSuper(ExtendedYearParser);\n\n function ExtendedYearParser() {\n var _this;\n\n _classCallCheck(this, ExtendedYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return ExtendedYearParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n\n var _super = _createSuper(QuarterParser);\n\n function QuarterParser() {\n var _this;\n\n _classCallCheck(this, QuarterParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return QuarterParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n\n var _super = _createSuper(StandAloneQuarterParser);\n\n function StandAloneQuarterParser() {\n var _this;\n\n _classCallCheck(this, StandAloneQuarterParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneQuarterParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n\n var _super = _createSuper(MonthParser);\n\n function MonthParser() {\n var _this;\n\n _classCallCheck(this, MonthParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n\n return _this;\n }\n\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return MonthParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n\n var _super = _createSuper(StandAloneMonthParser);\n\n function StandAloneMonthParser() {\n var _this;\n\n _classCallCheck(this, StandAloneMonthParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneMonthParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\n\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n\n var _super = _createSuper(LocalWeekParser);\n\n function LocalWeekParser() {\n var _this;\n\n _classCallCheck(this, LocalWeekParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\n\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n\n var _super = _createSuper(ISOWeekParser);\n\n function ISOWeekParser() {\n var _this;\n\n _classCallCheck(this, ISOWeekParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // Day of the month\n\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n\n var _super = _createSuper(DateParser);\n\n function DateParser() {\n var _this;\n\n _classCallCheck(this, DateParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DateParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n\n var _super = _createSuper(DayOfYearParser);\n\n function DayOfYearParser() {\n var _this;\n\n _classCallCheck(this, DayOfYearParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\n\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n\n var _super = _createSuper(DayParser);\n\n function DayParser() {\n var _this;\n\n _classCallCheck(this, DayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return DayParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\n\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n\n var _super = _createSuper(LocalDayParser);\n\n function LocalDayParser() {\n var _this;\n\n _classCallCheck(this, LocalDayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return LocalDayParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\n\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n\n var _super = _createSuper(StandAloneLocalDayParser);\n\n function StandAloneLocalDayParser() {\n var _this;\n\n _classCallCheck(this, StandAloneLocalDayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n\n return _this;\n }\n\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return StandAloneLocalDayParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\n\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n\n var _super = _createSuper(ISODayParser);\n\n function ISODayParser() {\n var _this;\n\n _classCallCheck(this, ISODayParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n\n return _this;\n }\n\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n\n var _super = _createSuper(AMPMParser);\n\n function AMPMParser() {\n var _this;\n\n _classCallCheck(this, AMPMParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return AMPMParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n\n var _super = _createSuper(AMPMMidnightParser);\n\n function AMPMMidnightParser() {\n var _this;\n\n _classCallCheck(this, AMPMMidnightParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return AMPMMidnightParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\n\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n\n var _super = _createSuper(DayPeriodParser);\n\n function DayPeriodParser() {\n var _this;\n\n _classCallCheck(this, DayPeriodParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n\n return _this;\n }\n\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n\n return DayPeriodParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n\n var _super = _createSuper(Hour1to12Parser);\n\n function Hour1to12Parser() {\n var _this;\n\n _classCallCheck(this, Hour1to12Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n }\n }]);\n\n return Hour1to12Parser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n\n var _super = _createSuper(Hour0to23Parser);\n\n function Hour0to23Parser() {\n var _this;\n\n _classCallCheck(this, Hour0to23Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n\n return Hour0to23Parser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n\n var _super = _createSuper(Hour0To11Parser);\n\n function Hour0To11Parser() {\n var _this;\n\n _classCallCheck(this, Hour0To11Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n }\n }]);\n\n return Hour0To11Parser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n\n var _super = _createSuper(Hour1To24Parser);\n\n function Hour1To24Parser() {\n var _this;\n\n _classCallCheck(this, Hour1To24Parser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n\n return _this;\n }\n\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n\n return Hour1To24Parser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n\n var _super = _createSuper(MinuteParser);\n\n function MinuteParser() {\n var _this;\n\n _classCallCheck(this, MinuteParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n\n return MinuteParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n\n var _super = _createSuper(SecondParser);\n\n function SecondParser() {\n var _this;\n\n _classCallCheck(this, SecondParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n\n return SecondParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n\n var _super = _createSuper(FractionOfSecondParser);\n\n function FractionOfSecondParser() {\n var _this;\n\n _classCallCheck(this, FractionOfSecondParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n\n return _this;\n }\n\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n\n return FractionOfSecondParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\n\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n\n var _super = _createSuper(ISOTimezoneWithZParser);\n\n function ISOTimezoneWithZParser() {\n var _this;\n\n _classCallCheck(this, ISOTimezoneWithZParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n\n return _this;\n }\n\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n }\n }]);\n\n return ISOTimezoneWithZParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\n\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n\n var _super = _createSuper(ISOTimezoneParser);\n\n function ISOTimezoneParser() {\n var _this;\n\n _classCallCheck(this, ISOTimezoneParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n\n return _this;\n }\n\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n }\n }]);\n\n return ISOTimezoneParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n\n var _super = _createSuper(TimestampSecondsParser);\n\n function TimestampSecondsParser() {\n var _this;\n\n _classCallCheck(this, TimestampSecondsParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n\n return _this;\n }\n\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n\n return TimestampSecondsParser;\n}(Parser);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n\n var _super = _createSuper(TimestampMillisecondsParser);\n\n function TimestampMillisecondsParser() {\n var _this;\n\n _classCallCheck(this, TimestampMillisecondsParser);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n\n return _this;\n }\n\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\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); }\n\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; }\n\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n }; // If timezone isn't specified, it will be set to the system timezone\n\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n\n try {\n var _loop = function _loop() {\n var token = _step.value;\n\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n\n if (_typeof(_ret) === \"object\") return _ret.v;\n } // Check if the remaining input contains something other than whitespace\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, subFnOptions); // Result is tuple (date, flags)\n\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return utcDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\n\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\n\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n date.setFullYear(year);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import addHours from \"../addHours/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * const result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\n\nexport default function subHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addHours(dirtyDate, -amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import addMinutes from \"../addMinutes/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * const result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\n\nexport default function subMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMinutes(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addWeeks from \"../addWeeks/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\n\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\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","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nvar Config = {\n DEBUG: false,\n LIB_VERSION: '2.48.1'\n};\n\n// since es6 imports are static and we run unit tests from the console, window won't be defined when importing this file\nvar window$1;\nif (typeof(window) === 'undefined') {\n var loc = {\n hostname: ''\n };\n window$1 = {\n navigator: { userAgent: '' },\n document: {\n location: loc,\n referrer: ''\n },\n screen: { width: 0, height: 0 },\n location: loc\n };\n} else {\n window$1 = window;\n}\n\n/*\n * Saved references to long variable names, so that closure compiler can\n * minimize file size.\n */\n\nvar ArrayProto = Array.prototype;\nvar FuncProto = Function.prototype;\nvar ObjProto = Object.prototype;\nvar slice = ArrayProto.slice;\nvar toString = ObjProto.toString;\nvar hasOwnProperty = ObjProto.hasOwnProperty;\nvar windowConsole = window$1.console;\nvar navigator = window$1.navigator;\nvar document$1 = window$1.document;\nvar windowOpera = window$1.opera;\nvar screen = window$1.screen;\nvar userAgent = navigator.userAgent;\nvar nativeBind = FuncProto.bind;\nvar nativeForEach = ArrayProto.forEach;\nvar nativeIndexOf = ArrayProto.indexOf;\nvar nativeMap = ArrayProto.map;\nvar nativeIsArray = Array.isArray;\nvar breaker = {};\nvar _ = {\n trim: function(str) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n};\n\n// Console override\nvar console = {\n /** @type {function(...*)} */\n log: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n try {\n windowConsole.log.apply(windowConsole, arguments);\n } catch (err) {\n _.each(arguments, function(arg) {\n windowConsole.log(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n warn: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel warning:'].concat(_.toArray(arguments));\n try {\n windowConsole.warn.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.warn(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n error: function() {\n if (Config.DEBUG && !_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel error:'].concat(_.toArray(arguments));\n try {\n windowConsole.error.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.error(arg);\n });\n }\n }\n },\n /** @type {function(...*)} */\n critical: function() {\n if (!_.isUndefined(windowConsole) && windowConsole) {\n var args = ['Mixpanel error:'].concat(_.toArray(arguments));\n try {\n windowConsole.error.apply(windowConsole, args);\n } catch (err) {\n _.each(args, function(arg) {\n windowConsole.error(arg);\n });\n }\n }\n }\n};\n\nvar log_func_with_prefix = function(func, prefix) {\n return function() {\n arguments[0] = '[' + prefix + '] ' + arguments[0];\n return func.apply(console, arguments);\n };\n};\nvar console_with_prefix = function(prefix) {\n return {\n log: log_func_with_prefix(console.log, prefix),\n error: log_func_with_prefix(console.error, prefix),\n critical: log_func_with_prefix(console.critical, prefix)\n };\n};\n\n\n// UNDERSCORE\n// Embed part of the Underscore Library\n_.bind = function(func, context) {\n var args, bound;\n if (nativeBind && func.bind === nativeBind) {\n return nativeBind.apply(func, slice.call(arguments, 1));\n }\n if (!_.isFunction(func)) {\n throw new TypeError();\n }\n args = slice.call(arguments, 2);\n bound = function() {\n if (!(this instanceof bound)) {\n return func.apply(context, args.concat(slice.call(arguments)));\n }\n var ctor = {};\n ctor.prototype = func.prototype;\n var self = new ctor();\n ctor.prototype = null;\n var result = func.apply(self, args.concat(slice.call(arguments)));\n if (Object(result) === result) {\n return result;\n }\n return self;\n };\n return bound;\n};\n\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} context\n */\n_.each = function(obj, iterator, context) {\n if (obj === null || obj === undefined) {\n return;\n }\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, context);\n } else if (obj.length === +obj.length) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) {\n return;\n }\n }\n } else {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(context, obj[key], key, obj) === breaker) {\n return;\n }\n }\n }\n }\n};\n\n_.extend = function(obj) {\n _.each(slice.call(arguments, 1), function(source) {\n for (var prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop];\n }\n }\n });\n return obj;\n};\n\n_.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n};\n\n// from a comment on http://dbj.org/dbj/?p=286\n// fails on only one very rare and deliberate custom object:\n// var bomb = { toString : undefined, valueOf: function(o) { return \"function BOMBA!\"; }};\n_.isFunction = function(f) {\n try {\n return /^\\s*\\bfunction\\b/.test(f);\n } catch (x) {\n return false;\n }\n};\n\n_.isArguments = function(obj) {\n return !!(obj && hasOwnProperty.call(obj, 'callee'));\n};\n\n_.toArray = function(iterable) {\n if (!iterable) {\n return [];\n }\n if (iterable.toArray) {\n return iterable.toArray();\n }\n if (_.isArray(iterable)) {\n return slice.call(iterable);\n }\n if (_.isArguments(iterable)) {\n return slice.call(iterable);\n }\n return _.values(iterable);\n};\n\n_.map = function(arr, callback, context) {\n if (nativeMap && arr.map === nativeMap) {\n return arr.map(callback, context);\n } else {\n var results = [];\n _.each(arr, function(item) {\n results.push(callback.call(context, item));\n });\n return results;\n }\n};\n\n_.keys = function(obj) {\n var results = [];\n if (obj === null) {\n return results;\n }\n _.each(obj, function(value, key) {\n results[results.length] = key;\n });\n return results;\n};\n\n_.values = function(obj) {\n var results = [];\n if (obj === null) {\n return results;\n }\n _.each(obj, function(value) {\n results[results.length] = value;\n });\n return results;\n};\n\n_.include = function(obj, target) {\n var found = false;\n if (obj === null) {\n return found;\n }\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1;\n }\n _.each(obj, function(value) {\n if (found || (found = (value === target))) {\n return breaker;\n }\n });\n return found;\n};\n\n_.includes = function(str, needle) {\n return str.indexOf(needle) !== -1;\n};\n\n// Underscore Addons\n_.inherit = function(subclass, superclass) {\n subclass.prototype = new superclass();\n subclass.prototype.constructor = subclass;\n subclass.superclass = superclass.prototype;\n return subclass;\n};\n\n_.isObject = function(obj) {\n return (obj === Object(obj) && !_.isArray(obj));\n};\n\n_.isEmptyObject = function(obj) {\n if (_.isObject(obj)) {\n for (var key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n\n_.isUndefined = function(obj) {\n return obj === void 0;\n};\n\n_.isString = function(obj) {\n return toString.call(obj) == '[object String]';\n};\n\n_.isDate = function(obj) {\n return toString.call(obj) == '[object Date]';\n};\n\n_.isNumber = function(obj) {\n return toString.call(obj) == '[object Number]';\n};\n\n_.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n};\n\n_.encodeDates = function(obj) {\n _.each(obj, function(v, k) {\n if (_.isDate(v)) {\n obj[k] = _.formatDate(v);\n } else if (_.isObject(v)) {\n obj[k] = _.encodeDates(v); // recurse\n }\n });\n return obj;\n};\n\n_.timestamp = function() {\n Date.now = Date.now || function() {\n return +new Date;\n };\n return Date.now();\n};\n\n_.formatDate = function(d) {\n // YYYY-MM-DDTHH:MM:SS in UTC\n function pad(n) {\n return n < 10 ? '0' + n : n;\n }\n return d.getUTCFullYear() + '-' +\n pad(d.getUTCMonth() + 1) + '-' +\n pad(d.getUTCDate()) + 'T' +\n pad(d.getUTCHours()) + ':' +\n pad(d.getUTCMinutes()) + ':' +\n pad(d.getUTCSeconds());\n};\n\n_.strip_empty_properties = function(p) {\n var ret = {};\n _.each(p, function(v, k) {\n if (_.isString(v) && v.length > 0) {\n ret[k] = v;\n }\n });\n return ret;\n};\n\n/*\n * this function returns a copy of object after truncating it. If\n * passed an Array or Object it will iterate through obj and\n * truncate all the values recursively.\n */\n_.truncate = function(obj, length) {\n var ret;\n\n if (typeof(obj) === 'string') {\n ret = obj.slice(0, length);\n } else if (_.isArray(obj)) {\n ret = [];\n _.each(obj, function(val) {\n ret.push(_.truncate(val, length));\n });\n } else if (_.isObject(obj)) {\n ret = {};\n _.each(obj, function(val, key) {\n ret[key] = _.truncate(val, length);\n });\n } else {\n ret = obj;\n }\n\n return ret;\n};\n\n_.JSONEncode = (function() {\n return function(mixed_val) {\n var value = mixed_val;\n var quote = function(string) {\n var escapable = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g; // eslint-disable-line no-control-regex\n var meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n };\n\n escapable.lastIndex = 0;\n return escapable.test(string) ?\n '\"' + string.replace(escapable, function(a) {\n var c = meta[a];\n return typeof c === 'string' ? c :\n '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' :\n '\"' + string + '\"';\n };\n\n var str = function(key, holder) {\n var gap = '';\n var indent = ' ';\n var i = 0; // The loop counter.\n var k = ''; // The member key.\n var v = ''; // The member value.\n var length = 0;\n var mind = gap;\n var partial = [];\n var value = holder[key];\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n // What happens next depends on the value's type.\n switch (typeof value) {\n case 'string':\n return quote(value);\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n\n return String(value);\n\n case 'object':\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null';\n }\n\n // Make an array to hold the partial results of stringifying this object value.\n gap += indent;\n partial = [];\n\n // Is the value an array?\n if (toString.apply(value) === '[object Array]') {\n // The value is an array. Stringify every element. Use null as a placeholder\n // for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n // Join all of the elements together, separated with commas, and wrap them in\n // brackets.\n v = partial.length === 0 ? '[]' :\n gap ? '[\\n' + gap +\n partial.join(',\\n' + gap) + '\\n' +\n mind + ']' :\n '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n // Iterate through all of the keys in the object.\n for (k in value) {\n if (hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n\n // Join all of the member texts together, separated with commas,\n // and wrap them in braces.\n v = partial.length === 0 ? '{}' :\n gap ? '{' + partial.join(',') + '' +\n mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n };\n\n // Make a fake root object containing our value under the key of ''.\n // Return the result of stringifying the value.\n return str('', {\n '': value\n });\n };\n})();\n\n/**\n * From https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js\n * Slightly modified to throw a real Error rather than a POJO\n */\n_.JSONDecode = (function() {\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n 'b': '\\b',\n 'f': '\\f',\n 'n': '\\n',\n 'r': '\\r',\n 't': '\\t'\n },\n text,\n error = function(m) {\n var e = new SyntaxError(m);\n e.at = at;\n e.text = text;\n throw e;\n },\n next = function(c) {\n // If a c parameter is provided, verify that it matches the current character.\n if (c && c !== ch) {\n error('Expected \\'' + c + '\\' instead of \\'' + ch + '\\'');\n }\n // Get the next character. When there are no more characters,\n // return the empty string.\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function() {\n // Parse a number value.\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n return number;\n }\n },\n\n string = function() {\n // Parse a string value.\n var hex,\n i,\n string = '',\n uffff;\n // When parsing for string values, we must look for \" and \\ characters.\n if (ch === '\"') {\n while (next()) {\n if (ch === '\"') {\n next();\n return string;\n }\n if (ch === '\\\\') {\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n } else {\n string += ch;\n }\n }\n }\n error('Bad string');\n },\n white = function() {\n // Skip whitespace.\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function() {\n // true, false, or null.\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error('Unexpected \"' + ch + '\"');\n },\n value, // Placeholder for the value function.\n array = function() {\n // Parse an array value.\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function() {\n // Parse an object value.\n var key,\n object = {};\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (Object.hasOwnProperty.call(object, key)) {\n error('Duplicate key \"' + key + '\"');\n }\n object[key] = value();\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function() {\n // Parse a JSON value. It could be an object, an array, a string,\n // a number, or a word.\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the\n // above functions and variables.\n return function(source) {\n var result;\n\n text = source;\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n return result;\n };\n})();\n\n_.base64Encode = function(data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n enc = '',\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data = _.utf8Encode(data);\n\n do { // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '==';\n break;\n case 2:\n enc = enc.slice(0, -1) + '=';\n break;\n }\n\n return enc;\n};\n\n_.utf8Encode = function(string) {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\n var utftext = '',\n start,\n end;\n var stringl = 0,\n n;\n\n start = end = 0;\n stringl = string.length;\n\n for (n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n);\n var enc = null;\n\n if (c1 < 128) {\n end++;\n } else if ((c1 > 127) && (c1 < 2048)) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end);\n }\n utftext += enc;\n start = end = n + 1;\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length);\n }\n\n return utftext;\n};\n\n_.UUID = (function() {\n\n // Time-based entropy\n var T = function() {\n var time = 1 * new Date(); // cross-browser version of Date.now()\n var ticks;\n if (window$1.performance && window$1.performance.now) {\n ticks = window$1.performance.now();\n } else {\n // fall back to busy loop\n ticks = 0;\n\n // this while loop figures how many browser ticks go by\n // before 1*new Date() returns a new number, ie the amount\n // of ticks that go by per millisecond\n while (time == 1 * new Date()) {\n ticks++;\n }\n }\n return time.toString(16) + Math.floor(ticks).toString(16);\n };\n\n // Math.Random entropy\n var R = function() {\n return Math.random().toString(16).replace('.', '');\n };\n\n // User agent entropy\n // This function takes the user agent string, and then xors\n // together each sequence of 8 bytes. This produces a final\n // sequence of 8 bytes which it returns as hex.\n var UA = function() {\n var ua = userAgent,\n i, ch, buffer = [],\n ret = 0;\n\n function xor(result, byte_array) {\n var j, tmp = 0;\n for (j = 0; j < byte_array.length; j++) {\n tmp |= (buffer[j] << j * 8);\n }\n return result ^ tmp;\n }\n\n for (i = 0; i < ua.length; i++) {\n ch = ua.charCodeAt(i);\n buffer.unshift(ch & 0xFF);\n if (buffer.length >= 4) {\n ret = xor(ret, buffer);\n buffer = [];\n }\n }\n\n if (buffer.length > 0) {\n ret = xor(ret, buffer);\n }\n\n return ret.toString(16);\n };\n\n return function() {\n var se = (screen.height * screen.width).toString(16);\n return (T() + '-' + R() + '-' + UA() + '-' + se + '-' + T());\n };\n})();\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false tracking data\nvar BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'chrome-lighthouse',\n 'facebookexternal',\n 'petalbot',\n 'pinterest',\n 'screaming frog',\n 'yahoo! slurp',\n 'yandexbot',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google'\n];\n_.isBlockedUA = function(ua) {\n var i;\n ua = ua.toLowerCase();\n for (i = 0; i < BLOCKED_UA_STRS.length; i++) {\n if (ua.indexOf(BLOCKED_UA_STRS[i]) !== -1) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * @param {Object=} formdata\n * @param {string=} arg_separator\n */\n_.HTTPBuildQuery = function(formdata, arg_separator) {\n var use_val, use_key, tmp_arr = [];\n\n if (_.isUndefined(arg_separator)) {\n arg_separator = '&';\n }\n\n _.each(formdata, function(val, key) {\n use_val = encodeURIComponent(val.toString());\n use_key = encodeURIComponent(key);\n tmp_arr[tmp_arr.length] = use_key + '=' + use_val;\n });\n\n return tmp_arr.join(arg_separator);\n};\n\n_.getQueryParam = function(url, param) {\n // Expects a raw URL\n\n param = param.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n var regexS = '[\\\\?&]' + param + '=([^&#]*)',\n regex = new RegExp(regexS),\n results = regex.exec(url);\n if (results === null || (results && typeof(results[1]) !== 'string' && results[1].length)) {\n return '';\n } else {\n var result = results[1];\n try {\n result = decodeURIComponent(result);\n } catch(err) {\n console.error('Skipping decoding for malformed query param: ' + result);\n }\n return result.replace(/\\+/g, ' ');\n }\n};\n\n\n// _.cookie\n// Methods partially borrowed from quirksmode.org/js/cookies.html\n_.cookie = {\n get: function(name) {\n var nameEQ = name + '=';\n var ca = document$1.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n }\n return null;\n },\n\n parse: function(name) {\n var cookie;\n try {\n cookie = _.JSONDecode(_.cookie.get(name)) || {};\n } catch (err) {\n // noop\n }\n return cookie;\n },\n\n set_seconds: function(name, value, seconds, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '',\n expires = '',\n secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (seconds) {\n var date = new Date();\n date.setTime(date.getTime() + (seconds * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n document$1.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n },\n\n set: function(name, value, days, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '', expires = '', secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n var new_cookie_val = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n document$1.cookie = new_cookie_val;\n return new_cookie_val;\n },\n\n remove: function(name, is_cross_subdomain, domain_override) {\n _.cookie.set(name, '', -1, is_cross_subdomain, false, false, domain_override);\n }\n};\n\nvar _localStorageSupported = null;\nvar localStorageSupported = function(storage, forceCheck) {\n if (_localStorageSupported !== null && !forceCheck) {\n return _localStorageSupported;\n }\n\n var supported = true;\n try {\n storage = storage || window.localStorage;\n var key = '__mplss_' + cheap_guid(8),\n val = 'xyz';\n storage.setItem(key, val);\n if (storage.getItem(key) !== val) {\n supported = false;\n }\n storage.removeItem(key);\n } catch (err) {\n supported = false;\n }\n\n _localStorageSupported = supported;\n return supported;\n};\n\n// _.localStorage\n_.localStorage = {\n is_supported: function(force_check) {\n var supported = localStorageSupported(null, force_check);\n if (!supported) {\n console.error('localStorage unsupported; falling back to cookie store');\n }\n return supported;\n },\n\n error: function(msg) {\n console.error('localStorage error: ' + msg);\n },\n\n get: function(name) {\n try {\n return window.localStorage.getItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n return null;\n },\n\n parse: function(name) {\n try {\n return _.JSONDecode(_.localStorage.get(name)) || {};\n } catch (err) {\n // noop\n }\n return null;\n },\n\n set: function(name, value) {\n try {\n window.localStorage.setItem(name, value);\n } catch (err) {\n _.localStorage.error(err);\n }\n },\n\n remove: function(name) {\n try {\n window.localStorage.removeItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n }\n};\n\n_.register_event = (function() {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from Mixpanel\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n var register_event = function(element, type, handler, oldSchool, useCapture) {\n if (!element) {\n console.error('No valid element provided to register_event');\n return;\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture);\n } else {\n var ontype = 'on' + type;\n var old_handler = element[ontype]; // can be undefined\n element[ontype] = makeHandler(element, handler, old_handler);\n }\n };\n\n function makeHandler(element, new_handler, old_handlers) {\n var handler = function(event) {\n event = event || fixEvent(window.event);\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined;\n }\n\n var ret = true;\n var old_result, new_result;\n\n if (_.isFunction(old_handlers)) {\n old_result = old_handlers(event);\n }\n new_result = new_handler.call(element, event);\n\n if ((false === old_result) || (false === new_result)) {\n ret = false;\n }\n\n return ret;\n };\n\n return handler;\n }\n\n function fixEvent(event) {\n if (event) {\n event.preventDefault = fixEvent.preventDefault;\n event.stopPropagation = fixEvent.stopPropagation;\n }\n return event;\n }\n fixEvent.preventDefault = function() {\n this.returnValue = false;\n };\n fixEvent.stopPropagation = function() {\n this.cancelBubble = true;\n };\n\n return register_event;\n})();\n\n\nvar TOKEN_MATCH_REGEX = new RegExp('^(\\\\w*)\\\\[(\\\\w+)([=~\\\\|\\\\^\\\\$\\\\*]?)=?\"?([^\\\\]\"]*)\"?\\\\]$');\n\n_.dom_query = (function() {\n /* document.getElementsBySelector(selector)\n - returns an array of element objects from the current document\n matching the CSS selector. Selectors can contain element names,\n class names and ids and can be nested. For example:\n\n elements = document.getElementsBySelector('div#main p a.external')\n\n Will return an array of all 'a' elements with 'external' in their\n class attribute that are contained inside 'p' elements that are\n contained inside the 'div' element which has id=\"main\"\n\n New in version 0.4: Support for CSS2 and CSS3 attribute selectors:\n See http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\n Version 0.4 - Simon Willison, March 25th 2003\n -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows\n -- Opera 7 fails\n\n Version 0.5 - Carl Sverre, Jan 7th 2013\n -- Now uses jQuery-esque `hasClass` for testing class name\n equality. This fixes a bug related to '-' characters being\n considered not part of a 'word' in regex.\n */\n\n function getAllChildren(e) {\n // Returns all children of element. Workaround required for IE5/Windows. Ugh.\n return e.all ? e.all : e.getElementsByTagName('*');\n }\n\n var bad_whitespace = /[\\t\\r\\n]/g;\n\n function hasClass(elem, selector) {\n var className = ' ' + selector + ' ';\n return ((' ' + elem.className + ' ').replace(bad_whitespace, ' ').indexOf(className) >= 0);\n }\n\n function getElementsBySelector(selector) {\n // Attempt to fail gracefully in lesser browsers\n if (!document$1.getElementsByTagName) {\n return [];\n }\n // Split selector in to tokens\n var tokens = selector.split(' ');\n var token, bits, tagName, found, foundCount, i, j, k, elements, currentContextIndex;\n var currentContext = [document$1];\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i].replace(/^\\s+/, '').replace(/\\s+$/, '');\n if (token.indexOf('#') > -1) {\n // Token is an ID selector\n bits = token.split('#');\n tagName = bits[0];\n var id = bits[1];\n var element = document$1.getElementById(id);\n if (!element || (tagName && element.nodeName.toLowerCase() != tagName)) {\n // element not found or tag with that ID not found, return false\n return [];\n }\n // Set currentContext to contain just this element\n currentContext = [element];\n continue; // Skip to next token\n }\n if (token.indexOf('.') > -1) {\n // Token contains a class selector\n bits = token.split('.');\n tagName = bits[0];\n var className = bits[1];\n if (!tagName) {\n tagName = '*';\n }\n // Get elements matching tag, filter them for class selector\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (found[j].className &&\n _.isString(found[j].className) && // some SVG elements have classNames which are not strings\n hasClass(found[j], className)\n ) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n continue; // Skip to next token\n }\n // Code to deal with attribute selectors\n var token_match = token.match(TOKEN_MATCH_REGEX);\n if (token_match) {\n tagName = token_match[1];\n var attrName = token_match[2];\n var attrOperator = token_match[3];\n var attrValue = token_match[4];\n if (!tagName) {\n tagName = '*';\n }\n // Grab all of the tagName elements within current context\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n var checkFunction; // This function will be used to filter the elements\n switch (attrOperator) {\n case '=': // Equality\n checkFunction = function(e) {\n return (e.getAttribute(attrName) == attrValue);\n };\n break;\n case '~': // Match one of space seperated words\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('\\\\b' + attrValue + '\\\\b')));\n };\n break;\n case '|': // Match start with value followed by optional hyphen\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('^' + attrValue + '-?')));\n };\n break;\n case '^': // Match starts with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) === 0);\n };\n break;\n case '$': // Match ends with value - fails with \"Warning\" in Opera 7\n checkFunction = function(e) {\n return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length);\n };\n break;\n case '*': // Match ends with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) > -1);\n };\n break;\n default:\n // Just test for existence of attribute\n checkFunction = function(e) {\n return e.getAttribute(attrName);\n };\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (checkFunction(found[j])) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue);\n continue; // Skip to next token\n }\n // If we get here, token is JUST an element (not a class or ID selector)\n tagName = token;\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n elements = currentContext[j].getElementsByTagName(tagName);\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = found;\n }\n return currentContext;\n }\n\n return function(query) {\n if (_.isElement(query)) {\n return [query];\n } else if (_.isObject(query) && !_.isUndefined(query.length)) {\n return query;\n } else {\n return getElementsBySelector.call(this, query);\n }\n };\n})();\n\nvar CAMPAIGN_KEYWORDS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];\nvar CLICK_IDS = ['dclid', 'fbclid', 'gclid', 'ko_click_id', 'li_fat_id', 'msclkid', 'ttclid', 'twclid', 'wbraid'];\n\n_.info = {\n campaignParams: function(default_value) {\n var kw = '',\n params = {};\n _.each(CAMPAIGN_KEYWORDS, function(kwkey) {\n kw = _.getQueryParam(document$1.URL, kwkey);\n if (kw.length) {\n params[kwkey] = kw;\n } else if (default_value !== undefined) {\n params[kwkey] = default_value;\n }\n });\n\n return params;\n },\n\n clickParams: function() {\n var id = '',\n params = {};\n _.each(CLICK_IDS, function(idkey) {\n id = _.getQueryParam(document$1.URL, idkey);\n if (id.length) {\n params[idkey] = id;\n }\n });\n\n return params;\n },\n\n marketingParams: function() {\n return _.extend(_.info.campaignParams(), _.info.clickParams());\n },\n\n searchEngine: function(referrer) {\n if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google';\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing';\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo';\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo';\n } else {\n return null;\n }\n },\n\n searchInfo: function(referrer) {\n var search = _.info.searchEngine(referrer),\n param = (search != 'yahoo') ? 'q' : 'p',\n ret = {};\n\n if (search !== null) {\n ret['$search_engine'] = search;\n\n var keyword = _.getQueryParam(referrer, param);\n if (keyword.length) {\n ret['mp_keyword'] = keyword;\n }\n }\n\n return ret;\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include key words used in later checks.\n */\n browser: function(user_agent, vendor, opera) {\n vendor = vendor || ''; // vendor is undefined for at least IE9\n if (opera || _.includes(user_agent, ' OPR/')) {\n if (_.includes(user_agent, 'Mini')) {\n return 'Opera Mini';\n }\n return 'Opera';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (_.includes(user_agent, 'IEMobile') || _.includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile';\n } else if (_.includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet';\n } else if (_.includes(user_agent, 'Edge') || _.includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge';\n } else if (_.includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile';\n } else if (_.includes(user_agent, 'Chrome')) {\n return 'Chrome';\n } else if (_.includes(user_agent, 'CriOS')) {\n return 'Chrome iOS';\n } else if (_.includes(user_agent, 'UCWEB') || _.includes(user_agent, 'UCBrowser')) {\n return 'UC Browser';\n } else if (_.includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS';\n } else if (_.includes(vendor, 'Apple')) {\n if (_.includes(user_agent, 'Mobile')) {\n return 'Mobile Safari';\n }\n return 'Safari';\n } else if (_.includes(user_agent, 'Android')) {\n return 'Android Mobile';\n } else if (_.includes(user_agent, 'Konqueror')) {\n return 'Konqueror';\n } else if (_.includes(user_agent, 'Firefox')) {\n return 'Firefox';\n } else if (_.includes(user_agent, 'MSIE') || _.includes(user_agent, 'Trident/')) {\n return 'Internet Explorer';\n } else if (_.includes(user_agent, 'Gecko')) {\n return 'Mozilla';\n } else {\n return '';\n }\n },\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n */\n browserVersion: function(userAgent, vendor, opera) {\n var browser = _.info.browser(userAgent, vendor, opera);\n var versionRegexs = {\n 'Internet Explorer Mobile': /rv:(\\d+(\\.\\d+)?)/,\n 'Microsoft Edge': /Edge?\\/(\\d+(\\.\\d+)?)/,\n 'Chrome': /Chrome\\/(\\d+(\\.\\d+)?)/,\n 'Chrome iOS': /CriOS\\/(\\d+(\\.\\d+)?)/,\n 'UC Browser' : /(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/,\n 'Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Mobile Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Opera': /(Opera|OPR)\\/(\\d+(\\.\\d+)?)/,\n 'Firefox': /Firefox\\/(\\d+(\\.\\d+)?)/,\n 'Firefox iOS': /FxiOS\\/(\\d+(\\.\\d+)?)/,\n 'Konqueror': /Konqueror:(\\d+(\\.\\d+)?)/,\n 'BlackBerry': /BlackBerry (\\d+(\\.\\d+)?)/,\n 'Android Mobile': /android\\s(\\d+(\\.\\d+)?)/,\n 'Samsung Internet': /SamsungBrowser\\/(\\d+(\\.\\d+)?)/,\n 'Internet Explorer': /(rv:|MSIE )(\\d+(\\.\\d+)?)/,\n 'Mozilla': /rv:(\\d+(\\.\\d+)?)/\n };\n var regex = versionRegexs[browser];\n if (regex === undefined) {\n return null;\n }\n var matches = userAgent.match(regex);\n if (!matches) {\n return null;\n }\n return parseFloat(matches[matches.length - 2]);\n },\n\n os: function() {\n var a = userAgent;\n if (/Windows/i.test(a)) {\n if (/Phone/.test(a) || /WPDesktop/.test(a)) {\n return 'Windows Phone';\n }\n return 'Windows';\n } else if (/(iPhone|iPad|iPod)/.test(a)) {\n return 'iOS';\n } else if (/Android/.test(a)) {\n return 'Android';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(a)) {\n return 'BlackBerry';\n } else if (/Mac/i.test(a)) {\n return 'Mac OS X';\n } else if (/Linux/.test(a)) {\n return 'Linux';\n } else if (/CrOS/.test(a)) {\n return 'Chrome OS';\n } else {\n return '';\n }\n },\n\n device: function(user_agent) {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone';\n } else if (/iPad/.test(user_agent)) {\n return 'iPad';\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch';\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (/Android/.test(user_agent)) {\n return 'Android';\n } else {\n return '';\n }\n },\n\n referringDomain: function(referrer) {\n var split = referrer.split('/');\n if (split.length >= 3) {\n return split[2];\n }\n return '';\n },\n\n properties: function() {\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera),\n '$referrer': document$1.referrer,\n '$referring_domain': _.info.referringDomain(document$1.referrer),\n '$device': _.info.device(userAgent)\n }), {\n '$current_url': window$1.location.href,\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera),\n '$screen_height': screen.height,\n '$screen_width': screen.width,\n 'mp_lib': 'web',\n '$lib_version': Config.LIB_VERSION,\n '$insert_id': cheap_guid(),\n 'time': _.timestamp() / 1000 // epoch time in seconds\n });\n },\n\n people_properties: function() {\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera)\n }), {\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera)\n });\n },\n\n mpPageViewProperties: function() {\n return _.strip_empty_properties({\n 'current_page_title': document$1.title,\n 'current_domain': window$1.location.hostname,\n 'current_url_path': window$1.location.pathname,\n 'current_url_protocol': window$1.location.protocol,\n 'current_url_search': window$1.location.search\n });\n }\n};\n\nvar cheap_guid = function(maxlen) {\n var guid = Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10);\n return maxlen ? guid.substring(0, maxlen) : guid;\n};\n\n// naive way to extract domain name (example.com) from full hostname (my.sub.example.com)\nvar SIMPLE_DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]*\\.[a-z]+$/i;\n// this next one attempts to account for some ccSLDs, e.g. extracting oxford.ac.uk from www.oxford.ac.uk\nvar DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]+\\.[a-z.]{2,6}$/i;\n/**\n * Attempts to extract main domain name from full hostname, using a few blunt heuristics. For\n * common TLDs like .com/.org that always have a simple SLD.TLD structure (example.com), we\n * simply extract the last two .-separated parts of the hostname (SIMPLE_DOMAIN_MATCH_REGEX).\n * For others, we attempt to account for short ccSLD+TLD combos (.ac.uk) with the legacy\n * DOMAIN_MATCH_REGEX (kept to maintain backwards compatibility with existing Mixpanel\n * integrations). The only _reliable_ way to extract domain from hostname is with an up-to-date\n * list like at https://publicsuffix.org/ so for cases that this helper fails at, the SDK\n * offers the 'cookie_domain' config option to set it explicitly.\n * @example\n * extract_domain('my.sub.example.com')\n * // 'example.com'\n */\nvar extract_domain = function(hostname) {\n var domain_regex = DOMAIN_MATCH_REGEX;\n var parts = hostname.split('.');\n var tld = parts[parts.length - 1];\n if (tld.length > 4 || tld === 'com' || tld === 'org') {\n domain_regex = SIMPLE_DOMAIN_MATCH_REGEX;\n }\n var matches = hostname.match(domain_regex);\n return matches ? matches[0] : '';\n};\n\nvar JSONStringify = null;\nvar JSONParse = null;\nif (typeof JSON !== 'undefined') {\n JSONStringify = JSON.stringify;\n JSONParse = JSON.parse;\n}\nJSONStringify = JSONStringify || _.JSONEncode;\nJSONParse = JSONParse || _.JSONDecode;\n\n// EXPORTS (for closure compiler)\n_['toArray'] = _.toArray;\n_['isObject'] = _.isObject;\n_['JSONEncode'] = _.JSONEncode;\n_['JSONDecode'] = _.JSONDecode;\n_['isBlockedUA'] = _.isBlockedUA;\n_['isEmptyObject'] = _.isEmptyObject;\n_['info'] = _.info;\n_['info']['device'] = _.info.device;\n_['info']['browser'] = _.info.browser;\n_['info']['browserVersion'] = _.info.browserVersion;\n_['info']['properties'] = _.info.properties;\n\n/**\n * DomTracker Object\n * @constructor\n */\nvar DomTracker = function() {};\n\n\n// interface\nDomTracker.prototype.create_properties = function() {};\nDomTracker.prototype.event_handler = function() {};\nDomTracker.prototype.after_track_handler = function() {};\n\nDomTracker.prototype.init = function(mixpanel_instance) {\n this.mp = mixpanel_instance;\n return this;\n};\n\n/**\n * @param {Object|string} query\n * @param {string} event_name\n * @param {Object=} properties\n * @param {function=} user_callback\n */\nDomTracker.prototype.track = function(query, event_name, properties, user_callback) {\n var that = this;\n var elements = _.dom_query(query);\n\n if (elements.length === 0) {\n console.error('The DOM query (' + query + ') returned 0 elements');\n return;\n }\n\n _.each(elements, function(element) {\n _.register_event(element, this.override_event, function(e) {\n var options = {};\n var props = that.create_properties(properties, this);\n var timeout = that.mp.get_config('track_links_timeout');\n\n that.event_handler(e, this, options);\n\n // in case the mixpanel servers don't get back to us in time\n window.setTimeout(that.track_callback(user_callback, props, options, true), timeout);\n\n // fire the tracking event\n that.mp.track(event_name, props, that.track_callback(user_callback, props, options));\n });\n }, this);\n\n return true;\n};\n\n/**\n * @param {function} user_callback\n * @param {Object} props\n * @param {boolean=} timeout_occured\n */\nDomTracker.prototype.track_callback = function(user_callback, props, options, timeout_occured) {\n timeout_occured = timeout_occured || false;\n var that = this;\n\n return function() {\n // options is referenced from both callbacks, so we can have\n // a 'lock' of sorts to ensure only one fires\n if (options.callback_fired) { return; }\n options.callback_fired = true;\n\n if (user_callback && user_callback(timeout_occured, props) === false) {\n // user can prevent the default functionality by\n // returning false from their callback\n return;\n }\n\n that.after_track_handler(props, options, timeout_occured);\n };\n};\n\nDomTracker.prototype.create_properties = function(properties, element) {\n var props;\n\n if (typeof(properties) === 'function') {\n props = properties(element);\n } else {\n props = _.extend({}, properties);\n }\n\n return props;\n};\n\n/**\n * LinkTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar LinkTracker = function() {\n this.override_event = 'click';\n};\n_.inherit(LinkTracker, DomTracker);\n\nLinkTracker.prototype.create_properties = function(properties, element) {\n var props = LinkTracker.superclass.create_properties.apply(this, arguments);\n\n if (element.href) { props['url'] = element.href; }\n\n return props;\n};\n\nLinkTracker.prototype.event_handler = function(evt, element, options) {\n options.new_tab = (\n evt.which === 2 ||\n evt.metaKey ||\n evt.ctrlKey ||\n element.target === '_blank'\n );\n options.href = element.href;\n\n if (!options.new_tab) {\n evt.preventDefault();\n }\n};\n\nLinkTracker.prototype.after_track_handler = function(props, options) {\n if (options.new_tab) { return; }\n\n setTimeout(function() {\n window.location = options.href;\n }, 0);\n};\n\n/**\n * FormTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar FormTracker = function() {\n this.override_event = 'submit';\n};\n_.inherit(FormTracker, DomTracker);\n\nFormTracker.prototype.event_handler = function(evt, element, options) {\n options.element = element;\n evt.preventDefault();\n};\n\nFormTracker.prototype.after_track_handler = function(props, options) {\n setTimeout(function() {\n options.element.submit();\n }, 0);\n};\n\n// eslint-disable-line camelcase\n\nvar logger$2 = console_with_prefix('lock');\n\n/**\n * SharedLock: a mutex built on HTML5 localStorage, to ensure that only one browser\n * window/tab at a time will be able to access shared resources.\n *\n * Based on the Alur and Taubenfeld fast lock\n * (http://www.cs.rochester.edu/research/synchronization/pseudocode/fastlock.html)\n * with an added timeout to ensure there will be eventual progress in the event\n * that a window is closed in the middle of the callback.\n *\n * Implementation based on the original version by David Wolever (https://github.com/wolever)\n * at https://gist.github.com/wolever/5fd7573d1ef6166e8f8c4af286a69432.\n *\n * @example\n * const myLock = new SharedLock('some-key');\n * myLock.withLock(function() {\n * console.log('I hold the mutex!');\n * });\n *\n * @constructor\n */\nvar SharedLock = function(key, options) {\n options = options || {};\n\n this.storageKey = key;\n this.storage = options.storage || window.localStorage;\n this.pollIntervalMS = options.pollIntervalMS || 100;\n this.timeoutMS = options.timeoutMS || 2000;\n};\n\n// pass in a specific pid to test contention scenarios; otherwise\n// it is chosen randomly for each acquisition attempt\nSharedLock.prototype.withLock = function(lockedCB, errorCB, pid) {\n if (!pid && typeof errorCB !== 'function') {\n pid = errorCB;\n errorCB = null;\n }\n\n var i = pid || (new Date().getTime() + '|' + Math.random());\n var startTime = new Date().getTime();\n\n var key = this.storageKey;\n var pollIntervalMS = this.pollIntervalMS;\n var timeoutMS = this.timeoutMS;\n var storage = this.storage;\n\n var keyX = key + ':X';\n var keyY = key + ':Y';\n var keyZ = key + ':Z';\n\n var reportError = function(err) {\n errorCB && errorCB(err);\n };\n\n var delay = function(cb) {\n if (new Date().getTime() - startTime > timeoutMS) {\n logger$2.error('Timeout waiting for mutex on ' + key + '; clearing lock. [' + i + ']');\n storage.removeItem(keyZ);\n storage.removeItem(keyY);\n loop();\n return;\n }\n setTimeout(function() {\n try {\n cb();\n } catch(err) {\n reportError(err);\n }\n }, pollIntervalMS * (Math.random() + 0.1));\n };\n\n var waitFor = function(predicate, cb) {\n if (predicate()) {\n cb();\n } else {\n delay(function() {\n waitFor(predicate, cb);\n });\n }\n };\n\n var getSetY = function() {\n var valY = storage.getItem(keyY);\n if (valY && valY !== i) { // if Y == i then this process already has the lock (useful for test cases)\n return false;\n } else {\n storage.setItem(keyY, i);\n if (storage.getItem(keyY) === i) {\n return true;\n } else {\n if (!localStorageSupported(storage, true)) {\n throw new Error('localStorage support dropped while acquiring lock');\n }\n return false;\n }\n }\n };\n\n var loop = function() {\n storage.setItem(keyX, i);\n\n waitFor(getSetY, function() {\n if (storage.getItem(keyX) === i) {\n criticalSection();\n return;\n }\n\n delay(function() {\n if (storage.getItem(keyY) !== i) {\n loop();\n return;\n }\n waitFor(function() {\n return !storage.getItem(keyZ);\n }, criticalSection);\n });\n });\n };\n\n var criticalSection = function() {\n storage.setItem(keyZ, '1');\n try {\n lockedCB();\n } finally {\n storage.removeItem(keyZ);\n if (storage.getItem(keyY) === i) {\n storage.removeItem(keyY);\n }\n if (storage.getItem(keyX) === i) {\n storage.removeItem(keyX);\n }\n }\n };\n\n try {\n if (localStorageSupported(storage, true)) {\n loop();\n } else {\n throw new Error('localStorage support check failed');\n }\n } catch(err) {\n reportError(err);\n }\n};\n\n// eslint-disable-line camelcase\n\nvar logger$1 = console_with_prefix('batch');\n\n/**\n * RequestQueue: queue for batching API requests with localStorage backup for retries.\n * Maintains an in-memory queue which represents the source of truth for the current\n * page, but also writes all items out to a copy in the browser's localStorage, which\n * can be read on subsequent pageloads and retried. For batchability, all the request\n * items in the queue should be of the same type (events, people updates, group updates)\n * so they can be sent in a single request to the same API endpoint.\n *\n * LocalStorage keying and locking: In order for reloads and subsequent pageloads of\n * the same site to access the same persisted data, they must share the same localStorage\n * key (for instance based on project token and queue type). Therefore access to the\n * localStorage entry is guarded by an asynchronous mutex (SharedLock) to prevent\n * simultaneously open windows/tabs from overwriting each other's data (which would lead\n * to data loss in some situations).\n * @constructor\n */\nvar RequestQueue = function(storageKey, options) {\n options = options || {};\n this.storageKey = storageKey;\n this.storage = options.storage || window.localStorage;\n this.reportError = options.errorReporter || _.bind(logger$1.error, logger$1);\n this.lock = new SharedLock(storageKey, {storage: this.storage});\n\n this.pid = options.pid || null; // pass pid to test out storage lock contention scenarios\n\n this.memQueue = [];\n};\n\n/**\n * Add one item to queues (memory and localStorage). The queued entry includes\n * the given item along with an auto-generated ID and a \"flush-after\" timestamp.\n * It is expected that the item will be sent over the network and dequeued\n * before the flush-after time; if this doesn't happen it is considered orphaned\n * (e.g., the original tab where it was enqueued got closed before it could be\n * sent) and the item can be sent by any tab that finds it in localStorage.\n *\n * The final callback param is called with a param indicating success or\n * failure of the enqueue operation; it is asynchronous because the localStorage\n * lock is asynchronous.\n */\nRequestQueue.prototype.enqueue = function(item, flushInterval, cb) {\n var queueEntry = {\n 'id': cheap_guid(),\n 'flushAfter': new Date().getTime() + flushInterval * 2,\n 'payload': item\n };\n\n this.lock.withLock(_.bind(function lockAcquired() {\n var succeeded;\n try {\n var storedQueue = this.readFromStorage();\n storedQueue.push(queueEntry);\n succeeded = this.saveToStorage(storedQueue);\n if (succeeded) {\n // only add to in-memory queue when storage succeeds\n this.memQueue.push(queueEntry);\n }\n } catch(err) {\n this.reportError('Error enqueueing item', item);\n succeeded = false;\n }\n if (cb) {\n cb(succeeded);\n }\n }, this), _.bind(function lockFailure(err) {\n this.reportError('Error acquiring storage lock', err);\n if (cb) {\n cb(false);\n }\n }, this), this.pid);\n};\n\n/**\n * Read out the given number of queue entries. If this.memQueue\n * has fewer than batchSize items, then look for \"orphaned\" items\n * in the persisted queue (items where the 'flushAfter' time has\n * already passed).\n */\nRequestQueue.prototype.fillBatch = function(batchSize) {\n var batch = this.memQueue.slice(0, batchSize);\n if (batch.length < batchSize) {\n // don't need lock just to read events; localStorage is thread-safe\n // and the worst that could happen is a duplicate send of some\n // orphaned events, which will be deduplicated on the server side\n var storedQueue = this.readFromStorage();\n if (storedQueue.length) {\n // item IDs already in batch; don't duplicate out of storage\n var idsInBatch = {}; // poor man's Set\n _.each(batch, function(item) { idsInBatch[item['id']] = true; });\n\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (new Date().getTime() > item['flushAfter'] && !idsInBatch[item['id']]) {\n item.orphaned = true;\n batch.push(item);\n if (batch.length >= batchSize) {\n break;\n }\n }\n }\n }\n }\n return batch;\n};\n\n/**\n * Remove items with matching 'id' from array (immutably)\n * also remove any item without a valid id (e.g., malformed\n * storage entries).\n */\nvar filterOutIDsAndInvalid = function(items, idSet) {\n var filteredItems = [];\n _.each(items, function(item) {\n if (item['id'] && !idSet[item['id']]) {\n filteredItems.push(item);\n }\n });\n return filteredItems;\n};\n\n/**\n * Remove items with matching IDs from both in-memory queue\n * and persisted queue\n */\nRequestQueue.prototype.removeItemsByID = function(ids, cb) {\n var idSet = {}; // poor man's Set\n _.each(ids, function(id) { idSet[id] = true; });\n\n this.memQueue = filterOutIDsAndInvalid(this.memQueue, idSet);\n\n var removeFromStorage = _.bind(function() {\n var succeeded;\n try {\n var storedQueue = this.readFromStorage();\n storedQueue = filterOutIDsAndInvalid(storedQueue, idSet);\n succeeded = this.saveToStorage(storedQueue);\n\n // an extra check: did storage report success but somehow\n // the items are still there?\n if (succeeded) {\n storedQueue = this.readFromStorage();\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (item['id'] && !!idSet[item['id']]) {\n this.reportError('Item not removed from storage');\n return false;\n }\n }\n }\n } catch(err) {\n this.reportError('Error removing items', ids);\n succeeded = false;\n }\n return succeeded;\n }, this);\n\n this.lock.withLock(function lockAcquired() {\n var succeeded = removeFromStorage();\n if (cb) {\n cb(succeeded);\n }\n }, _.bind(function lockFailure(err) {\n var succeeded = false;\n this.reportError('Error acquiring storage lock', err);\n if (!localStorageSupported(this.storage, true)) {\n // Looks like localStorage writes have stopped working sometime after\n // initialization (probably full), and so nobody can acquire locks\n // anymore. Consider it temporarily safe to remove items without the\n // lock, since nobody's writing successfully anyway.\n succeeded = removeFromStorage();\n if (!succeeded) {\n // OK, we couldn't even write out the smaller queue. Try clearing it\n // entirely.\n try {\n this.storage.removeItem(this.storageKey);\n } catch(err) {\n this.reportError('Error clearing queue', err);\n }\n }\n }\n if (cb) {\n cb(succeeded);\n }\n }, this), this.pid);\n};\n\n// internal helper for RequestQueue.updatePayloads\nvar updatePayloads = function(existingItems, itemsToUpdate) {\n var newItems = [];\n _.each(existingItems, function(item) {\n var id = item['id'];\n if (id in itemsToUpdate) {\n var newPayload = itemsToUpdate[id];\n if (newPayload !== null) {\n item['payload'] = newPayload;\n newItems.push(item);\n }\n } else {\n // no update\n newItems.push(item);\n }\n });\n return newItems;\n};\n\n/**\n * Update payloads of given items in both in-memory queue and\n * persisted queue. Items set to null are removed from queues.\n */\nRequestQueue.prototype.updatePayloads = function(itemsToUpdate, cb) {\n this.memQueue = updatePayloads(this.memQueue, itemsToUpdate);\n this.lock.withLock(_.bind(function lockAcquired() {\n var succeeded;\n try {\n var storedQueue = this.readFromStorage();\n storedQueue = updatePayloads(storedQueue, itemsToUpdate);\n succeeded = this.saveToStorage(storedQueue);\n } catch(err) {\n this.reportError('Error updating items', itemsToUpdate);\n succeeded = false;\n }\n if (cb) {\n cb(succeeded);\n }\n }, this), _.bind(function lockFailure(err) {\n this.reportError('Error acquiring storage lock', err);\n if (cb) {\n cb(false);\n }\n }, this), this.pid);\n};\n\n/**\n * Read and parse items array from localStorage entry, handling\n * malformed/missing data if necessary.\n */\nRequestQueue.prototype.readFromStorage = function() {\n var storageEntry;\n try {\n storageEntry = this.storage.getItem(this.storageKey);\n if (storageEntry) {\n storageEntry = JSONParse(storageEntry);\n if (!_.isArray(storageEntry)) {\n this.reportError('Invalid storage entry:', storageEntry);\n storageEntry = null;\n }\n }\n } catch (err) {\n this.reportError('Error retrieving queue', err);\n storageEntry = null;\n }\n return storageEntry || [];\n};\n\n/**\n * Serialize the given items array to localStorage.\n */\nRequestQueue.prototype.saveToStorage = function(queue) {\n try {\n this.storage.setItem(this.storageKey, JSONStringify(queue));\n return true;\n } catch (err) {\n this.reportError('Error saving queue', err);\n return false;\n }\n};\n\n/**\n * Clear out queues (memory and localStorage).\n */\nRequestQueue.prototype.clear = function() {\n this.memQueue = [];\n this.storage.removeItem(this.storageKey);\n};\n\n// eslint-disable-line camelcase\n\n// maximum interval between request retries after exponential backoff\nvar MAX_RETRY_INTERVAL_MS = 10 * 60 * 1000; // 10 minutes\n\nvar logger = console_with_prefix('batch');\n\n/**\n * RequestBatcher: manages the queueing, flushing, retry etc of requests of one\n * type (events, people, groups).\n * Uses RequestQueue to manage the backing store.\n * @constructor\n */\nvar RequestBatcher = function(storageKey, options) {\n this.errorReporter = options.errorReporter;\n this.queue = new RequestQueue(storageKey, {\n errorReporter: _.bind(this.reportError, this),\n storage: options.storage\n });\n\n this.libConfig = options.libConfig;\n this.sendRequest = options.sendRequestFunc;\n this.beforeSendHook = options.beforeSendHook;\n this.stopAllBatching = options.stopAllBatchingFunc;\n\n // seed variable batch size + flush interval with configured values\n this.batchSize = this.libConfig['batch_size'];\n this.flushInterval = this.libConfig['batch_flush_interval_ms'];\n\n this.stopped = !this.libConfig['batch_autostart'];\n this.consecutiveRemovalFailures = 0;\n\n // extra client-side dedupe\n this.itemIdsSentSuccessfully = {};\n};\n\n/**\n * Add one item to queue.\n */\nRequestBatcher.prototype.enqueue = function(item, cb) {\n this.queue.enqueue(item, this.flushInterval, cb);\n};\n\n/**\n * Start flushing batches at the configured time interval. Must call\n * this method upon SDK init in order to send anything over the network.\n */\nRequestBatcher.prototype.start = function() {\n this.stopped = false;\n this.consecutiveRemovalFailures = 0;\n this.flush();\n};\n\n/**\n * Stop flushing batches. Can be restarted by calling start().\n */\nRequestBatcher.prototype.stop = function() {\n this.stopped = true;\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n this.timeoutID = null;\n }\n};\n\n/**\n * Clear out queue.\n */\nRequestBatcher.prototype.clear = function() {\n this.queue.clear();\n};\n\n/**\n * Restore batch size configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetBatchSize = function() {\n this.batchSize = this.libConfig['batch_size'];\n};\n\n/**\n * Restore flush interval time configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetFlush = function() {\n this.scheduleFlush(this.libConfig['batch_flush_interval_ms']);\n};\n\n/**\n * Schedule the next flush in the given number of milliseconds.\n */\nRequestBatcher.prototype.scheduleFlush = function(flushMS) {\n this.flushInterval = flushMS;\n if (!this.stopped) { // don't schedule anymore if batching has been stopped\n this.timeoutID = setTimeout(_.bind(this.flush, this), this.flushInterval);\n }\n};\n\n/**\n * Flush one batch to network. Depending on success/failure modes, it will either\n * remove the batch from the queue or leave it in for retry, and schedule the next\n * flush. In cases of most network or API failures, it will back off exponentially\n * when retrying.\n * @param {Object} [options]\n * @param {boolean} [options.sendBeacon] - whether to send batch with\n * navigator.sendBeacon (only useful for sending batches before page unloads, as\n * sendBeacon offers no callbacks or status indications)\n */\nRequestBatcher.prototype.flush = function(options) {\n try {\n\n if (this.requestInProgress) {\n logger.log('Flush: Request already in progress');\n return;\n }\n\n options = options || {};\n var timeoutMS = this.libConfig['batch_request_timeout_ms'];\n var startTime = new Date().getTime();\n var currentBatchSize = this.batchSize;\n var batch = this.queue.fillBatch(currentBatchSize);\n var dataForRequest = [];\n var transformedItems = {};\n _.each(batch, function(item) {\n var payload = item['payload'];\n if (this.beforeSendHook && !item.orphaned) {\n payload = this.beforeSendHook(payload);\n }\n if (payload) {\n // mp_sent_by_lib_version prop captures which lib version actually\n // sends each event (regardless of which version originally queued\n // it for sending)\n if (payload['event'] && payload['properties']) {\n payload['properties'] = _.extend(\n {},\n payload['properties'],\n {'mp_sent_by_lib_version': Config.LIB_VERSION}\n );\n }\n var addPayload = true;\n var itemId = item['id'];\n if (itemId) {\n if ((this.itemIdsSentSuccessfully[itemId] || 0) > 5) {\n this.reportError('[dupe] item ID sent too many times, not sending', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n addPayload = false;\n }\n } else {\n this.reportError('[dupe] found item with no ID', {item: item});\n }\n\n if (addPayload) {\n dataForRequest.push(payload);\n }\n }\n transformedItems[item['id']] = payload;\n }, this);\n if (dataForRequest.length < 1) {\n this.resetFlush();\n return; // nothing to do\n }\n\n this.requestInProgress = true;\n\n var batchSendCallback = _.bind(function(res) {\n this.requestInProgress = false;\n\n try {\n\n // handle API response in a try-catch to make sure we can reset the\n // flush operation if something goes wrong\n\n var removeItemsFromQueue = false;\n if (options.unloading) {\n // update persisted data to include hook transformations\n this.queue.updatePayloads(transformedItems);\n } else if (\n _.isObject(res) &&\n res.error === 'timeout' &&\n new Date().getTime() - startTime >= timeoutMS\n ) {\n this.reportError('Network timeout; retrying');\n this.flush();\n } else if (\n _.isObject(res) &&\n res.xhr_req &&\n (res.xhr_req['status'] >= 500 || res.xhr_req['status'] === 429 || res.error === 'timeout')\n ) {\n // network or API error, or 429 Too Many Requests, retry\n var retryMS = this.flushInterval * 2;\n var headers = res.xhr_req['responseHeaders'];\n if (headers) {\n var retryAfter = headers['Retry-After'];\n if (retryAfter) {\n retryMS = (parseInt(retryAfter, 10) * 1000) || retryMS;\n }\n }\n retryMS = Math.min(MAX_RETRY_INTERVAL_MS, retryMS);\n this.reportError('Error; retry in ' + retryMS + ' ms');\n this.scheduleFlush(retryMS);\n } else if (_.isObject(res) && res.xhr_req && res.xhr_req['status'] === 413) {\n // 413 Payload Too Large\n if (batch.length > 1) {\n var halvedBatchSize = Math.max(1, Math.floor(currentBatchSize / 2));\n this.batchSize = Math.min(this.batchSize, halvedBatchSize, batch.length - 1);\n this.reportError('413 response; reducing batch size to ' + this.batchSize);\n this.resetFlush();\n } else {\n this.reportError('Single-event request too large; dropping', batch);\n this.resetBatchSize();\n removeItemsFromQueue = true;\n }\n } else {\n // successful network request+response; remove each item in batch from queue\n // (even if it was e.g. a 400, in which case retrying won't help)\n removeItemsFromQueue = true;\n }\n\n if (removeItemsFromQueue) {\n this.queue.removeItemsByID(\n _.map(batch, function(item) { return item['id']; }),\n _.bind(function(succeeded) {\n if (succeeded) {\n this.consecutiveRemovalFailures = 0;\n this.flush(); // handle next batch if the queue isn't empty\n } else {\n this.reportError('Failed to remove items from queue');\n if (++this.consecutiveRemovalFailures > 5) {\n this.reportError('Too many queue failures; disabling batching system.');\n this.stopAllBatching();\n } else {\n this.resetFlush();\n }\n }\n }, this)\n );\n\n // client-side dedupe\n _.each(batch, _.bind(function(item) {\n var itemId = item['id'];\n if (itemId) {\n this.itemIdsSentSuccessfully[itemId] = this.itemIdsSentSuccessfully[itemId] || 0;\n this.itemIdsSentSuccessfully[itemId]++;\n if (this.itemIdsSentSuccessfully[itemId] > 5) {\n this.reportError('[dupe] item ID sent too many times', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n }\n } else {\n this.reportError('[dupe] found item with no ID while removing', {item: item});\n }\n }, this));\n }\n\n } catch(err) {\n this.reportError('Error handling API response', err);\n this.resetFlush();\n }\n }, this);\n var requestOptions = {\n method: 'POST',\n verbose: true,\n ignore_json_errors: true, // eslint-disable-line camelcase\n timeout_ms: timeoutMS // eslint-disable-line camelcase\n };\n if (options.unloading) {\n requestOptions.transport = 'sendBeacon';\n }\n logger.log('MIXPANEL REQUEST:', dataForRequest);\n this.sendRequest(dataForRequest, requestOptions, batchSendCallback);\n\n } catch(err) {\n this.reportError('Error flushing request queue', err);\n this.resetFlush();\n }\n};\n\n/**\n * Log error to global logger and optional user-defined logger.\n */\nRequestBatcher.prototype.reportError = function(msg, err) {\n logger.error.apply(logger.error, arguments);\n if (this.errorReporter) {\n try {\n if (!(err instanceof Error)) {\n err = new Error(msg);\n }\n this.errorReporter(msg, err);\n } catch(err) {\n logger.error(err);\n }\n }\n};\n\n/**\n * A function used to track a Mixpanel event (e.g. MixpanelLib.track)\n * @callback trackFunction\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n */\n\n/** Public **/\n\nvar GDPR_DEFAULT_PERSISTENCE_PREFIX = '__mp_opt_in_out_';\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction optIn(token, options) {\n _optInOut(true, token, options);\n}\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-out cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-out cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-out cookie is set as secure or not\n */\nfunction optOut(token, options) {\n _optInOut(false, token, options);\n}\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} whether the user has opted in to the given opt type\n */\nfunction hasOptedIn(token, options) {\n return _getStorageValue(token, options) === '1';\n}\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the user has opted out of the given opt type\n */\nfunction hasOptedOut(token, options) {\n if (_hasDoNotTrackFlagOn(options)) {\n console.warn('This browser has \"Do Not Track\" enabled. This will prevent the Mixpanel SDK from sending any data. To ignore the \"Do Not Track\" browser setting, initialize the Mixpanel instance with the config \"ignore_dnt: true\"');\n return true;\n }\n var optedOut = _getStorageValue(token, options) === '0';\n if (optedOut) {\n console.warn('You are opted out of Mixpanel tracking. This will prevent the Mixpanel SDK from sending any data.');\n }\n return optedOut;\n}\n\n/**\n * Wrap a MixpanelLib method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelLib(method) {\n return _addOptOutCheck(method, function(name) {\n return this.get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelPeople method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelPeople(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelGroup method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelGroup(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction clearOptInOut(token, options) {\n options = options || {};\n _getStorage(options).remove(\n _getStorageKey(token, options), !!options.crossSubdomainCookie, options.cookieDomain\n );\n}\n\n/** Private **/\n\n/**\n * Get storage util\n * @param {Object} [options]\n * @param {string} [options.persistenceType]\n * @returns {object} either _.cookie or _.localstorage\n */\nfunction _getStorage(options) {\n options = options || {};\n return options.persistenceType === 'localStorage' ? _.localStorage : _.cookie;\n}\n\n/**\n * Get the name of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the name of the cookie for the given opt type\n */\nfunction _getStorageKey(token, options) {\n options = options || {};\n return (options.persistencePrefix || GDPR_DEFAULT_PERSISTENCE_PREFIX) + token;\n}\n\n/**\n * Get the value of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the value of the cookie for the given opt type\n */\nfunction _getStorageValue(token, options) {\n return _getStorage(options).get(_getStorageKey(token, options));\n}\n\n/**\n * Check whether the user has set the DNT/doNotTrack setting to true in their browser\n * @param {Object} [options]\n * @param {string} [options.window] - alternate window object to check; used to force various DNT settings in browser tests\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the DNT setting is true\n */\nfunction _hasDoNotTrackFlagOn(options) {\n if (options && options.ignoreDnt) {\n return false;\n }\n var win = (options && options.window) || window$1;\n var nav = win['navigator'] || {};\n var hasDntOn = false;\n\n _.each([\n nav['doNotTrack'], // standard\n nav['msDoNotTrack'],\n win['doNotTrack']\n ], function(dntValue) {\n if (_.includes([true, 1, '1', 'yes'], dntValue)) {\n hasDntOn = true;\n }\n });\n\n return hasDntOn;\n}\n\n/**\n * Set cookie/localstorage for the user indicating that they are opted in or out for the given opt type\n * @param {boolean} optValue - whether to opt the user in or out for the given opt type\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction _optInOut(optValue, token, options) {\n if (!_.isString(token) || !token.length) {\n console.error('gdpr.' + (optValue ? 'optIn' : 'optOut') + ' called with an invalid token');\n return;\n }\n\n options = options || {};\n\n _getStorage(options).set(\n _getStorageKey(token, options),\n optValue ? 1 : 0,\n _.isNumber(options.cookieExpiration) ? options.cookieExpiration : null,\n !!options.crossSubdomainCookie,\n !!options.secureCookie,\n !!options.crossSiteCookie,\n options.cookieDomain\n );\n\n if (options.track && optValue) { // only track event if opting in (optValue=true)\n options.track(options.trackEventName || '$opt_in', options.trackProperties, {\n 'send_immediately': true\n });\n }\n}\n\n/**\n * Wrap a method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @param {function} getConfigValue - getter function for the Mixpanel API token and other options to be used with opt-out check\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction _addOptOutCheck(method, getConfigValue) {\n return function() {\n var optedOut = false;\n\n try {\n var token = getConfigValue.call(this, 'token');\n var ignoreDnt = getConfigValue.call(this, 'ignore_dnt');\n var persistenceType = getConfigValue.call(this, 'opt_out_tracking_persistence_type');\n var persistencePrefix = getConfigValue.call(this, 'opt_out_tracking_cookie_prefix');\n var win = getConfigValue.call(this, 'window'); // used to override window during browser tests\n\n if (token) { // if there was an issue getting the token, continue method execution as normal\n optedOut = hasOptedOut(token, {\n ignoreDnt: ignoreDnt,\n persistenceType: persistenceType,\n persistencePrefix: persistencePrefix,\n window: win\n });\n }\n } catch(err) {\n console.error('Unexpected error when checking tracking opt-out status: ' + err);\n }\n\n if (!optedOut) {\n return method.apply(this, arguments);\n }\n\n var callback = arguments[arguments.length - 1];\n if (typeof(callback) === 'function') {\n callback(0);\n }\n\n return;\n };\n}\n\n/** @const */ var SET_ACTION = '$set';\n/** @const */ var SET_ONCE_ACTION = '$set_once';\n/** @const */ var UNSET_ACTION = '$unset';\n/** @const */ var ADD_ACTION = '$add';\n/** @const */ var APPEND_ACTION = '$append';\n/** @const */ var UNION_ACTION = '$union';\n/** @const */ var REMOVE_ACTION = '$remove';\n/** @const */ var DELETE_ACTION = '$delete';\n\n// Common internal methods for mixpanel.people and mixpanel.group APIs.\n// These methods shouldn't involve network I/O.\nvar apiActions = {\n set_action: function(prop, to) {\n var data = {};\n var $set = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set[k] = v;\n }\n }, this);\n } else {\n $set[prop] = to;\n }\n\n data[SET_ACTION] = $set;\n return data;\n },\n\n unset_action: function(prop) {\n var data = {};\n var $unset = [];\n if (!_.isArray(prop)) {\n prop = [prop];\n }\n\n _.each(prop, function(k) {\n if (!this._is_reserved_property(k)) {\n $unset.push(k);\n }\n }, this);\n\n data[UNSET_ACTION] = $unset;\n return data;\n },\n\n set_once_action: function(prop, to) {\n var data = {};\n var $set_once = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set_once[k] = v;\n }\n }, this);\n } else {\n $set_once[prop] = to;\n }\n data[SET_ONCE_ACTION] = $set_once;\n return data;\n },\n\n union_action: function(list_name, values) {\n var data = {};\n var $union = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $union[k] = _.isArray(v) ? v : [v];\n }\n }, this);\n } else {\n $union[list_name] = _.isArray(values) ? values : [values];\n }\n data[UNION_ACTION] = $union;\n return data;\n },\n\n append_action: function(list_name, value) {\n var data = {};\n var $append = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $append[k] = v;\n }\n }, this);\n } else {\n $append[list_name] = value;\n }\n data[APPEND_ACTION] = $append;\n return data;\n },\n\n remove_action: function(list_name, value) {\n var data = {};\n var $remove = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $remove[k] = v;\n }\n }, this);\n } else {\n $remove[list_name] = value;\n }\n data[REMOVE_ACTION] = $remove;\n return data;\n },\n\n delete_action: function() {\n var data = {};\n data[DELETE_ACTION] = '';\n return data;\n }\n};\n\n/**\n * Mixpanel Group Object\n * @constructor\n */\nvar MixpanelGroup = function() {};\n\n_.extend(MixpanelGroup.prototype, apiActions);\n\nMixpanelGroup.prototype._init = function(mixpanel_instance, group_key, group_id) {\n this._mixpanel = mixpanel_instance;\n this._group_key = group_key;\n this._group_id = group_id;\n};\n\n/**\n * Set properties on a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, dates, or lists\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Set properties on a group, only if they do not yet exist.\n * This will not overwrite previous group property values, unlike\n * group.set().\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set_once('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set_once({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, lists or dates\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set_once = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Unset properties on a group permanently.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').unset('Founded');\n *\n * @param {String} prop The name of the property.\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.unset = addOptOutCheckMixpanelGroup(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/**\n * Merge a given list with a list-valued group property, excluding duplicate values.\n *\n * ### Usage:\n *\n * // merge a value to a list, creating it if needed\n * mixpanel.get_group('company', 'mixpanel').union('Location', ['San Francisco', 'London']);\n *\n * @param {String} list_name Name of the property.\n * @param {Array} values Values to merge with the given property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.union = addOptOutCheckMixpanelGroup(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/**\n * Permanently delete a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').delete();\n *\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype['delete'] = addOptOutCheckMixpanelGroup(function(callback) {\n // bracket notation above prevents a minification error related to reserved words\n var data = this.delete_action();\n return this._send_request(data, callback);\n});\n\n/**\n * Remove a property from a group. The value will be ignored if doesn't exist.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').remove('Location', 'London');\n *\n * @param {String} list_name Name of the property.\n * @param {Object} value Value to remove from the given group property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.remove = addOptOutCheckMixpanelGroup(function(list_name, value, callback) {\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\nMixpanelGroup.prototype._send_request = function(data, callback) {\n data['$group_key'] = this._group_key;\n data['$group_id'] = this._group_id;\n data['$token'] = this._get_config('token');\n\n var date_encoded_data = _.encodeDates(data);\n return this._mixpanel._track_or_batch({\n type: 'groups',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/' + this._get_config('api_routes')['groups'],\n batcher: this._mixpanel.request_batchers.groups\n }, callback);\n};\n\nMixpanelGroup.prototype._is_reserved_property = function(prop) {\n return prop === '$group_key' || prop === '$group_id';\n};\n\nMixpanelGroup.prototype._get_config = function(conf) {\n return this._mixpanel.get_config(conf);\n};\n\nMixpanelGroup.prototype.toString = function() {\n return this._mixpanel.toString() + '.group.' + this._group_key + '.' + this._group_id;\n};\n\n// MixpanelGroup Exports\nMixpanelGroup.prototype['remove'] = MixpanelGroup.prototype.remove;\nMixpanelGroup.prototype['set'] = MixpanelGroup.prototype.set;\nMixpanelGroup.prototype['set_once'] = MixpanelGroup.prototype.set_once;\nMixpanelGroup.prototype['union'] = MixpanelGroup.prototype.union;\nMixpanelGroup.prototype['unset'] = MixpanelGroup.prototype.unset;\nMixpanelGroup.prototype['toString'] = MixpanelGroup.prototype.toString;\n\n/**\n * Mixpanel People Object\n * @constructor\n */\nvar MixpanelPeople = function() {};\n\n_.extend(MixpanelPeople.prototype, apiActions);\n\nMixpanelPeople.prototype._init = function(mixpanel_instance) {\n this._mixpanel = mixpanel_instance;\n};\n\n/*\n* Set properties on a user record.\n*\n* ### Usage:\n*\n* mixpanel.people.set('gender', 'm');\n*\n* // or set multiple properties at once\n* mixpanel.people.set({\n* 'Company': 'Acme',\n* 'Plan': 'Premium',\n* 'Upgrade date': new Date()\n* });\n* // properties can be strings, integers, dates, or lists\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n // make sure that the referrer info has been updated and saved\n if (this._get_config('save_referrer')) {\n this._mixpanel['persistence'].update_referrer_info(document.referrer);\n }\n\n // update $set object with default people properties\n data[SET_ACTION] = _.extend(\n {},\n _.info.people_properties(),\n this._mixpanel['persistence'].get_referrer_info(),\n data[SET_ACTION]\n );\n return this._send_request(data, callback);\n});\n\n/*\n* Set properties on a user record, only if they do not yet exist.\n* This will not overwrite previous people property values, unlike\n* people.set().\n*\n* ### Usage:\n*\n* mixpanel.people.set_once('First Login Date', new Date());\n*\n* // or set multiple properties at once\n* mixpanel.people.set_once({\n* 'First Login Date': new Date(),\n* 'Starting Plan': 'Premium'\n* });\n*\n* // properties can be strings, integers or dates\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set_once = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/*\n* Unset properties on a user record (permanently removes the properties and their values from a profile).\n*\n* ### Usage:\n*\n* mixpanel.people.unset('gender');\n*\n* // or unset multiple properties at once\n* mixpanel.people.unset(['gender', 'Company']);\n*\n* @param {Array|String} prop If a string, this is the name of the property. If an array, this is a list of property names.\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.unset = addOptOutCheckMixpanelPeople(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/*\n* Increment/decrement numeric people analytics properties.\n*\n* ### Usage:\n*\n* mixpanel.people.increment('page_views', 1);\n*\n* // or, for convenience, if you're just incrementing a counter by\n* // 1, you can simply do\n* mixpanel.people.increment('page_views');\n*\n* // to decrement a counter, pass a negative number\n* mixpanel.people.increment('credits_left', -1);\n*\n* // like mixpanel.people.set(), you can increment multiple\n* // properties at once:\n* mixpanel.people.increment({\n* counter1: 1,\n* counter2: 6\n* });\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and numeric values.\n* @param {Number} [by] An amount to increment the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.increment = addOptOutCheckMixpanelPeople(function(prop, by, callback) {\n var data = {};\n var $add = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n if (isNaN(parseFloat(v))) {\n console.error('Invalid increment value passed to mixpanel.people.increment - must be a number');\n return;\n } else {\n $add[k] = v;\n }\n }\n }, this);\n callback = by;\n } else {\n // convenience: mixpanel.people.increment('property'); will\n // increment 'property' by 1\n if (_.isUndefined(by)) {\n by = 1;\n }\n $add[prop] = by;\n }\n data[ADD_ACTION] = $add;\n\n return this._send_request(data, callback);\n});\n\n/*\n* Append a value to a list-valued people analytics property.\n*\n* ### Usage:\n*\n* // append a value to a list, creating it if needed\n* mixpanel.people.append('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.append({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value An item to append to the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.append = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.append_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Remove a value from a list-valued people analytics property.\n*\n* ### Usage:\n*\n* mixpanel.people.remove('School', 'UCB');\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value Item to remove from the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.remove = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Merge a given list with a list-valued people analytics property,\n* excluding duplicate values.\n*\n* ### Usage:\n*\n* // merge a value to a list, creating it if needed\n* mixpanel.people.union('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.union({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* // like mixpanel.people.append(), you can append multiple\n* // values to the same list:\n* mixpanel.people.union({\n* list1: ['bob', 'billy']\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] Value / values to merge with the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.union = addOptOutCheckMixpanelPeople(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/*\n * Record that you have charged the current user a certain amount\n * of money. Charges recorded with track_charge() will appear in the\n * Mixpanel revenue report.\n *\n * ### Usage:\n *\n * // charge a user $50\n * mixpanel.people.track_charge(50);\n *\n * // charge a user $30.50 on the 2nd of january\n * mixpanel.people.track_charge(30.50, {\n * '$time': new Date('jan 1 2012')\n * });\n *\n * @param {Number} amount The amount of money charged to the current user\n * @param {Object} [properties] An associative array of properties associated with the charge\n * @param {Function} [callback] If provided, the callback will be called when the server responds\n * @deprecated\n */\nMixpanelPeople.prototype.track_charge = addOptOutCheckMixpanelPeople(function(amount, properties, callback) {\n if (!_.isNumber(amount)) {\n amount = parseFloat(amount);\n if (isNaN(amount)) {\n console.error('Invalid value passed to mixpanel.people.track_charge - must be a number');\n return;\n }\n }\n\n return this.append('$transactions', _.extend({\n '$amount': amount\n }, properties), callback);\n});\n\n/*\n * Permanently clear all revenue report transactions from the\n * current user's people analytics profile.\n *\n * ### Usage:\n *\n * mixpanel.people.clear_charges();\n *\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n * @deprecated\n */\nMixpanelPeople.prototype.clear_charges = function(callback) {\n return this.set('$transactions', [], callback);\n};\n\n/*\n* Permanently deletes the current people analytics profile from\n* Mixpanel (using the current distinct_id).\n*\n* ### Usage:\n*\n* // remove the all data you have stored about the current user\n* mixpanel.people.delete_user();\n*\n*/\nMixpanelPeople.prototype.delete_user = function() {\n if (!this._identify_called()) {\n console.error('mixpanel.people.delete_user() requires you to call identify() first');\n return;\n }\n var data = {'$delete': this._mixpanel.get_distinct_id()};\n return this._send_request(data);\n};\n\nMixpanelPeople.prototype.toString = function() {\n return this._mixpanel.toString() + '.people';\n};\n\nMixpanelPeople.prototype._send_request = function(data, callback) {\n data['$token'] = this._get_config('token');\n data['$distinct_id'] = this._mixpanel.get_distinct_id();\n var device_id = this._mixpanel.get_property('$device_id');\n var user_id = this._mixpanel.get_property('$user_id');\n var had_persisted_distinct_id = this._mixpanel.get_property('$had_persisted_distinct_id');\n if (device_id) {\n data['$device_id'] = device_id;\n }\n if (user_id) {\n data['$user_id'] = user_id;\n }\n if (had_persisted_distinct_id) {\n data['$had_persisted_distinct_id'] = had_persisted_distinct_id;\n }\n\n var date_encoded_data = _.encodeDates(data);\n\n if (!this._identify_called()) {\n this._enqueue(data);\n if (!_.isUndefined(callback)) {\n if (this._get_config('verbose')) {\n callback({status: -1, error: null});\n } else {\n callback(-1);\n }\n }\n return _.truncate(date_encoded_data, 255);\n }\n\n return this._mixpanel._track_or_batch({\n type: 'people',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/' + this._get_config('api_routes')['engage'],\n batcher: this._mixpanel.request_batchers.people\n }, callback);\n};\n\nMixpanelPeople.prototype._get_config = function(conf_var) {\n return this._mixpanel.get_config(conf_var);\n};\n\nMixpanelPeople.prototype._identify_called = function() {\n return this._mixpanel._flags.identify_called === true;\n};\n\n// Queue up engage operations if identify hasn't been called yet.\nMixpanelPeople.prototype._enqueue = function(data) {\n if (SET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ACTION, data);\n } else if (SET_ONCE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ONCE_ACTION, data);\n } else if (UNSET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNSET_ACTION, data);\n } else if (ADD_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(ADD_ACTION, data);\n } else if (APPEND_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, data);\n } else if (REMOVE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, data);\n } else if (UNION_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNION_ACTION, data);\n } else {\n console.error('Invalid call to _enqueue():', data);\n }\n};\n\nMixpanelPeople.prototype._flush_one_queue = function(action, action_method, callback, queue_to_params_fn) {\n var _this = this;\n var queued_data = _.extend({}, this._mixpanel['persistence'].load_queue(action));\n var action_params = queued_data;\n\n if (!_.isUndefined(queued_data) && _.isObject(queued_data) && !_.isEmptyObject(queued_data)) {\n _this._mixpanel['persistence']._pop_from_people_queue(action, queued_data);\n _this._mixpanel['persistence'].save();\n if (queue_to_params_fn) {\n action_params = queue_to_params_fn(queued_data);\n }\n action_method.call(_this, action_params, function(response, data) {\n // on bad response, we want to add it back to the queue\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(action, queued_data);\n }\n if (!_.isUndefined(callback)) {\n callback(response, data);\n }\n });\n }\n};\n\n// Flush queued engage operations - order does not matter,\n// and there are network level race conditions anyway\nMixpanelPeople.prototype._flush = function(\n _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n var _this = this;\n\n this._flush_one_queue(SET_ACTION, this.set, _set_callback);\n this._flush_one_queue(SET_ONCE_ACTION, this.set_once, _set_once_callback);\n this._flush_one_queue(UNSET_ACTION, this.unset, _unset_callback, function(queue) { return _.keys(queue); });\n this._flush_one_queue(ADD_ACTION, this.increment, _add_callback);\n this._flush_one_queue(UNION_ACTION, this.union, _union_callback);\n\n // we have to fire off each $append individually since there is\n // no concat method server side\n var $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n if (!_.isUndefined($append_queue) && _.isArray($append_queue) && $append_queue.length) {\n var $append_item;\n var append_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, $append_item);\n }\n if (!_.isUndefined(_append_callback)) {\n _append_callback(response, data);\n }\n };\n for (var i = $append_queue.length - 1; i >= 0; i--) {\n $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n $append_item = $append_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($append_item)) {\n _this.append($append_item, append_callback);\n }\n }\n }\n\n // same for $remove\n var $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n if (!_.isUndefined($remove_queue) && _.isArray($remove_queue) && $remove_queue.length) {\n var $remove_item;\n var remove_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, $remove_item);\n }\n if (!_.isUndefined(_remove_callback)) {\n _remove_callback(response, data);\n }\n };\n for (var j = $remove_queue.length - 1; j >= 0; j--) {\n $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n $remove_item = $remove_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($remove_item)) {\n _this.remove($remove_item, remove_callback);\n }\n }\n }\n};\n\nMixpanelPeople.prototype._is_reserved_property = function(prop) {\n return prop === '$distinct_id' || prop === '$token' || prop === '$device_id' || prop === '$user_id' || prop === '$had_persisted_distinct_id';\n};\n\n// MixpanelPeople Exports\nMixpanelPeople.prototype['set'] = MixpanelPeople.prototype.set;\nMixpanelPeople.prototype['set_once'] = MixpanelPeople.prototype.set_once;\nMixpanelPeople.prototype['unset'] = MixpanelPeople.prototype.unset;\nMixpanelPeople.prototype['increment'] = MixpanelPeople.prototype.increment;\nMixpanelPeople.prototype['append'] = MixpanelPeople.prototype.append;\nMixpanelPeople.prototype['remove'] = MixpanelPeople.prototype.remove;\nMixpanelPeople.prototype['union'] = MixpanelPeople.prototype.union;\nMixpanelPeople.prototype['track_charge'] = MixpanelPeople.prototype.track_charge;\nMixpanelPeople.prototype['clear_charges'] = MixpanelPeople.prototype.clear_charges;\nMixpanelPeople.prototype['delete_user'] = MixpanelPeople.prototype.delete_user;\nMixpanelPeople.prototype['toString'] = MixpanelPeople.prototype.toString;\n\n/*\n * Constants\n */\n/** @const */ var SET_QUEUE_KEY = '__mps';\n/** @const */ var SET_ONCE_QUEUE_KEY = '__mpso';\n/** @const */ var UNSET_QUEUE_KEY = '__mpus';\n/** @const */ var ADD_QUEUE_KEY = '__mpa';\n/** @const */ var APPEND_QUEUE_KEY = '__mpap';\n/** @const */ var REMOVE_QUEUE_KEY = '__mpr';\n/** @const */ var UNION_QUEUE_KEY = '__mpu';\n// This key is deprecated, but we want to check for it to see whether aliasing is allowed.\n/** @const */ var PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id';\n/** @const */ var ALIAS_ID_KEY = '__alias';\n/** @const */ var EVENT_TIMERS_KEY = '__timers';\n/** @const */ var RESERVED_PROPERTIES = [\n SET_QUEUE_KEY,\n SET_ONCE_QUEUE_KEY,\n UNSET_QUEUE_KEY,\n ADD_QUEUE_KEY,\n APPEND_QUEUE_KEY,\n REMOVE_QUEUE_KEY,\n UNION_QUEUE_KEY,\n PEOPLE_DISTINCT_ID_KEY,\n ALIAS_ID_KEY,\n EVENT_TIMERS_KEY\n];\n\n/**\n * Mixpanel Persistence Object\n * @constructor\n */\nvar MixpanelPersistence = function(config) {\n this['props'] = {};\n this.campaign_params_saved = false;\n\n if (config['persistence_name']) {\n this.name = 'mp_' + config['persistence_name'];\n } else {\n this.name = 'mp_' + config['token'] + '_mixpanel';\n }\n\n var storage_type = config['persistence'];\n if (storage_type !== 'cookie' && storage_type !== 'localStorage') {\n console.critical('Unknown persistence type ' + storage_type + '; falling back to cookie');\n storage_type = config['persistence'] = 'cookie';\n }\n\n if (storage_type === 'localStorage' && _.localStorage.is_supported()) {\n this.storage = _.localStorage;\n } else {\n this.storage = _.cookie;\n }\n\n this.load();\n this.update_config(config);\n this.upgrade(config);\n this.save();\n};\n\nMixpanelPersistence.prototype.properties = function() {\n var p = {};\n\n this.load();\n\n // Filter out reserved properties\n _.each(this['props'], function(v, k) {\n if (!_.include(RESERVED_PROPERTIES, k)) {\n p[k] = v;\n }\n });\n return p;\n};\n\nMixpanelPersistence.prototype.load = function() {\n if (this.disabled) { return; }\n\n var entry = this.storage.parse(this.name);\n\n if (entry) {\n this['props'] = _.extend({}, entry);\n }\n};\n\nMixpanelPersistence.prototype.upgrade = function(config) {\n var upgrade_from_old_lib = config['upgrade'],\n old_cookie_name,\n old_cookie;\n\n if (upgrade_from_old_lib) {\n old_cookie_name = 'mp_super_properties';\n // Case where they had a custom cookie name before.\n if (typeof(upgrade_from_old_lib) === 'string') {\n old_cookie_name = upgrade_from_old_lib;\n }\n\n old_cookie = this.storage.parse(old_cookie_name);\n\n // remove the cookie\n this.storage.remove(old_cookie_name);\n this.storage.remove(old_cookie_name, true);\n\n if (old_cookie) {\n this['props'] = _.extend(\n this['props'],\n old_cookie['all'],\n old_cookie['events']\n );\n }\n }\n\n if (!config['cookie_name'] && config['name'] !== 'mixpanel') {\n // special case to handle people with cookies of the form\n // mp_TOKEN_INSTANCENAME from the first release of this library\n old_cookie_name = 'mp_' + config['token'] + '_' + config['name'];\n old_cookie = this.storage.parse(old_cookie_name);\n\n if (old_cookie) {\n this.storage.remove(old_cookie_name);\n this.storage.remove(old_cookie_name, true);\n\n // Save the prop values that were in the cookie from before -\n // this should only happen once as we delete the old one.\n this.register_once(old_cookie);\n }\n }\n\n if (this.storage === _.localStorage) {\n old_cookie = _.cookie.parse(this.name);\n\n _.cookie.remove(this.name);\n _.cookie.remove(this.name, true);\n\n if (old_cookie) {\n this.register_once(old_cookie);\n }\n }\n};\n\nMixpanelPersistence.prototype.save = function() {\n if (this.disabled) { return; }\n\n this.storage.set(\n this.name,\n _.JSONEncode(this['props']),\n this.expire_days,\n this.cross_subdomain,\n this.secure,\n this.cross_site,\n this.cookie_domain\n );\n};\n\nMixpanelPersistence.prototype.load_prop = function(key) {\n this.load();\n return this['props'][key];\n};\n\nMixpanelPersistence.prototype.remove = function() {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false, this.cookie_domain);\n this.storage.remove(this.name, true, this.cookie_domain);\n};\n\n// removes the storage entry and deletes all loaded data\n// forced name for tests\nMixpanelPersistence.prototype.clear = function() {\n this.remove();\n this['props'] = {};\n};\n\n/**\n* @param {Object} props\n* @param {*=} default_value\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register_once = function(props, default_value, days) {\n if (_.isObject(props)) {\n if (typeof(default_value) === 'undefined') { default_value = 'None'; }\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n\n _.each(props, function(val, prop) {\n if (!this['props'].hasOwnProperty(prop) || this['props'][prop] === default_value) {\n this['props'][prop] = val;\n }\n }, this);\n\n this.save();\n\n return true;\n }\n return false;\n};\n\n/**\n* @param {Object} props\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register = function(props, days) {\n if (_.isObject(props)) {\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n _.extend(this['props'], props);\n this.save();\n\n return true;\n }\n return false;\n};\n\nMixpanelPersistence.prototype.unregister = function(prop) {\n this.load();\n if (prop in this['props']) {\n delete this['props'][prop];\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.update_search_keyword = function(referrer) {\n this.register(_.info.searchInfo(referrer));\n};\n\n// EXPORTED METHOD, we test this directly.\nMixpanelPersistence.prototype.update_referrer_info = function(referrer) {\n // If referrer doesn't exist, we want to note the fact that it was type-in traffic.\n this.register_once({\n '$initial_referrer': referrer || '$direct',\n '$initial_referring_domain': _.info.referringDomain(referrer) || '$direct'\n }, '');\n};\n\nMixpanelPersistence.prototype.get_referrer_info = function() {\n return _.strip_empty_properties({\n '$initial_referrer': this['props']['$initial_referrer'],\n '$initial_referring_domain': this['props']['$initial_referring_domain']\n });\n};\n\nMixpanelPersistence.prototype.update_config = function(config) {\n this.default_expiry = this.expire_days = config['cookie_expiration'];\n this.set_disabled(config['disable_persistence']);\n this.set_cookie_domain(config['cookie_domain']);\n this.set_cross_site(config['cross_site_cookie']);\n this.set_cross_subdomain(config['cross_subdomain_cookie']);\n this.set_secure(config['secure_cookie']);\n};\n\nMixpanelPersistence.prototype.set_disabled = function(disabled) {\n this.disabled = disabled;\n if (this.disabled) {\n this.remove();\n } else {\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cookie_domain = function(cookie_domain) {\n if (cookie_domain !== this.cookie_domain) {\n this.remove();\n this.cookie_domain = cookie_domain;\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_site = function(cross_site) {\n if (cross_site !== this.cross_site) {\n this.cross_site = cross_site;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_subdomain = function(cross_subdomain) {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.get_cross_subdomain = function() {\n return this.cross_subdomain;\n};\n\nMixpanelPersistence.prototype.set_secure = function(secure) {\n if (secure !== this.secure) {\n this.secure = secure ? true : false;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype._add_to_people_queue = function(queue, data) {\n var q_key = this._get_queue_key(queue),\n q_data = data[queue],\n set_q = this._get_or_create_queue(SET_ACTION),\n set_once_q = this._get_or_create_queue(SET_ONCE_ACTION),\n unset_q = this._get_or_create_queue(UNSET_ACTION),\n add_q = this._get_or_create_queue(ADD_ACTION),\n union_q = this._get_or_create_queue(UNION_ACTION),\n remove_q = this._get_or_create_queue(REMOVE_ACTION, []),\n append_q = this._get_or_create_queue(APPEND_ACTION, []);\n\n if (q_key === SET_QUEUE_KEY) {\n // Update the set queue - we can override any existing values\n _.extend(set_q, q_data);\n // if there was a pending increment, override it\n // with the set.\n this._pop_from_people_queue(ADD_ACTION, q_data);\n // if there was a pending union, override it\n // with the set.\n this._pop_from_people_queue(UNION_ACTION, q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === SET_ONCE_QUEUE_KEY) {\n // only queue the data if there is not already a set_once call for it.\n _.each(q_data, function(v, k) {\n if (!(k in set_once_q)) {\n set_once_q[k] = v;\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNSET_QUEUE_KEY) {\n _.each(q_data, function(prop) {\n\n // undo previously-queued actions on this key\n _.each([set_q, set_once_q, add_q, union_q], function(enqueued_obj) {\n if (prop in enqueued_obj) {\n delete enqueued_obj[prop];\n }\n });\n _.each(append_q, function(append_obj) {\n if (prop in append_obj) {\n delete append_obj[prop];\n }\n });\n\n unset_q[prop] = true;\n\n });\n } else if (q_key === ADD_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n // If it exists in the set queue, increment\n // the value\n if (k in set_q) {\n set_q[k] += v;\n } else {\n // If it doesn't exist, update the add\n // queue\n if (!(k in add_q)) {\n add_q[k] = 0;\n }\n add_q[k] += v;\n }\n }, this);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNION_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n if (_.isArray(v)) {\n if (!(k in union_q)) {\n union_q[k] = [];\n }\n // We may send duplicates, the server will dedup them.\n union_q[k] = union_q[k].concat(v);\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === REMOVE_QUEUE_KEY) {\n remove_q.push(q_data);\n this._pop_from_people_queue(APPEND_ACTION, q_data);\n } else if (q_key === APPEND_QUEUE_KEY) {\n append_q.push(q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n }\n\n console.log('MIXPANEL PEOPLE REQUEST (QUEUED, PENDING IDENTIFY):');\n console.log(data);\n\n this.save();\n};\n\nMixpanelPersistence.prototype._pop_from_people_queue = function(queue, data) {\n var q = this['props'][this._get_queue_key(queue)];\n if (!_.isUndefined(q)) {\n _.each(data, function(v, k) {\n if (queue === APPEND_ACTION || queue === REMOVE_ACTION) {\n // list actions: only remove if both k+v match\n // e.g. remove should not override append in a case like\n // append({foo: 'bar'}); remove({foo: 'qux'})\n _.each(q, function(queued_action) {\n if (queued_action[k] === v) {\n delete queued_action[k];\n }\n });\n } else {\n delete q[k];\n }\n }, this);\n }\n};\n\nMixpanelPersistence.prototype.load_queue = function(queue) {\n return this.load_prop(this._get_queue_key(queue));\n};\n\nMixpanelPersistence.prototype._get_queue_key = function(queue) {\n if (queue === SET_ACTION) {\n return SET_QUEUE_KEY;\n } else if (queue === SET_ONCE_ACTION) {\n return SET_ONCE_QUEUE_KEY;\n } else if (queue === UNSET_ACTION) {\n return UNSET_QUEUE_KEY;\n } else if (queue === ADD_ACTION) {\n return ADD_QUEUE_KEY;\n } else if (queue === APPEND_ACTION) {\n return APPEND_QUEUE_KEY;\n } else if (queue === REMOVE_ACTION) {\n return REMOVE_QUEUE_KEY;\n } else if (queue === UNION_ACTION) {\n return UNION_QUEUE_KEY;\n } else {\n console.error('Invalid queue:', queue);\n }\n};\n\nMixpanelPersistence.prototype._get_or_create_queue = function(queue, default_val) {\n var key = this._get_queue_key(queue);\n default_val = _.isUndefined(default_val) ? {} : default_val;\n return this['props'][key] || (this['props'][key] = default_val);\n};\n\nMixpanelPersistence.prototype.set_event_timer = function(event_name, timestamp) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n timers[event_name] = timestamp;\n this['props'][EVENT_TIMERS_KEY] = timers;\n this.save();\n};\n\nMixpanelPersistence.prototype.remove_event_timer = function(event_name) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n var timestamp = timers[event_name];\n if (!_.isUndefined(timestamp)) {\n delete this['props'][EVENT_TIMERS_KEY][event_name];\n this.save();\n }\n return timestamp;\n};\n\n/*\n * Mixpanel JS Library\n *\n * Copyright 2012, Mixpanel, Inc. All Rights Reserved\n * http://mixpanel.com/\n *\n * Includes portions of Underscore.js\n * http://documentcloud.github.com/underscore/\n * (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.\n * Released under the MIT License.\n */\n\n// ==ClosureCompiler==\n// @compilation_level ADVANCED_OPTIMIZATIONS\n// @output_file_name mixpanel-2.8.min.js\n// ==/ClosureCompiler==\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\nvar init_type; // MODULE or SNIPPET loader\nvar mixpanel_master; // main mixpanel instance / object\nvar INIT_MODULE = 0;\nvar INIT_SNIPPET = 1;\n\nvar IDENTITY_FUNC = function(x) {return x;};\nvar NOOP_FUNC = function() {};\n\n/** @const */ var PRIMARY_INSTANCE_NAME = 'mixpanel';\n/** @const */ var PAYLOAD_TYPE_BASE64 = 'base64';\n/** @const */ var PAYLOAD_TYPE_JSON = 'json';\n/** @const */ var DEVICE_ID_PREFIX = '$device:';\n\n\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\nvar USE_XHR = (window$1.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest());\n\n// IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\nvar ENQUEUE_REQUESTS = !USE_XHR && (userAgent.indexOf('MSIE') === -1) && (userAgent.indexOf('Mozilla') === -1);\n\n// save reference to navigator.sendBeacon so it can be minified\nvar sendBeacon = null;\nif (navigator['sendBeacon']) {\n sendBeacon = function() {\n // late reference to navigator.sendBeacon to allow patching/spying\n return navigator['sendBeacon'].apply(navigator, arguments);\n };\n}\n\nvar DEFAULT_API_ROUTES = {\n 'track': 'track/',\n 'engage': 'engage/',\n 'groups': 'groups/'\n};\n\n/*\n * Module-level globals\n */\nvar DEFAULT_CONFIG = {\n 'api_host': 'https://api-js.mixpanel.com',\n 'api_routes': DEFAULT_API_ROUTES,\n 'api_method': 'POST',\n 'api_transport': 'XHR',\n 'api_payload_format': PAYLOAD_TYPE_BASE64,\n 'app_host': 'https://mixpanel.com',\n 'cdn': 'https://cdn.mxpnl.com',\n 'cross_site_cookie': false,\n 'cross_subdomain_cookie': true,\n 'error_reporter': NOOP_FUNC,\n 'persistence': 'cookie',\n 'persistence_name': '',\n 'cookie_domain': '',\n 'cookie_name': '',\n 'loaded': NOOP_FUNC,\n 'track_marketing': true,\n 'track_pageview': false,\n 'skip_first_touch_marketing': false,\n 'store_google': true,\n 'save_referrer': true,\n 'test': false,\n 'verbose': false,\n 'img': false,\n 'debug': false,\n 'track_links_timeout': 300,\n 'cookie_expiration': 365,\n 'upgrade': false,\n 'disable_persistence': false,\n 'disable_cookie': false,\n 'secure_cookie': false,\n 'ip': true,\n 'opt_out_tracking_by_default': false,\n 'opt_out_persistence_by_default': false,\n 'opt_out_tracking_persistence_type': 'localStorage',\n 'opt_out_tracking_cookie_prefix': null,\n 'property_blacklist': [],\n 'xhr_headers': {}, // { header: value, header2: value }\n 'ignore_dnt': false,\n 'batch_requests': true,\n 'batch_size': 50,\n 'batch_flush_interval_ms': 5000,\n 'batch_request_timeout_ms': 90000,\n 'batch_autostart': true,\n 'hooks': {}\n};\n\nvar DOM_LOADED = false;\n\n/**\n * Mixpanel Library Object\n * @constructor\n */\nvar MixpanelLib = function() {};\n\n\n/**\n * create_mplib(token:string, config:object, name:string)\n *\n * This function is used by the init method of MixpanelLib objects\n * as well as the main initializer at the end of the JSLib (that\n * initializes document.mixpanel as well as any additional instances\n * declared before this file has loaded).\n */\nvar create_mplib = function(token, config, name) {\n var instance,\n target = (name === PRIMARY_INSTANCE_NAME) ? mixpanel_master : mixpanel_master[name];\n\n if (target && init_type === INIT_MODULE) {\n instance = target;\n } else {\n if (target && !_.isArray(target)) {\n console.error('You have already initialized ' + name);\n return;\n }\n instance = new MixpanelLib();\n }\n\n instance._cached_groups = {}; // cache groups in a pool\n\n instance._init(token, config, name);\n\n instance['people'] = new MixpanelPeople();\n instance['people']._init(instance);\n\n if (!instance.get_config('skip_first_touch_marketing')) {\n // We need null UTM params in the object because\n // UTM parameters act as a tuple. If any UTM param\n // is present, then we set all UTM params including\n // empty ones together\n var utm_params = _.info.campaignParams(null);\n var initial_utm_params = {};\n var has_utm = false;\n _.each(utm_params, function(utm_value, utm_key) {\n initial_utm_params['initial_' + utm_key] = utm_value;\n if (utm_value) {\n has_utm = true;\n }\n });\n if (has_utm) {\n instance['people'].set_once(initial_utm_params);\n }\n }\n\n // if any instance on the page has debug = true, we set the\n // global debug to be true\n Config.DEBUG = Config.DEBUG || instance.get_config('debug');\n\n // if target is not defined, we called init after the lib already\n // loaded, so there won't be an array of things to execute\n if (!_.isUndefined(target) && _.isArray(target)) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance['people'], target['people']);\n instance._execute_array(target);\n }\n\n return instance;\n};\n\n// Initialization methods\n\n/**\n * This function initializes a new instance of the Mixpanel tracking object.\n * All new instances are added to the main mixpanel object as sub properties (such as\n * mixpanel.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * mixpanel.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * mixpanel.library_name.track(...);\n *\n * @param {String} token Your Mixpanel API token\n * @param {Object} [config] A dictionary of config options to override. See a list of default config options.\n * @param {String} [name] The name for the new mixpanel instance that you want created\n */\nMixpanelLib.prototype.init = function (token, config, name) {\n if (_.isUndefined(name)) {\n this.report_error('You must name your new library: init(token, config, name)');\n return;\n }\n if (name === PRIMARY_INSTANCE_NAME) {\n this.report_error('You must initialize the main mixpanel object right after you include the Mixpanel js snippet');\n return;\n }\n\n var instance = create_mplib(token, config, name);\n mixpanel_master[name] = instance;\n instance._loaded();\n\n return instance;\n};\n\n// mixpanel._init(token:string, config:object, name:string)\n//\n// This function sets up the current instance of the mixpanel\n// library. The difference between this method and the init(...)\n// method is this one initializes the actual instance, whereas the\n// init(...) method sets up a new library and calls _init on it.\n//\nMixpanelLib.prototype._init = function(token, config, name) {\n config = config || {};\n\n this['__loaded'] = true;\n this['config'] = {};\n\n var variable_features = {};\n\n // default to JSON payload for standard mixpanel.com API hosts\n if (!('api_payload_format' in config)) {\n var api_host = config['api_host'] || DEFAULT_CONFIG['api_host'];\n if (api_host.match(/\\.mixpanel\\.com/)) {\n variable_features['api_payload_format'] = PAYLOAD_TYPE_JSON;\n }\n }\n\n this.set_config(_.extend({}, DEFAULT_CONFIG, variable_features, config, {\n 'name': name,\n 'token': token,\n 'callback_fn': ((name === PRIMARY_INSTANCE_NAME) ? name : PRIMARY_INSTANCE_NAME + '.' + name) + '._jsc'\n }));\n\n this['_jsc'] = NOOP_FUNC;\n\n this.__dom_loaded_queue = [];\n this.__request_queue = [];\n this.__disabled_events = [];\n this._flags = {\n 'disable_all_events': false,\n 'identify_called': false\n };\n\n // set up request queueing/batching\n this.request_batchers = {};\n this._batch_requests = this.get_config('batch_requests');\n if (this._batch_requests) {\n if (!_.localStorage.is_supported(true) || !USE_XHR) {\n this._batch_requests = false;\n console.log('Turning off Mixpanel request-queueing; needs XHR and localStorage support');\n _.each(this.get_batcher_configs(), function(batcher_config) {\n console.log('Clearing batch queue ' + batcher_config.queue_key);\n _.localStorage.remove(batcher_config.queue_key);\n });\n } else {\n this.init_batchers();\n if (sendBeacon && window$1.addEventListener) {\n // Before page closes or hides (user tabs away etc), attempt to flush any events\n // queued up via navigator.sendBeacon. Since sendBeacon doesn't report success/failure,\n // events will not be removed from the persistent store; if the site is loaded again,\n // the events will be flushed again on startup and deduplicated on the Mixpanel server\n // side.\n // There is no reliable way to capture only page close events, so we lean on the\n // visibilitychange and pagehide events as recommended at\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unload_event#usage_notes.\n // These events fire when the user clicks away from the current page/tab, so will occur\n // more frequently than page unload, but are the only mechanism currently for capturing\n // this scenario somewhat reliably.\n var flush_on_unload = _.bind(function() {\n if (!this.request_batchers.events.stopped) {\n this.request_batchers.events.flush({unloading: true});\n }\n }, this);\n window$1.addEventListener('pagehide', function(ev) {\n if (ev['persisted']) {\n flush_on_unload();\n }\n });\n window$1.addEventListener('visibilitychange', function() {\n if (document$1['visibilityState'] === 'hidden') {\n flush_on_unload();\n }\n });\n }\n }\n }\n\n this['persistence'] = this['cookie'] = new MixpanelPersistence(this['config']);\n this.unpersisted_superprops = {};\n this._gdpr_init();\n\n var uuid = _.UUID();\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n }\n\n if (this.get_config('track_pageview')) {\n this.track_pageview();\n }\n};\n\n// Private methods\n\nMixpanelLib.prototype._loaded = function() {\n this.get_config('loaded')(this);\n this._set_default_superprops();\n};\n\n// update persistence with info on referrer, UTM params, etc\nMixpanelLib.prototype._set_default_superprops = function() {\n this['persistence'].update_search_keyword(document$1.referrer);\n if (this.get_config('store_google')) {\n this.register(_.info.campaignParams());\n }\n if (this.get_config('save_referrer')) {\n this['persistence'].update_referrer_info(document$1.referrer);\n }\n};\n\nMixpanelLib.prototype._dom_loaded = function() {\n _.each(this.__dom_loaded_queue, function(item) {\n this._track_dom.apply(this, item);\n }, this);\n\n if (!this.has_opted_out_tracking()) {\n _.each(this.__request_queue, function(item) {\n this._send_request.apply(this, item);\n }, this);\n }\n\n delete this.__dom_loaded_queue;\n delete this.__request_queue;\n};\n\nMixpanelLib.prototype._track_dom = function(DomClass, args) {\n if (this.get_config('img')) {\n this.report_error('You can\\'t use DOM tracking functions with img = true.');\n return false;\n }\n\n if (!DOM_LOADED) {\n this.__dom_loaded_queue.push([DomClass, args]);\n return false;\n }\n\n var dt = new DomClass().init(this);\n return dt.track.apply(dt, args);\n};\n\n/**\n * _prepare_callback() should be called by callers of _send_request for use\n * as the callback argument.\n *\n * If there is no callback, this returns null.\n * If we are going to make XHR/XDR requests, this returns a function.\n * If we are going to use script tags, this returns a string to use as the\n * callback GET param.\n */\nMixpanelLib.prototype._prepare_callback = function(callback, data) {\n if (_.isUndefined(callback)) {\n return null;\n }\n\n if (USE_XHR) {\n var callback_function = function(response) {\n callback(response, data);\n };\n return callback_function;\n } else {\n // if the user gives us a callback, we store as a random\n // property on this instances jsc function and update our\n // callback string to reflect that.\n var jsc = this['_jsc'];\n var randomized_cb = '' + Math.floor(Math.random() * 100000000);\n var callback_string = this.get_config('callback_fn') + '[' + randomized_cb + ']';\n jsc[randomized_cb] = function(response) {\n delete jsc[randomized_cb];\n callback(response, data);\n };\n return callback_string;\n }\n};\n\nMixpanelLib.prototype._send_request = function(url, data, options, callback) {\n var succeeded = true;\n\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push(arguments);\n return succeeded;\n }\n\n var DEFAULT_OPTIONS = {\n method: this.get_config('api_method'),\n transport: this.get_config('api_transport'),\n verbose: this.get_config('verbose')\n };\n var body_data = null;\n\n if (!callback && (_.isFunction(options) || typeof options === 'string')) {\n callback = options;\n options = null;\n }\n options = _.extend(DEFAULT_OPTIONS, options || {});\n if (!USE_XHR) {\n options.method = 'GET';\n }\n var use_post = options.method === 'POST';\n var use_sendBeacon = sendBeacon && use_post && options.transport.toLowerCase() === 'sendbeacon';\n\n // needed to correctly format responses\n var verbose_mode = options.verbose;\n if (data['verbose']) { verbose_mode = true; }\n\n if (this.get_config('test')) { data['test'] = 1; }\n if (verbose_mode) { data['verbose'] = 1; }\n if (this.get_config('img')) { data['img'] = 1; }\n if (!USE_XHR) {\n if (callback) {\n data['callback'] = callback;\n } else if (verbose_mode || this.get_config('test')) {\n // Verbose output (from verbose mode, or an error in test mode) is a json blob,\n // which by itself is not valid javascript. Without a callback, this verbose output will\n // cause an error when returned via jsonp, so we force a no-op callback param.\n // See the ECMA script spec: http://www.ecma-international.org/ecma-262/5.1/#sec-12.4\n data['callback'] = '(function(){})';\n }\n }\n\n data['ip'] = this.get_config('ip')?1:0;\n data['_'] = new Date().getTime().toString();\n\n if (use_post) {\n body_data = 'data=' + encodeURIComponent(data['data']);\n delete data['data'];\n }\n\n url += '?' + _.HTTPBuildQuery(data);\n\n var lib = this;\n if ('img' in data) {\n var img = document$1.createElement('img');\n img.src = url;\n document$1.body.appendChild(img);\n } else if (use_sendBeacon) {\n try {\n succeeded = sendBeacon(url, body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n try {\n if (callback) {\n callback(succeeded ? 1 : 0);\n }\n } catch (e) {\n lib.report_error(e);\n }\n } else if (USE_XHR) {\n try {\n var req = new XMLHttpRequest();\n req.open(options.method, url, true);\n\n var headers = this.get_config('xhr_headers');\n if (use_post) {\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n _.each(headers, function(headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue);\n });\n\n if (options.timeout_ms && typeof req.timeout !== 'undefined') {\n req.timeout = options.timeout_ms;\n var start_time = new Date().getTime();\n }\n\n // send the mp_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true;\n req.onreadystatechange = function () {\n if (req.readyState === 4) { // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.status === 200) {\n if (callback) {\n if (verbose_mode) {\n var response;\n try {\n response = _.JSONDecode(req.responseText);\n } catch (e) {\n lib.report_error(e);\n if (options.ignore_json_errors) {\n response = req.responseText;\n } else {\n return;\n }\n }\n callback(response);\n } else {\n callback(Number(req.responseText));\n }\n }\n } else {\n var error;\n if (\n req.timeout &&\n !req.status &&\n new Date().getTime() - start_time >= req.timeout\n ) {\n error = 'timeout';\n } else {\n error = 'Bad HTTP status: ' + req.status + ' ' + req.statusText;\n }\n lib.report_error(error);\n if (callback) {\n if (verbose_mode) {\n callback({status: 0, error: error, xhr_req: req});\n } else {\n callback(0);\n }\n }\n }\n }\n };\n req.send(body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n } else {\n var script = document$1.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n var s = document$1.getElementsByTagName('script')[0];\n s.parentNode.insertBefore(script, s);\n }\n\n return succeeded;\n};\n\n/**\n * _execute_array() deals with processing any mixpanel function\n * calls that were called before the Mixpanel library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the mixpanel function calls && user defined\n * functions BEFORE we fire off mixpanel tracking calls. This is so\n * identify/register/set_config calls can properly modify early\n * tracking calls.\n *\n * @param {Array} array\n */\nMixpanelLib.prototype._execute_array = function(array) {\n var fn_name, alias_calls = [], other_calls = [], tracking_calls = [];\n _.each(array, function(item) {\n if (item) {\n fn_name = item[0];\n if (_.isArray(fn_name)) {\n tracking_calls.push(item); // chained call e.g. mixpanel.get_group().set()\n } else if (typeof(item) === 'function') {\n item.call(this);\n } else if (_.isArray(item) && fn_name === 'alias') {\n alias_calls.push(item);\n } else if (_.isArray(item) && fn_name.indexOf('track') !== -1 && typeof(this[fn_name]) === 'function') {\n tracking_calls.push(item);\n } else {\n other_calls.push(item);\n }\n }\n }, this);\n\n var execute = function(calls, context) {\n _.each(calls, function(item) {\n if (_.isArray(item[0])) {\n // chained call\n var caller = context;\n _.each(item, function(call) {\n caller = caller[call[0]].apply(caller, call.slice(1));\n });\n } else {\n this[item[0]].apply(this, item.slice(1));\n }\n }, context);\n };\n\n execute(alias_calls, this);\n execute(other_calls, this);\n execute(tracking_calls, this);\n};\n\n// request queueing utils\n\nMixpanelLib.prototype.are_batchers_initialized = function() {\n return !!this.request_batchers.events;\n};\n\nMixpanelLib.prototype.get_batcher_configs = function() {\n var queue_prefix = '__mpq_' + this.get_config('token');\n var api_routes = this.get_config('api_routes');\n this._batcher_configs = this._batcher_configs || {\n events: {type: 'events', endpoint: '/' + api_routes['track'], queue_key: queue_prefix + '_ev'},\n people: {type: 'people', endpoint: '/' + api_routes['engage'], queue_key: queue_prefix + '_pp'},\n groups: {type: 'groups', endpoint: '/' + api_routes['groups'], queue_key: queue_prefix + '_gr'}\n };\n return this._batcher_configs;\n};\n\nMixpanelLib.prototype.init_batchers = function() {\n if (!this.are_batchers_initialized()) {\n var batcher_for = _.bind(function(attrs) {\n return new RequestBatcher(\n attrs.queue_key,\n {\n libConfig: this['config'],\n sendRequestFunc: _.bind(function(data, options, cb) {\n this._send_request(\n this.get_config('api_host') + attrs.endpoint,\n this._encode_data_for_request(data),\n options,\n this._prepare_callback(cb, data)\n );\n }, this),\n beforeSendHook: _.bind(function(item) {\n return this._run_hook('before_send_' + attrs.type, item);\n }, this),\n errorReporter: this.get_config('error_reporter'),\n stopAllBatchingFunc: _.bind(this.stop_batch_senders, this)\n }\n );\n }, this);\n var batcher_configs = this.get_batcher_configs();\n this.request_batchers = {\n events: batcher_for(batcher_configs.events),\n people: batcher_for(batcher_configs.people),\n groups: batcher_for(batcher_configs.groups)\n };\n }\n if (this.get_config('batch_autostart')) {\n this.start_batch_senders();\n }\n};\n\nMixpanelLib.prototype.start_batch_senders = function() {\n this._batchers_were_started = true;\n if (this.are_batchers_initialized()) {\n this._batch_requests = true;\n _.each(this.request_batchers, function(batcher) {\n batcher.start();\n });\n }\n};\n\nMixpanelLib.prototype.stop_batch_senders = function() {\n this._batch_requests = false;\n _.each(this.request_batchers, function(batcher) {\n batcher.stop();\n batcher.clear();\n });\n};\n\n/**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * mixpanel.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\nMixpanelLib.prototype.push = function(item) {\n this._execute_array([item]);\n};\n\n/**\n * Disable events on the Mixpanel object. If passed no arguments,\n * this function disables tracking of any event. If passed an\n * array of event names, those events will be disabled, but other\n * events will continue to be tracked.\n *\n * Note: this function does not stop other mixpanel functions from\n * firing, such as register() or people.set().\n *\n * @param {Array} [events] An array of event names to disable\n */\nMixpanelLib.prototype.disable = function(events) {\n if (typeof(events) === 'undefined') {\n this._flags.disable_all_events = true;\n } else {\n this.__disabled_events = this.__disabled_events.concat(events);\n }\n};\n\nMixpanelLib.prototype._encode_data_for_request = function(data) {\n var encoded_data = _.JSONEncode(data);\n if (this.get_config('api_payload_format') === PAYLOAD_TYPE_BASE64) {\n encoded_data = _.base64Encode(encoded_data);\n }\n return {'data': encoded_data};\n};\n\n// internal method for handling track vs batch-enqueue logic\nMixpanelLib.prototype._track_or_batch = function(options, callback) {\n var truncated_data = _.truncate(options.data, 255);\n var endpoint = options.endpoint;\n var batcher = options.batcher;\n var should_send_immediately = options.should_send_immediately;\n var send_request_options = options.send_request_options || {};\n callback = callback || NOOP_FUNC;\n\n var request_enqueued_or_initiated = true;\n var send_request_immediately = _.bind(function() {\n if (!send_request_options.skip_hooks) {\n truncated_data = this._run_hook('before_send_' + options.type, truncated_data);\n }\n if (truncated_data) {\n console.log('MIXPANEL REQUEST:');\n console.log(truncated_data);\n return this._send_request(\n endpoint,\n this._encode_data_for_request(truncated_data),\n send_request_options,\n this._prepare_callback(callback, truncated_data)\n );\n } else {\n return null;\n }\n }, this);\n\n if (this._batch_requests && !should_send_immediately) {\n batcher.enqueue(truncated_data, function(succeeded) {\n if (succeeded) {\n callback(1, truncated_data);\n } else {\n send_request_immediately();\n }\n });\n } else {\n request_enqueued_or_initiated = send_request_immediately();\n }\n\n return request_enqueued_or_initiated && truncated_data;\n};\n\n/**\n * Track an event. This is the most important and\n * frequently used Mixpanel function.\n *\n * ### Usage:\n *\n * // track an event named 'Registered'\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // track an event using navigator.sendBeacon\n * mixpanel.track('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * To track link clicks or form submissions, see track_links() or track_forms().\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [options] Optional configuration for this track request.\n * @param {String} [options.transport] Transport method for network request ('xhr' or 'sendBeacon').\n * @param {Boolean} [options.send_immediately] Whether to bypass batching/queueing and send track request immediately.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track = addOptOutCheckMixpanelLib(function(event_name, properties, options, callback) {\n if (!callback && typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n var transport = options['transport']; // external API, don't minify 'transport' prop\n if (transport) {\n options.transport = transport; // 'transport' prop name can be minified internally\n }\n var should_send_immediately = options['send_immediately'];\n if (typeof callback !== 'function') {\n callback = NOOP_FUNC;\n }\n\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.track');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n callback(0);\n return;\n }\n\n // set defaults\n properties = _.extend({}, properties);\n properties['token'] = this.get_config('token');\n\n // set $duration if time_event was previously called for this event\n var start_timestamp = this['persistence'].remove_event_timer(event_name);\n if (!_.isUndefined(start_timestamp)) {\n var duration_in_ms = new Date().getTime() - start_timestamp;\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3));\n }\n\n this._set_default_superprops();\n\n var marketing_properties = this.get_config('track_marketing')\n ? _.info.marketingParams()\n : {};\n\n // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n\n // update properties with pageview info and super-properties\n properties = _.extend(\n {},\n _.info.properties(),\n marketing_properties,\n this['persistence'].properties(),\n this.unpersisted_superprops,\n properties\n );\n\n var property_blacklist = this.get_config('property_blacklist');\n if (_.isArray(property_blacklist)) {\n _.each(property_blacklist, function(blacklisted_prop) {\n delete properties[blacklisted_prop];\n });\n } else {\n this.report_error('Invalid value for property_blacklist config: ' + property_blacklist);\n }\n\n var data = {\n 'event': event_name,\n 'properties': properties\n };\n var ret = this._track_or_batch({\n type: 'events',\n data: data,\n endpoint: this.get_config('api_host') + '/' + this.get_config('api_routes')['track'],\n batcher: this.request_batchers.events,\n should_send_immediately: should_send_immediately,\n send_request_options: options\n }, callback);\n\n return ret;\n});\n\n/**\n * Register the current user into one/many groups.\n *\n * ### Usage:\n *\n * mixpanel.set_group('company', ['mixpanel', 'google']) // an array of IDs\n * mixpanel.set_group('company', 'mixpanel')\n * mixpanel.set_group('company', 128746312)\n *\n * @param {String} group_key Group key\n * @param {Array|String|Number} group_ids An array of group IDs, or a singular group ID\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n *\n */\nMixpanelLib.prototype.set_group = addOptOutCheckMixpanelLib(function(group_key, group_ids, callback) {\n if (!_.isArray(group_ids)) {\n group_ids = [group_ids];\n }\n var prop = {};\n prop[group_key] = group_ids;\n this.register(prop);\n return this['people'].set(group_key, group_ids, callback);\n});\n\n/**\n * Add a new group for this user.\n *\n * ### Usage:\n *\n * mixpanel.add_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.add_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_values = this.get_property(group_key);\n var prop = {};\n if (old_values === undefined) {\n prop[group_key] = [group_id];\n this.register(prop);\n } else {\n if (old_values.indexOf(group_id) === -1) {\n old_values.push(group_id);\n prop[group_key] = old_values;\n this.register(prop);\n }\n }\n return this['people'].union(group_key, group_id, callback);\n});\n\n/**\n * Remove a group from this user.\n *\n * ### Usage:\n *\n * mixpanel.remove_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.remove_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_value = this.get_property(group_key);\n // if the value doesn't exist, the persistent store is unchanged\n if (old_value !== undefined) {\n var idx = old_value.indexOf(group_id);\n if (idx > -1) {\n old_value.splice(idx, 1);\n this.register({group_key: old_value});\n }\n if (old_value.length === 0) {\n this.unregister(group_key);\n }\n }\n return this['people'].remove(group_key, group_id, callback);\n});\n\n/**\n * Track an event with specific groups.\n *\n * ### Usage:\n *\n * mixpanel.track_with_groups('purchase', {'product': 'iphone'}, {'University': ['UCB', 'UCLA']})\n *\n * @param {String} event_name The name of the event (see `mixpanel.track()`)\n * @param {Object=} properties A set of properties to include with the event you're sending (see `mixpanel.track()`)\n * @param {Object=} groups An object mapping group name keys to one or more values\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.track_with_groups = addOptOutCheckMixpanelLib(function(event_name, properties, groups, callback) {\n var tracking_props = _.extend({}, properties || {});\n _.each(groups, function(v, k) {\n if (v !== null && v !== undefined) {\n tracking_props[k] = v;\n }\n });\n return this.track(event_name, tracking_props, callback);\n});\n\nMixpanelLib.prototype._create_map_key = function (group_key, group_id) {\n return group_key + '_' + JSON.stringify(group_id);\n};\n\nMixpanelLib.prototype._remove_group_from_cache = function (group_key, group_id) {\n delete this._cached_groups[this._create_map_key(group_key, group_id)];\n};\n\n/**\n * Look up reference to a Mixpanel group\n *\n * ### Usage:\n *\n * mixpanel.get_group(group_key, group_id)\n *\n * @param {String} group_key Group key\n * @param {Object} group_id A valid Mixpanel property type\n * @returns {Object} A MixpanelGroup identifier\n */\nMixpanelLib.prototype.get_group = function (group_key, group_id) {\n var map_key = this._create_map_key(group_key, group_id);\n var group = this._cached_groups[map_key];\n if (group === undefined || group._group_key !== group_key || group._group_id !== group_id) {\n group = new MixpanelGroup();\n group._init(this, group_key, group_id);\n this._cached_groups[map_key] = group;\n }\n return group;\n};\n\n/**\n * Track a default Mixpanel page view event, which includes extra default event properties to\n * improve page view data. The `config.track_pageview` option for mixpanel.init()\n * may be turned on for tracking page loads automatically.\n *\n * ### Usage\n *\n * // track a default $mp_web_page_view event\n * mixpanel.track_pageview();\n *\n * // track a page view event with additional event properties\n * mixpanel.track_pageview({'ab_test_variant': 'card-layout-b'});\n *\n * // example approach to track page views on different page types as event properties\n * mixpanel.track_pageview({'page': 'pricing'});\n * mixpanel.track_pageview({'page': 'homepage'});\n *\n * // UNCOMMON: Tracking a page view event with a custom event_name option. NOT expected to be used for\n * // individual pages on the same site or product. Use cases for custom event_name may be page\n * // views on different products or internal applications that are considered completely separate\n * mixpanel.track_pageview({'page': 'customer-search'}, {'event_name': '[internal] Admin Page View'});\n *\n * @param {Object} [properties] An optional set of additional properties to send with the page view event\n * @param {Object} [options] Page view tracking options\n * @param {String} [options.event_name] - Alternate name for the tracking event\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track_pageview = addOptOutCheckMixpanelLib(function(properties, options) {\n if (typeof properties !== 'object') {\n properties = {};\n }\n options = options || {};\n var event_name = options['event_name'] || '$mp_web_page_view';\n\n var default_page_properties = _.extend(\n _.info.mpPageViewProperties(),\n _.info.campaignParams(),\n _.info.clickParams()\n );\n\n var event_properties = _.extend(\n {},\n default_page_properties,\n properties\n );\n\n return this.track(event_name, event_properties);\n});\n\n/**\n * Track clicks on a set of document elements. Selector must be a\n * valid query. Elements must exist on the page at the time track_links is called.\n *\n * ### Usage:\n *\n * // track click for link id #nav\n * mixpanel.track_links('#nav', 'Clicked Nav Link');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the Mixpanel\n * servers to respond. If they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] A properties object or function that returns a dictionary of properties when passed a DOMElement\n */\nMixpanelLib.prototype.track_links = function() {\n return this._track_dom.call(this, LinkTracker, arguments);\n};\n\n/**\n * Track form submissions. Selector must be a valid query.\n *\n * ### Usage:\n *\n * // track submission for form id 'register'\n * mixpanel.track_forms('#register', 'Created Account');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the mixpanel\n * servers to respond, if they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] This can be a set of properties, or a function that returns a set of properties after being passed a DOMElement\n */\nMixpanelLib.prototype.track_forms = function() {\n return this._track_dom.call(this, FormTracker, arguments);\n};\n\n/**\n * Time an event by including the time between this call and a\n * later 'track' call for the same event in the properties sent\n * with the event.\n *\n * ### Usage:\n *\n * // time an event named 'Registered'\n * mixpanel.time_event('Registered');\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * When called for a particular event name, the next track call for that event\n * name will include the elapsed time between the 'time_event' and 'track'\n * calls. This value is stored as seconds in the '$duration' property.\n *\n * @param {String} event_name The name of the event.\n */\nMixpanelLib.prototype.time_event = function(event_name) {\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.time_event');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n return;\n }\n\n this['persistence'].set_event_timer(event_name, new Date().getTime());\n};\n\nvar REGISTER_DEFAULTS = {\n 'persistent': true\n};\n/**\n * Helper to parse options param for register methods, maintaining\n * legacy support for plain \"days\" param instead of options object\n * @param {Number|Object} [days_or_options] 'days' option (Number), or Options object for register methods\n * @returns {Object} options object\n */\nvar options_for_register = function(days_or_options) {\n var options;\n if (_.isObject(days_or_options)) {\n options = days_or_options;\n } else if (!_.isUndefined(days_or_options)) {\n options = {'days': days_or_options};\n } else {\n options = {};\n }\n return _.extend({}, REGISTER_DEFAULTS, options);\n};\n\n/**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values.\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * mixpanel.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * mixpanel.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * // register only for the current pageload\n * mixpanel.register({'Name': 'Pat'}, {persistent: false});\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register = function(props, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register(props, options['days']);\n } else {\n _.extend(this.unpersisted_superprops, props);\n }\n};\n\n/**\n * Register a set of super properties only once. This will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * mixpanel.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * // register once, only for the current pageload\n * mixpanel.register_once({\n * 'First interaction time': new Date().toISOString()\n * }, 'None', {persistent: false});\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register_once = function(props, default_value, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register_once(props, default_value, options['days']);\n } else {\n if (typeof(default_value) === 'undefined') {\n default_value = 'None';\n }\n _.each(props, function(val, prop) {\n if (!this.unpersisted_superprops.hasOwnProperty(prop) || this.unpersisted_superprops[prop] === default_value) {\n this.unpersisted_superprops[prop] = val;\n }\n }, this);\n }\n};\n\n/**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n * @param {Object} [options]\n * @param {boolean} [options.persistent=true] - whether to look in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.unregister = function(property, options) {\n options = options_for_register(options);\n if (options['persistent']) {\n this['persistence'].unregister(property);\n } else {\n delete this.unpersisted_superprops[property];\n }\n};\n\nMixpanelLib.prototype._register_single = function(prop, value) {\n var props = {};\n props[prop] = value;\n this.register(props);\n};\n\n/**\n * Identify a user with a unique ID to track user activity across\n * devices, tie a user to their events, and create a user profile.\n * If you never call this method, unique visitors are tracked using\n * a UUID generated the first time they visit the site.\n *\n * Call identify when you know the identity of the current user,\n * typically after login or signup. We recommend against using\n * identify for anonymous visitors to your site.\n *\n * ### Notes:\n * If your project has\n * ID Merge\n * enabled, the identify method will connect pre- and\n * post-authentication events when appropriate.\n *\n * If your project does not have ID Merge enabled, identify will\n * change the user's local distinct_id to the unique ID you pass.\n * Events tracked prior to authentication will not be connected\n * to the same user identity. If ID Merge is disabled, alias can\n * be used to connect pre- and post-registration events.\n *\n * @param {String} [unique_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n */\nMixpanelLib.prototype.identify = function(\n new_distinct_id, _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n // Optional Parameters\n // _set_callback:function A callback to be run if and when the People set queue is flushed\n // _add_callback:function A callback to be run if and when the People add queue is flushed\n // _append_callback:function A callback to be run if and when the People append queue is flushed\n // _set_once_callback:function A callback to be run if and when the People set_once queue is flushed\n // _union_callback:function A callback to be run if and when the People union queue is flushed\n // _unset_callback:function A callback to be run if and when the People unset queue is flushed\n\n var previous_distinct_id = this.get_distinct_id();\n if (new_distinct_id && previous_distinct_id !== new_distinct_id) {\n // we allow the following condition if previous distinct_id is same as new_distinct_id\n // so that you can force flush people updates for anonymous profiles.\n if (typeof new_distinct_id === 'string' && new_distinct_id.indexOf(DEVICE_ID_PREFIX) === 0) {\n this.report_error('distinct_id cannot have $device: prefix');\n return -1;\n }\n this.register({'$user_id': new_distinct_id});\n }\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n var device_id = previous_distinct_id;\n this.register_once({\n '$had_persisted_distinct_id': true,\n '$device_id': device_id\n }, '');\n }\n\n // identify only changes the distinct id if it doesn't match either the existing or the alias;\n // if it's new, blow away the alias as well.\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY);\n this.register({'distinct_id': new_distinct_id});\n }\n this._flags.identify_called = true;\n // Flush any queued up people requests\n this['people']._flush(_set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback);\n\n // send an $identify event any time the distinct_id is changing - logic on the server\n // will determine whether or not to do anything with it.\n if (new_distinct_id !== previous_distinct_id) {\n this.track('$identify', {\n 'distinct_id': new_distinct_id,\n '$anon_distinct_id': previous_distinct_id\n }, {skip_hooks: true});\n }\n};\n\n/**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\nMixpanelLib.prototype.reset = function() {\n this['persistence'].clear();\n this._flags.identify_called = false;\n var uuid = _.UUID();\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n};\n\n/**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * distinct_id = mixpanel.get_distinct_id();\n * }\n * });\n */\nMixpanelLib.prototype.get_distinct_id = function() {\n return this.get_property('distinct_id');\n};\n\n/**\n * The alias method creates an alias which Mixpanel will use to\n * remap one id to another. Multiple aliases can point to the\n * same identifier.\n *\n * The following is a valid use of alias:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // You can add multiple id aliases to the existing ID\n * mixpanel.alias('newer_id', 'existing_id');\n *\n * Aliases can also be chained - the following is a valid example:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // chain newer_id - new_id - existing_id\n * mixpanel.alias('newer_id', 'new_id');\n *\n * Aliases cannot point to multiple identifiers - the following\n * example will not work:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // this is invalid as 'new_id' already points to 'existing_id'\n * mixpanel.alias('new_id', 'newer_id');\n *\n * ### Notes:\n *\n * If your project does not have\n * ID Merge\n * enabled, the best practice is to call alias once when a unique\n * ID is first created for a user (e.g., when a user first registers\n * for an account). Do not use alias multiple times for a single\n * user without ID Merge enabled.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\nMixpanelLib.prototype.alias = function(alias, original) {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // mixpanel.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n this.report_error('Attempting to create alias for existing People user - aborting.');\n return -2;\n }\n\n var _this = this;\n if (_.isUndefined(original)) {\n original = this.get_distinct_id();\n }\n if (alias !== original) {\n this._register_single(ALIAS_ID_KEY, alias);\n return this.track('$create_alias', {\n 'alias': alias,\n 'distinct_id': original\n }, {\n skip_hooks: true\n }, function() {\n // Flush the people queue\n _this.identify(alias);\n });\n } else {\n this.report_error('alias matches current distinct_id - skipping api call.');\n this.identify(alias);\n return -1;\n }\n};\n\n/**\n * Provide a string to recognize the user by. The string passed to\n * this method will appear in the Mixpanel Streams product rather\n * than an automatically generated name. Name tags do not have to\n * be unique.\n *\n * This value will only be included in Streams data.\n *\n * @param {String} name_tag A human readable name for the user\n * @deprecated\n */\nMixpanelLib.prototype.name_tag = function(name_tag) {\n this._register_single('mp_name_tag', name_tag);\n};\n\n/**\n * Update the configuration of a mixpanel library instance.\n *\n * The default config is:\n *\n * {\n * // host for requests (customizable for e.g. a local proxy)\n * api_host: 'https://api-js.mixpanel.com',\n *\n * // endpoints for different types of requests\n * api_routes: {\n * track: 'track/',\n * engage: 'engage/',\n * groups: 'groups/',\n * }\n *\n * // HTTP method for tracking requests\n * api_method: 'POST'\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. Mixpanel\n * // tracking via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // request-batching/queueing/retry\n * batch_requests: true,\n *\n * // maximum number of events/updates to send in a single\n * // network request\n * batch_size: 50,\n *\n * // milliseconds to wait between sending batch requests\n * batch_flush_interval_ms: 5000,\n *\n * // milliseconds to wait for network responses to batch requests\n * // before they are considered timed-out and retried\n * batch_request_timeout_ms: 90000,\n *\n * // override value for cookie domain, only useful for ensuring\n * // correct cross-subdomain cookies on unusual domains like\n * // subdomain.mainsite.avocat.fr; NB this cannot be used to\n * // set cookies on a different domain than the current origin\n * cookie_domain: ''\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // if true, cookie will be set with SameSite=None; Secure\n * // this is only useful in special situations, like embedded\n * // 3rd-party iframes that set up a Mixpanel instance\n * cross_site_cookie: false\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the mixpanel cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, Mixpanel will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of tracking by this Mixpanel instance by default\n * opt_out_tracking_by_default: false\n *\n * // opt users out of browser data storage by this Mixpanel instance by default\n * opt_out_persistence_by_default: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_tracking_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_tracking_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // mixpanel cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // names of properties/superproperties which should never\n * // be sent with track() calls\n * property_blacklist: []\n *\n * // if this is true, mixpanel cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // disables enriching user profiles with first touch marketing data\n * skip_first_touch_marketing: false\n *\n * // the amount of time track_links will\n * // wait for Mixpanel's servers to respond\n * track_links_timeout: 300\n *\n * // adds any UTM parameters and click IDs present on the page to any events fired\n * track_marketing: true\n *\n * // enables automatic page view tracking using default page view events through\n * // the track_pageview() method\n * track_pageview: false\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * xhr_headers: {}\n *\n * // whether to ignore or respect the web browser's Do Not Track setting\n * ignore_dnt: false\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\nMixpanelLib.prototype.set_config = function(config) {\n if (_.isObject(config)) {\n _.extend(this['config'], config);\n\n var new_batch_size = config['batch_size'];\n if (new_batch_size) {\n _.each(this.request_batchers, function(batcher) {\n batcher.resetBatchSize();\n });\n }\n\n if (!this.get_config('persistence_name')) {\n this['config']['persistence_name'] = this['config']['cookie_name'];\n }\n if (!this.get_config('disable_persistence')) {\n this['config']['disable_persistence'] = this['config']['disable_cookie'];\n }\n\n if (this['persistence']) {\n this['persistence'].update_config(this['config']);\n }\n Config.DEBUG = Config.DEBUG || this.get_config('debug');\n }\n};\n\n/**\n * returns the current config object for the library.\n */\nMixpanelLib.prototype.get_config = function(prop_name) {\n return this['config'][prop_name];\n};\n\n/**\n * Fetch a hook function from config, with safe default, and run it\n * against the given arguments\n * @param {string} hook_name which hook to retrieve\n * @returns {any|null} return value of user-provided hook, or null if nothing was returned\n */\nMixpanelLib.prototype._run_hook = function(hook_name) {\n var ret = (this['config']['hooks'][hook_name] || IDENTITY_FUNC).apply(this, slice.call(arguments, 1));\n if (typeof ret === 'undefined') {\n this.report_error(hook_name + ' hook did not return a value');\n ret = null;\n }\n return ret;\n};\n\n/**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * user_id = mixpanel.get_property('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\nMixpanelLib.prototype.get_property = function(property_name) {\n return this['persistence'].load_prop([property_name]);\n};\n\nMixpanelLib.prototype.toString = function() {\n var name = this.get_config('name');\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name;\n }\n return name;\n};\n\nMixpanelLib.prototype._event_is_disabled = function(event_name) {\n return _.isBlockedUA(userAgent) ||\n this._flags.disable_all_events ||\n _.include(this.__disabled_events, event_name);\n};\n\n// perform some housekeeping around GDPR opt-in/out state\nMixpanelLib.prototype._gdpr_init = function() {\n var is_localStorage_requested = this.get_config('opt_out_tracking_persistence_type') === 'localStorage';\n\n // try to convert opt-in/out cookies to localStorage if possible\n if (is_localStorage_requested && _.localStorage.is_supported()) {\n if (!this.has_opted_in_tracking() && this.has_opted_in_tracking({'persistence_type': 'cookie'})) {\n this.opt_in_tracking({'enable_persistence': false});\n }\n if (!this.has_opted_out_tracking() && this.has_opted_out_tracking({'persistence_type': 'cookie'})) {\n this.opt_out_tracking({'clear_persistence': false});\n }\n this.clear_opt_in_out_tracking({\n 'persistence_type': 'cookie',\n 'enable_persistence': false\n });\n }\n\n // check whether the user has already opted out - if so, clear & disable persistence\n if (this.has_opted_out_tracking()) {\n this._gdpr_update_persistence({'clear_persistence': true});\n\n // check whether we should opt out by default\n // note: we don't clear persistence here by default since opt-out default state is often\n // used as an initial state while GDPR information is being collected\n } else if (!this.has_opted_in_tracking() && (\n this.get_config('opt_out_tracking_by_default') || _.cookie.get('mp_optout')\n )) {\n _.cookie.remove('mp_optout');\n this.opt_out_tracking({\n 'clear_persistence': this.get_config('opt_out_persistence_by_default')\n });\n }\n};\n\n/**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [options.clear_persistence] If true, will delete all data stored by the sdk in persistence and disable it\n * @param {boolean} [options.enable_persistence] If true, will re-enable sdk persistence\n */\nMixpanelLib.prototype._gdpr_update_persistence = function(options) {\n var disabled;\n if (options && options['clear_persistence']) {\n disabled = true;\n } else if (options && options['enable_persistence']) {\n disabled = false;\n } else {\n return;\n }\n\n if (!this.get_config('disable_persistence') && this['persistence'].disabled !== disabled) {\n this['persistence'].set_disabled(disabled);\n }\n\n if (disabled) {\n this.stop_batch_senders();\n } else {\n // only start batchers after opt-in if they have previously been started\n // in order to avoid unintentionally starting up batching for the first time\n if (this._batchers_were_started) {\n this.start_batch_senders();\n }\n }\n};\n\n// call a base gdpr function after constructing the appropriate token and options args\nMixpanelLib.prototype._gdpr_call_func = function(func, options) {\n options = _.extend({\n 'track': _.bind(this.track, this),\n 'persistence_type': this.get_config('opt_out_tracking_persistence_type'),\n 'cookie_prefix': this.get_config('opt_out_tracking_cookie_prefix'),\n 'cookie_expiration': this.get_config('cookie_expiration'),\n 'cross_site_cookie': this.get_config('cross_site_cookie'),\n 'cross_subdomain_cookie': this.get_config('cross_subdomain_cookie'),\n 'cookie_domain': this.get_config('cookie_domain'),\n 'secure_cookie': this.get_config('secure_cookie'),\n 'ignore_dnt': this.get_config('ignore_dnt')\n }, options);\n\n // check if localStorage can be used for recording opt out status, fall back to cookie if not\n if (!_.localStorage.is_supported()) {\n options['persistence_type'] = 'cookie';\n }\n\n return func(this.get_config('token'), {\n track: options['track'],\n trackEventName: options['track_event_name'],\n trackProperties: options['track_properties'],\n persistenceType: options['persistence_type'],\n persistencePrefix: options['cookie_prefix'],\n cookieDomain: options['cookie_domain'],\n cookieExpiration: options['cookie_expiration'],\n crossSiteCookie: options['cross_site_cookie'],\n crossSubdomainCookie: options['cross_subdomain_cookie'],\n secureCookie: options['secure_cookie'],\n ignoreDnt: options['ignore_dnt']\n });\n};\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * // opt user in\n * mixpanel.opt_in_tracking();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * mixpanel.opt_in_tracking({\n * track_event_name: 'User opted in',\n * track_event_properties: {\n * 'Email': 'jdoe@example.com'\n * },\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {function} [options.track] Function used for tracking a Mixpanel event to record the opt-in action (default is this Mixpanel instance's track method)\n * @param {string} [options.track_event_name=$opt_in] Event name to be used for tracking the opt-in action\n * @param {Object} [options.track_properties] Set of properties to be tracked along with the opt-in action\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_in_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(optIn, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * // opt user out\n * mixpanel.opt_out_tracking();\n *\n * // opt user out with different cookie configuration from Mixpanel instance\n * mixpanel.opt_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.delete_user=true] If true, will delete the currently identified user's profile and clear all charges after opting the user out\n * @param {boolean} [options.clear_persistence=true] If true, will delete all data stored by the sdk in persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_out_tracking = function(options) {\n options = _.extend({\n 'clear_persistence': true,\n 'delete_user': true\n }, options);\n\n // delete user and clear charges since these methods may be disabled by opt-out\n if (options['delete_user'] && this['people'] && this['people']._identify_called()) {\n this['people'].delete_user();\n this['people'].clear_charges();\n }\n\n this._gdpr_call_func(optOut, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * var has_opted_in = mixpanel.has_opted_in_tracking();\n * // use has_opted_in value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-in status\n */\nMixpanelLib.prototype.has_opted_in_tracking = function(options) {\n return this._gdpr_call_func(hasOptedIn, options);\n};\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * var has_opted_out = mixpanel.has_opted_out_tracking();\n * // use has_opted_out value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-out status\n */\nMixpanelLib.prototype.has_opted_out_tracking = function(options) {\n return this._gdpr_call_func(hasOptedOut, options);\n};\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * // clear user's opt-in/out status\n * mixpanel.clear_opt_in_out_tracking();\n *\n * // clear user's opt-in/out status with specific cookie configuration - should match\n * // configuration used when opt_in_tracking/opt_out_tracking methods were called.\n * mixpanel.clear_opt_in_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.clear_opt_in_out_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(clearOptInOut, options);\n this._gdpr_update_persistence(options);\n};\n\nMixpanelLib.prototype.report_error = function(msg, err) {\n console.error.apply(console.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.get_config('error_reporter')(msg, err);\n } catch(err) {\n console.error(err);\n }\n};\n\n// EXPORTS (for closure compiler)\n\n// MixpanelLib Exports\nMixpanelLib.prototype['init'] = MixpanelLib.prototype.init;\nMixpanelLib.prototype['reset'] = MixpanelLib.prototype.reset;\nMixpanelLib.prototype['disable'] = MixpanelLib.prototype.disable;\nMixpanelLib.prototype['time_event'] = MixpanelLib.prototype.time_event;\nMixpanelLib.prototype['track'] = MixpanelLib.prototype.track;\nMixpanelLib.prototype['track_links'] = MixpanelLib.prototype.track_links;\nMixpanelLib.prototype['track_forms'] = MixpanelLib.prototype.track_forms;\nMixpanelLib.prototype['track_pageview'] = MixpanelLib.prototype.track_pageview;\nMixpanelLib.prototype['register'] = MixpanelLib.prototype.register;\nMixpanelLib.prototype['register_once'] = MixpanelLib.prototype.register_once;\nMixpanelLib.prototype['unregister'] = MixpanelLib.prototype.unregister;\nMixpanelLib.prototype['identify'] = MixpanelLib.prototype.identify;\nMixpanelLib.prototype['alias'] = MixpanelLib.prototype.alias;\nMixpanelLib.prototype['name_tag'] = MixpanelLib.prototype.name_tag;\nMixpanelLib.prototype['set_config'] = MixpanelLib.prototype.set_config;\nMixpanelLib.prototype['get_config'] = MixpanelLib.prototype.get_config;\nMixpanelLib.prototype['get_property'] = MixpanelLib.prototype.get_property;\nMixpanelLib.prototype['get_distinct_id'] = MixpanelLib.prototype.get_distinct_id;\nMixpanelLib.prototype['toString'] = MixpanelLib.prototype.toString;\nMixpanelLib.prototype['opt_out_tracking'] = MixpanelLib.prototype.opt_out_tracking;\nMixpanelLib.prototype['opt_in_tracking'] = MixpanelLib.prototype.opt_in_tracking;\nMixpanelLib.prototype['has_opted_out_tracking'] = MixpanelLib.prototype.has_opted_out_tracking;\nMixpanelLib.prototype['has_opted_in_tracking'] = MixpanelLib.prototype.has_opted_in_tracking;\nMixpanelLib.prototype['clear_opt_in_out_tracking'] = MixpanelLib.prototype.clear_opt_in_out_tracking;\nMixpanelLib.prototype['get_group'] = MixpanelLib.prototype.get_group;\nMixpanelLib.prototype['set_group'] = MixpanelLib.prototype.set_group;\nMixpanelLib.prototype['add_group'] = MixpanelLib.prototype.add_group;\nMixpanelLib.prototype['remove_group'] = MixpanelLib.prototype.remove_group;\nMixpanelLib.prototype['track_with_groups'] = MixpanelLib.prototype.track_with_groups;\nMixpanelLib.prototype['start_batch_senders'] = MixpanelLib.prototype.start_batch_senders;\nMixpanelLib.prototype['stop_batch_senders'] = MixpanelLib.prototype.stop_batch_senders;\nMixpanelLib.prototype['DEFAULT_API_ROUTES'] = DEFAULT_API_ROUTES;\n\n// MixpanelPersistence Exports\nMixpanelPersistence.prototype['properties'] = MixpanelPersistence.prototype.properties;\nMixpanelPersistence.prototype['update_search_keyword'] = MixpanelPersistence.prototype.update_search_keyword;\nMixpanelPersistence.prototype['update_referrer_info'] = MixpanelPersistence.prototype.update_referrer_info;\nMixpanelPersistence.prototype['get_cross_subdomain'] = MixpanelPersistence.prototype.get_cross_subdomain;\nMixpanelPersistence.prototype['clear'] = MixpanelPersistence.prototype.clear;\n\n\nvar instances = {};\nvar extend_mp = function() {\n // add all the sub mixpanel instances\n _.each(instances, function(instance, name) {\n if (name !== PRIMARY_INSTANCE_NAME) { mixpanel_master[name] = instance; }\n });\n\n // add private functions as _\n mixpanel_master['_'] = _;\n};\n\nvar override_mp_init_func = function() {\n // we override the snippets init function to handle the case where a\n // user initializes the mixpanel library after the script loads & runs\n mixpanel_master['init'] = function(token, config, name) {\n if (name) {\n // initialize a sub library\n if (!mixpanel_master[name]) {\n mixpanel_master[name] = instances[name] = create_mplib(token, config, name);\n mixpanel_master[name]._loaded();\n }\n return mixpanel_master[name];\n } else {\n var instance = mixpanel_master;\n\n if (instances[PRIMARY_INSTANCE_NAME]) {\n // main mixpanel lib already initialized\n instance = instances[PRIMARY_INSTANCE_NAME];\n } else if (token) {\n // intialize the main mixpanel lib\n instance = create_mplib(token, config, PRIMARY_INSTANCE_NAME);\n instance._loaded();\n instances[PRIMARY_INSTANCE_NAME] = instance;\n }\n\n mixpanel_master = instance;\n if (init_type === INIT_SNIPPET) {\n window$1[PRIMARY_INSTANCE_NAME] = mixpanel_master;\n }\n extend_mp();\n }\n };\n};\n\nvar add_dom_loaded_handler = function() {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if (dom_loaded_handler.done) { return; }\n dom_loaded_handler.done = true;\n\n DOM_LOADED = true;\n ENQUEUE_REQUESTS = false;\n\n _.each(instances, function(inst) {\n inst._dom_loaded();\n });\n }\n\n function do_scroll_check() {\n try {\n document$1.documentElement.doScroll('left');\n } catch(e) {\n setTimeout(do_scroll_check, 1);\n return;\n }\n\n dom_loaded_handler();\n }\n\n if (document$1.addEventListener) {\n if (document$1.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler();\n } else {\n document$1.addEventListener('DOMContentLoaded', dom_loaded_handler, false);\n }\n } else if (document$1.attachEvent) {\n // IE\n document$1.attachEvent('onreadystatechange', dom_loaded_handler);\n\n // check to make sure we arn't in a frame\n var toplevel = false;\n try {\n toplevel = window$1.frameElement === null;\n } catch(e) {\n // noop\n }\n\n if (document$1.documentElement.doScroll && toplevel) {\n do_scroll_check();\n }\n }\n\n // fallback handler, always will work\n _.register_event(window$1, 'load', dom_loaded_handler, true);\n};\n\nfunction init_as_module() {\n init_type = INIT_MODULE;\n mixpanel_master = new MixpanelLib();\n\n override_mp_init_func();\n mixpanel_master['init']();\n add_dom_loaded_handler();\n\n return mixpanel_master;\n}\n\nvar mixpanel = init_as_module();\n\nmodule.exports = mixpanel;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var getNanoSeconds, hrtime, loadTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n","/*!\n * Platform.js v1.3.6\n * Copyright 2014-2020 Benjamin Tan\n * Copyright 2011-2013 John-David Dalton\n * Available under MIT license\n */\n;(function() {\n 'use strict';\n\n /** Used to determine if values are of the language type `Object`. */\n var objectTypes = {\n 'function': true,\n 'object': true\n };\n\n /** Used as a reference to the global object. */\n var root = (objectTypes[typeof window] && window) || this;\n\n /** Backup possible global object. */\n var oldRoot = root;\n\n /** Detect free variable `exports`. */\n var freeExports = objectTypes[typeof exports] && exports;\n\n /** Detect free variable `module`. */\n var freeModule = objectTypes[typeof module] && module && !module.nodeType && module;\n\n /** Detect free variable `global` from Node.js or Browserified code and use it as `root`. */\n var freeGlobal = freeExports && freeModule && typeof global == 'object' && global;\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n }\n\n /**\n * Used as the maximum length of an array-like object.\n * See the [ES6 spec](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)\n * for more details.\n */\n var maxSafeInteger = Math.pow(2, 53) - 1;\n\n /** Regular expression to detect Opera. */\n var reOpera = /\\bOpera/;\n\n /** Possible global object. */\n var thisBinding = this;\n\n /** Used for native method references. */\n var objectProto = Object.prototype;\n\n /** Used to check for own properties of an object. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to resolve the internal `[[Class]]` of values. */\n var toString = objectProto.toString;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Capitalizes a string value.\n *\n * @private\n * @param {string} string The string to capitalize.\n * @returns {string} The capitalized string.\n */\n function capitalize(string) {\n string = String(string);\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n /**\n * A utility function to clean up the OS name.\n *\n * @private\n * @param {string} os The OS name to clean up.\n * @param {string} [pattern] A `RegExp` pattern matching the OS name.\n * @param {string} [label] A label for the OS.\n */\n function cleanupOS(os, pattern, label) {\n // Platform tokens are defined at:\n // http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n // http://web.archive.org/web/20081122053950/http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n var data = {\n '10.0': '10',\n '6.4': '10 Technical Preview',\n '6.3': '8.1',\n '6.2': '8',\n '6.1': 'Server 2008 R2 / 7',\n '6.0': 'Server 2008 / Vista',\n '5.2': 'Server 2003 / XP 64-bit',\n '5.1': 'XP',\n '5.01': '2000 SP1',\n '5.0': '2000',\n '4.0': 'NT',\n '4.90': 'ME'\n };\n // Detect Windows version from platform tokens.\n if (pattern && label && /^Win/i.test(os) && !/^Windows Phone /i.test(os) &&\n (data = data[/[\\d.]+$/.exec(os)])) {\n os = 'Windows ' + data;\n }\n // Correct character case and cleanup string.\n os = String(os);\n\n if (pattern && label) {\n os = os.replace(RegExp(pattern, 'i'), label);\n }\n\n os = format(\n os.replace(/ ce$/i, ' CE')\n .replace(/\\bhpw/i, 'web')\n .replace(/\\bMacintosh\\b/, 'Mac OS')\n .replace(/_PowerPC\\b/i, ' OS')\n .replace(/\\b(OS X) [^ \\d]+/i, '$1')\n .replace(/\\bMac (OS X)\\b/, '$1')\n .replace(/\\/(\\d)/, ' $1')\n .replace(/_/g, '.')\n .replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, '')\n .replace(/\\bx86\\.64\\b/gi, 'x86_64')\n .replace(/\\b(Windows Phone) OS\\b/, '$1')\n .replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, '$1')\n .split(' on ')[0]\n );\n\n return os;\n }\n\n /**\n * An iteration utility for arrays and objects.\n *\n * @private\n * @param {Array|Object} object The object to iterate over.\n * @param {Function} callback The function called per iteration.\n */\n function each(object, callback) {\n var index = -1,\n length = object ? object.length : 0;\n\n if (typeof length == 'number' && length > -1 && length <= maxSafeInteger) {\n while (++index < length) {\n callback(object[index], index, object);\n }\n } else {\n forOwn(object, callback);\n }\n }\n\n /**\n * Trim and conditionally capitalize string values.\n *\n * @private\n * @param {string} string The string to format.\n * @returns {string} The formatted string.\n */\n function format(string) {\n string = trim(string);\n return /^(?:webOS|i(?:OS|P))/.test(string)\n ? string\n : capitalize(string);\n }\n\n /**\n * Iterates over an object's own properties, executing the `callback` for each.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} callback The function executed per own property.\n */\n function forOwn(object, callback) {\n for (var key in object) {\n if (hasOwnProperty.call(object, key)) {\n callback(object[key], key, object);\n }\n }\n }\n\n /**\n * Gets the internal `[[Class]]` of a value.\n *\n * @private\n * @param {*} value The value.\n * @returns {string} The `[[Class]]`.\n */\n function getClassOf(value) {\n return value == null\n ? capitalize(value)\n : toString.call(value).slice(8, -1);\n }\n\n /**\n * Host objects can return type values that are different from their actual\n * data type. The objects we are concerned with usually return non-primitive\n * types of \"object\", \"function\", or \"unknown\".\n *\n * @private\n * @param {*} object The owner of the property.\n * @param {string} property The property to check.\n * @returns {boolean} Returns `true` if the property value is a non-primitive, else `false`.\n */\n function isHostType(object, property) {\n var type = object != null ? typeof object[property] : 'number';\n return !/^(?:boolean|number|string|undefined)$/.test(type) &&\n (type == 'object' ? !!object[property] : true);\n }\n\n /**\n * Prepares a string for use in a `RegExp` by making hyphens and spaces optional.\n *\n * @private\n * @param {string} string The string to qualify.\n * @returns {string} The qualified string.\n */\n function qualify(string) {\n return String(string).replace(/([ -])(?!$)/g, '$1?');\n }\n\n /**\n * A bare-bones `Array#reduce` like utility function.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function called per iteration.\n * @returns {*} The accumulated result.\n */\n function reduce(array, callback) {\n var accumulator = null;\n each(array, function(value, index) {\n accumulator = callback(accumulator, value, index, array);\n });\n return accumulator;\n }\n\n /**\n * Removes leading and trailing whitespace from a string.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} The trimmed string.\n */\n function trim(string) {\n return String(string).replace(/^ +| +$/g, '');\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Creates a new platform object.\n *\n * @memberOf platform\n * @param {Object|string} [ua=navigator.userAgent] The user agent string or\n * context object.\n * @returns {Object} A platform object.\n */\n function parse(ua) {\n\n /** The environment context object. */\n var context = root;\n\n /** Used to flag when a custom context is provided. */\n var isCustomContext = ua && typeof ua == 'object' && getClassOf(ua) != 'String';\n\n // Juggle arguments.\n if (isCustomContext) {\n context = ua;\n ua = null;\n }\n\n /** Browser navigator object. */\n var nav = context.navigator || {};\n\n /** Browser user agent string. */\n var userAgent = nav.userAgent || '';\n\n ua || (ua = userAgent);\n\n /** Used to flag when `thisBinding` is the [ModuleScope]. */\n var isModuleScope = isCustomContext || thisBinding == oldRoot;\n\n /** Used to detect if browser is like Chrome. */\n var likeChrome = isCustomContext\n ? !!nav.likeChrome\n : /\\bChrome\\b/.test(ua) && !/internal|\\n/i.test(toString.toString());\n\n /** Internal `[[Class]]` value shortcuts. */\n var objectClass = 'Object',\n airRuntimeClass = isCustomContext ? objectClass : 'ScriptBridgingProxyObject',\n enviroClass = isCustomContext ? objectClass : 'Environment',\n javaClass = (isCustomContext && context.java) ? 'JavaPackage' : getClassOf(context.java),\n phantomClass = isCustomContext ? objectClass : 'RuntimeObject';\n\n /** Detect Java environments. */\n var java = /\\bJava/.test(javaClass) && context.java;\n\n /** Detect Rhino. */\n var rhino = java && getClassOf(context.environment) == enviroClass;\n\n /** A character to represent alpha. */\n var alpha = java ? 'a' : '\\u03b1';\n\n /** A character to represent beta. */\n var beta = java ? 'b' : '\\u03b2';\n\n /** Browser document object. */\n var doc = context.document || {};\n\n /**\n * Detect Opera browser (Presto-based).\n * http://www.howtocreate.co.uk/operaStuff/operaObject.html\n * http://dev.opera.com/articles/view/opera-mini-web-content-authoring-guidelines/#operamini\n */\n var opera = context.operamini || context.opera;\n\n /** Opera `[[Class]]`. */\n var operaClass = reOpera.test(operaClass = (isCustomContext && opera) ? opera['[[Class]]'] : getClassOf(opera))\n ? operaClass\n : (opera = null);\n\n /*------------------------------------------------------------------------*/\n\n /** Temporary variable used over the script's lifetime. */\n var data;\n\n /** The CPU architecture. */\n var arch = ua;\n\n /** Platform description array. */\n var description = [];\n\n /** Platform alpha/beta indicator. */\n var prerelease = null;\n\n /** A flag to indicate that environment features should be used to resolve the platform. */\n var useFeatures = ua == userAgent;\n\n /** The browser/environment version. */\n var version = useFeatures && opera && typeof opera.version == 'function' && opera.version();\n\n /** A flag to indicate if the OS ends with \"/ Version\" */\n var isSpecialCasedOS;\n\n /* Detectable layout engines (order is important). */\n var layout = getLayout([\n { 'label': 'EdgeHTML', 'pattern': 'Edge' },\n 'Trident',\n { 'label': 'WebKit', 'pattern': 'AppleWebKit' },\n 'iCab',\n 'Presto',\n 'NetFront',\n 'Tasman',\n 'KHTML',\n 'Gecko'\n ]);\n\n /* Detectable browser names (order is important). */\n var name = getName([\n 'Adobe AIR',\n 'Arora',\n 'Avant Browser',\n 'Breach',\n 'Camino',\n 'Electron',\n 'Epiphany',\n 'Fennec',\n 'Flock',\n 'Galeon',\n 'GreenBrowser',\n 'iCab',\n 'Iceweasel',\n 'K-Meleon',\n 'Konqueror',\n 'Lunascape',\n 'Maxthon',\n { 'label': 'Microsoft Edge', 'pattern': '(?:Edge|Edg|EdgA|EdgiOS)' },\n 'Midori',\n 'Nook Browser',\n 'PaleMoon',\n 'PhantomJS',\n 'Raven',\n 'Rekonq',\n 'RockMelt',\n { 'label': 'Samsung Internet', 'pattern': 'SamsungBrowser' },\n 'SeaMonkey',\n { 'label': 'Silk', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Sleipnir',\n 'SlimBrowser',\n { 'label': 'SRWare Iron', 'pattern': 'Iron' },\n 'Sunrise',\n 'Swiftfox',\n 'Vivaldi',\n 'Waterfox',\n 'WebPositive',\n { 'label': 'Yandex Browser', 'pattern': 'YaBrowser' },\n { 'label': 'UC Browser', 'pattern': 'UCBrowser' },\n 'Opera Mini',\n { 'label': 'Opera Mini', 'pattern': 'OPiOS' },\n 'Opera',\n { 'label': 'Opera', 'pattern': 'OPR' },\n 'Chromium',\n 'Chrome',\n { 'label': 'Chrome', 'pattern': '(?:HeadlessChrome)' },\n { 'label': 'Chrome Mobile', 'pattern': '(?:CriOS|CrMo)' },\n { 'label': 'Firefox', 'pattern': '(?:Firefox|Minefield)' },\n { 'label': 'Firefox for iOS', 'pattern': 'FxiOS' },\n { 'label': 'IE', 'pattern': 'IEMobile' },\n { 'label': 'IE', 'pattern': 'MSIE' },\n 'Safari'\n ]);\n\n /* Detectable products (order is important). */\n var product = getProduct([\n { 'label': 'BlackBerry', 'pattern': 'BB10' },\n 'BlackBerry',\n { 'label': 'Galaxy S', 'pattern': 'GT-I9000' },\n { 'label': 'Galaxy S2', 'pattern': 'GT-I9100' },\n { 'label': 'Galaxy S3', 'pattern': 'GT-I9300' },\n { 'label': 'Galaxy S4', 'pattern': 'GT-I9500' },\n { 'label': 'Galaxy S5', 'pattern': 'SM-G900' },\n { 'label': 'Galaxy S6', 'pattern': 'SM-G920' },\n { 'label': 'Galaxy S6 Edge', 'pattern': 'SM-G925' },\n { 'label': 'Galaxy S7', 'pattern': 'SM-G930' },\n { 'label': 'Galaxy S7 Edge', 'pattern': 'SM-G935' },\n 'Google TV',\n 'Lumia',\n 'iPad',\n 'iPod',\n 'iPhone',\n 'Kindle',\n { 'label': 'Kindle Fire', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Nexus',\n 'Nook',\n 'PlayBook',\n 'PlayStation Vita',\n 'PlayStation',\n 'TouchPad',\n 'Transformer',\n { 'label': 'Wii U', 'pattern': 'WiiU' },\n 'Wii',\n 'Xbox One',\n { 'label': 'Xbox 360', 'pattern': 'Xbox' },\n 'Xoom'\n ]);\n\n /* Detectable manufacturers. */\n var manufacturer = getManufacturer({\n 'Apple': { 'iPad': 1, 'iPhone': 1, 'iPod': 1 },\n 'Alcatel': {},\n 'Archos': {},\n 'Amazon': { 'Kindle': 1, 'Kindle Fire': 1 },\n 'Asus': { 'Transformer': 1 },\n 'Barnes & Noble': { 'Nook': 1 },\n 'BlackBerry': { 'PlayBook': 1 },\n 'Google': { 'Google TV': 1, 'Nexus': 1 },\n 'HP': { 'TouchPad': 1 },\n 'HTC': {},\n 'Huawei': {},\n 'Lenovo': {},\n 'LG': {},\n 'Microsoft': { 'Xbox': 1, 'Xbox One': 1 },\n 'Motorola': { 'Xoom': 1 },\n 'Nintendo': { 'Wii U': 1, 'Wii': 1 },\n 'Nokia': { 'Lumia': 1 },\n 'Oppo': {},\n 'Samsung': { 'Galaxy S': 1, 'Galaxy S2': 1, 'Galaxy S3': 1, 'Galaxy S4': 1 },\n 'Sony': { 'PlayStation': 1, 'PlayStation Vita': 1 },\n 'Xiaomi': { 'Mi': 1, 'Redmi': 1 }\n });\n\n /* Detectable operating systems (order is important). */\n var os = getOS([\n 'Windows Phone',\n 'KaiOS',\n 'Android',\n 'CentOS',\n { 'label': 'Chrome OS', 'pattern': 'CrOS' },\n 'Debian',\n { 'label': 'DragonFly BSD', 'pattern': 'DragonFly' },\n 'Fedora',\n 'FreeBSD',\n 'Gentoo',\n 'Haiku',\n 'Kubuntu',\n 'Linux Mint',\n 'OpenBSD',\n 'Red Hat',\n 'SuSE',\n 'Ubuntu',\n 'Xubuntu',\n 'Cygwin',\n 'Symbian OS',\n 'hpwOS',\n 'webOS ',\n 'webOS',\n 'Tablet OS',\n 'Tizen',\n 'Linux',\n 'Mac OS X',\n 'Macintosh',\n 'Mac',\n 'Windows 98;',\n 'Windows '\n ]);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Picks the layout engine from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected layout engine.\n */\n function getLayout(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the manufacturer from an array of guesses.\n *\n * @private\n * @param {Array} guesses An object of guesses.\n * @returns {null|string} The detected manufacturer.\n */\n function getManufacturer(guesses) {\n return reduce(guesses, function(result, value, key) {\n // Lookup the manufacturer by product or scan the UA for the manufacturer.\n return result || (\n value[product] ||\n value[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(product)] ||\n RegExp('\\\\b' + qualify(key) + '(?:\\\\b|\\\\w*\\\\d)', 'i').exec(ua)\n ) && key;\n });\n }\n\n /**\n * Picks the browser name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected browser name.\n */\n function getName(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the OS name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected OS name.\n */\n function getOS(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + '(?:/[\\\\d.]+|[ \\\\w.]*)', 'i').exec(ua)\n )) {\n result = cleanupOS(result, pattern, guess.label || guess);\n }\n return result;\n });\n }\n\n /**\n * Picks the product name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected product name.\n */\n function getProduct(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + ' *\\\\d+[.\\\\w_]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + ' *\\\\w+-[\\\\w]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + '(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)', 'i').exec(ua)\n )) {\n // Split by forward slash and append product version if needed.\n if ((result = String((guess.label && !RegExp(pattern, 'i').test(guess.label)) ? guess.label : result).split('/'))[1] && !/[\\d.]+/.test(result[0])) {\n result[0] += ' ' + result[1];\n }\n // Correct character case and cleanup string.\n guess = guess.label || guess;\n result = format(result[0]\n .replace(RegExp(pattern, 'i'), guess)\n .replace(RegExp('; *(?:' + guess + '[_-])?', 'i'), ' ')\n .replace(RegExp('(' + guess + ')[-_.]?(\\\\w)', 'i'), '$1 $2'));\n }\n return result;\n });\n }\n\n /**\n * Resolves the version using an array of UA patterns.\n *\n * @private\n * @param {Array} patterns An array of UA patterns.\n * @returns {null|string} The detected version.\n */\n function getVersion(patterns) {\n return reduce(patterns, function(result, pattern) {\n return result || (RegExp(pattern +\n '(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)', 'i').exec(ua) || 0)[1] || null;\n });\n }\n\n /**\n * Returns `platform.description` when the platform object is coerced to a string.\n *\n * @name toString\n * @memberOf platform\n * @returns {string} Returns `platform.description` if available, else an empty string.\n */\n function toStringPlatform() {\n return this.description || '';\n }\n\n /*------------------------------------------------------------------------*/\n\n // Convert layout to an array so we can add extra details.\n layout && (layout = [layout]);\n\n // Detect Android products.\n // Browsers on Android devices typically provide their product IDS after \"Android;\"\n // up to \"Build\" or \") AppleWebKit\".\n // Example:\n // \"Mozilla/5.0 (Linux; Android 8.1.0; Moto G (5) Plus) AppleWebKit/537.36\n // (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36\"\n if (/\\bAndroid\\b/.test(os) && !product &&\n (data = /\\bAndroid[^;]*;(.*?)(?:Build|\\) AppleWebKit)\\b/i.exec(ua))) {\n product = trim(data[1])\n // Replace any language codes (eg. \"en-US\").\n .replace(/^[a-z]{2}-[a-z]{2};\\s*/i, '')\n || null;\n }\n // Detect product names that contain their manufacturer's name.\n if (manufacturer && !product) {\n product = getProduct([manufacturer]);\n } else if (manufacturer && product) {\n product = product\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.\\\\s]', 'i'), manufacturer + ' ')\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.]?(\\\\w)', 'i'), manufacturer + ' $2');\n }\n // Clean up Google TV.\n if ((data = /\\bGoogle TV\\b/.exec(product))) {\n product = data[0];\n }\n // Detect simulators.\n if (/\\bSimulator\\b/i.test(ua)) {\n product = (product ? product + ' ' : '') + 'Simulator';\n }\n // Detect Opera Mini 8+ running in Turbo/Uncompressed mode on iOS.\n if (name == 'Opera Mini' && /\\bOPiOS\\b/.test(ua)) {\n description.push('running in Turbo/Uncompressed mode');\n }\n // Detect IE Mobile 11.\n if (name == 'IE' && /\\blike iPhone OS\\b/.test(ua)) {\n data = parse(ua.replace(/like iPhone OS/, ''));\n manufacturer = data.manufacturer;\n product = data.product;\n }\n // Detect iOS.\n else if (/^iP/.test(product)) {\n name || (name = 'Safari');\n os = 'iOS' + ((data = / OS ([\\d_]+)/i.exec(ua))\n ? ' ' + data[1].replace(/_/g, '.')\n : '');\n }\n // Detect Kubuntu.\n else if (name == 'Konqueror' && /^Linux\\b/i.test(os)) {\n os = 'Kubuntu';\n }\n // Detect Android browsers.\n else if ((manufacturer && manufacturer != 'Google' &&\n ((/Chrome/.test(name) && !/\\bMobile Safari\\b/i.test(ua)) || /\\bVita\\b/.test(product))) ||\n (/\\bAndroid\\b/.test(os) && /^Chrome/.test(name) && /\\bVersion\\//i.test(ua))) {\n name = 'Android Browser';\n os = /\\bAndroid\\b/.test(os) ? os : 'Android';\n }\n // Detect Silk desktop/accelerated modes.\n else if (name == 'Silk') {\n if (!/\\bMobi/i.test(ua)) {\n os = 'Android';\n description.unshift('desktop mode');\n }\n if (/Accelerated *= *true/i.test(ua)) {\n description.unshift('accelerated');\n }\n }\n // Detect UC Browser speed mode.\n else if (name == 'UC Browser' && /\\bUCWEB\\b/.test(ua)) {\n description.push('speed mode');\n }\n // Detect PaleMoon identifying as Firefox.\n else if (name == 'PaleMoon' && (data = /\\bFirefox\\/([\\d.]+)\\b/.exec(ua))) {\n description.push('identifying as Firefox ' + data[1]);\n }\n // Detect Firefox OS and products running Firefox.\n else if (name == 'Firefox' && (data = /\\b(Mobile|Tablet|TV)\\b/i.exec(ua))) {\n os || (os = 'Firefox OS');\n product || (product = data[1]);\n }\n // Detect false positives for Firefox/Safari.\n else if (!name || (data = !/\\bMinefield\\b/i.test(ua) && /\\b(?:Firefox|Safari)\\b/.exec(name))) {\n // Escape the `/` for Firefox 1.\n if (name && !product && /[\\/,]|^[^(]+?\\)/.test(ua.slice(ua.indexOf(data + '/') + 8))) {\n // Clear name of false positives.\n name = null;\n }\n // Reassign a generic name.\n if ((data = product || manufacturer || os) &&\n (product || manufacturer || /\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(os))) {\n name = /[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(os) ? os : data) + ' Browser';\n }\n }\n // Add Chrome version to description for Electron.\n else if (name == 'Electron' && (data = (/\\bChrome\\/([\\d.]+)\\b/.exec(ua) || 0)[1])) {\n description.push('Chromium ' + data);\n }\n // Detect non-Opera (Presto-based) versions (order is important).\n if (!version) {\n version = getVersion([\n '(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$)|UCBrowser|YaBrowser)',\n 'Version',\n qualify(name),\n '(?:Firefox|Minefield|NetFront)'\n ]);\n }\n // Detect stubborn layout engines.\n if ((data =\n layout == 'iCab' && parseFloat(version) > 3 && 'WebKit' ||\n /\\bOpera\\b/.test(name) && (/\\bOPR\\b/.test(ua) ? 'Blink' : 'Presto') ||\n /\\b(?:Midori|Nook|Safari)\\b/i.test(ua) && !/^(?:Trident|EdgeHTML)$/.test(layout) && 'WebKit' ||\n !layout && /\\bMSIE\\b/i.test(ua) && (os == 'Mac OS' ? 'Tasman' : 'Trident') ||\n layout == 'WebKit' && /\\bPlayStation\\b(?! Vita\\b)/i.test(name) && 'NetFront'\n )) {\n layout = [data];\n }\n // Detect Windows Phone 7 desktop mode.\n if (name == 'IE' && (data = (/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(ua) || 0)[1])) {\n name += ' Mobile';\n os = 'Windows Phone ' + (/\\+$/.test(data) ? data : data + '.x');\n description.unshift('desktop mode');\n }\n // Detect Windows Phone 8.x desktop mode.\n else if (/\\bWPDesktop\\b/i.test(ua)) {\n name = 'IE Mobile';\n os = 'Windows Phone 8.x';\n description.unshift('desktop mode');\n version || (version = (/\\brv:([\\d.]+)/.exec(ua) || 0)[1]);\n }\n // Detect IE 11 identifying as other browsers.\n else if (name != 'IE' && layout == 'Trident' && (data = /\\brv:([\\d.]+)/.exec(ua))) {\n if (name) {\n description.push('identifying as ' + name + (version ? ' ' + version : ''));\n }\n name = 'IE';\n version = data[1];\n }\n // Leverage environment features.\n if (useFeatures) {\n // Detect server-side environments.\n // Rhino has a global function while others have a global object.\n if (isHostType(context, 'global')) {\n if (java) {\n data = java.lang.System;\n arch = data.getProperty('os.arch');\n os = os || data.getProperty('os.name') + ' ' + data.getProperty('os.version');\n }\n if (rhino) {\n try {\n version = context.require('ringo/engine').version.join('.');\n name = 'RingoJS';\n } catch(e) {\n if ((data = context.system) && data.global.system == context.system) {\n name = 'Narwhal';\n os || (os = data[0].os || null);\n }\n }\n if (!name) {\n name = 'Rhino';\n }\n }\n else if (\n typeof context.process == 'object' && !context.process.browser &&\n (data = context.process)\n ) {\n if (typeof data.versions == 'object') {\n if (typeof data.versions.electron == 'string') {\n description.push('Node ' + data.versions.node);\n name = 'Electron';\n version = data.versions.electron;\n } else if (typeof data.versions.nw == 'string') {\n description.push('Chromium ' + version, 'Node ' + data.versions.node);\n name = 'NW.js';\n version = data.versions.nw;\n }\n }\n if (!name) {\n name = 'Node.js';\n arch = data.arch;\n os = data.platform;\n version = /[\\d.]+/.exec(data.version);\n version = version ? version[0] : null;\n }\n }\n }\n // Detect Adobe AIR.\n else if (getClassOf((data = context.runtime)) == airRuntimeClass) {\n name = 'Adobe AIR';\n os = data.flash.system.Capabilities.os;\n }\n // Detect PhantomJS.\n else if (getClassOf((data = context.phantom)) == phantomClass) {\n name = 'PhantomJS';\n version = (data = data.version || null) && (data.major + '.' + data.minor + '.' + data.patch);\n }\n // Detect IE compatibility modes.\n else if (typeof doc.documentMode == 'number' && (data = /\\bTrident\\/(\\d+)/i.exec(ua))) {\n // We're in compatibility mode when the Trident version + 4 doesn't\n // equal the document mode.\n version = [version, doc.documentMode];\n if ((data = +data[1] + 4) != version[1]) {\n description.push('IE ' + version[1] + ' mode');\n layout && (layout[1] = '');\n version[1] = data;\n }\n version = name == 'IE' ? String(version[1].toFixed(1)) : version[0];\n }\n // Detect IE 11 masking as other browsers.\n else if (typeof doc.documentMode == 'number' && /^(?:Chrome|Firefox)\\b/.test(name)) {\n description.push('masking as ' + name + ' ' + version);\n name = 'IE';\n version = '11.0';\n layout = ['Trident'];\n os = 'Windows';\n }\n os = os && format(os);\n }\n // Detect prerelease phases.\n if (version && (data =\n /(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(version) ||\n /(?:alpha|beta)(?: ?\\d)?/i.exec(ua + ';' + (useFeatures && nav.appMinorVersion)) ||\n /\\bMinefield\\b/i.test(ua) && 'a'\n )) {\n prerelease = /b/i.test(data) ? 'beta' : 'alpha';\n version = version.replace(RegExp(data + '\\\\+?$'), '') +\n (prerelease == 'beta' ? beta : alpha) + (/\\d+\\+?/.exec(data) || '');\n }\n // Detect Firefox Mobile.\n if (name == 'Fennec' || name == 'Firefox' && /\\b(?:Android|Firefox OS|KaiOS)\\b/.test(os)) {\n name = 'Firefox Mobile';\n }\n // Obscure Maxthon's unreliable version.\n else if (name == 'Maxthon' && version) {\n version = version.replace(/\\.[\\d.]+/, '.x');\n }\n // Detect Xbox 360 and Xbox One.\n else if (/\\bXbox\\b/i.test(product)) {\n if (product == 'Xbox 360') {\n os = null;\n }\n if (product == 'Xbox 360' && /\\bIEMobile\\b/.test(ua)) {\n description.unshift('mobile mode');\n }\n }\n // Add mobile postfix.\n else if ((/^(?:Chrome|IE|Opera)$/.test(name) || name && !product && !/Browser|Mobi/.test(name)) &&\n (os == 'Windows CE' || /Mobi/i.test(ua))) {\n name += ' Mobile';\n }\n // Detect IE platform preview.\n else if (name == 'IE' && useFeatures) {\n try {\n if (context.external === null) {\n description.unshift('platform preview');\n }\n } catch(e) {\n description.unshift('embedded');\n }\n }\n // Detect BlackBerry OS version.\n // http://docs.blackberry.com/en/developers/deliverables/18169/HTTP_headers_sent_by_BB_Browser_1234911_11.jsp\n else if ((/\\bBlackBerry\\b/.test(product) || /\\bBB10\\b/.test(ua)) && (data =\n (RegExp(product.replace(/ +/g, ' *') + '/([.\\\\d]+)', 'i').exec(ua) || 0)[1] ||\n version\n )) {\n data = [data, /BB10/.test(ua)];\n os = (data[1] ? (product = null, manufacturer = 'BlackBerry') : 'Device Software') + ' ' + data[0];\n version = null;\n }\n // Detect Opera identifying/masking itself as another browser.\n // http://www.opera.com/support/kb/view/843/\n else if (this != forOwn && product != 'Wii' && (\n (useFeatures && opera) ||\n (/Opera/.test(name) && /\\b(?:MSIE|Firefox)\\b/i.test(ua)) ||\n (name == 'Firefox' && /\\bOS X (?:\\d+\\.){2,}/.test(os)) ||\n (name == 'IE' && (\n (os && !/^Win/.test(os) && version > 5.5) ||\n /\\bWindows XP\\b/.test(os) && version > 8 ||\n version == 8 && !/\\bTrident\\b/.test(ua)\n ))\n ) && !reOpera.test((data = parse.call(forOwn, ua.replace(reOpera, '') + ';'))) && data.name) {\n // When \"identifying\", the UA contains both Opera and the other browser's name.\n data = 'ing as ' + data.name + ((data = data.version) ? ' ' + data : '');\n if (reOpera.test(name)) {\n if (/\\bIE\\b/.test(data) && os == 'Mac OS') {\n os = null;\n }\n data = 'identify' + data;\n }\n // When \"masking\", the UA contains only the other browser's name.\n else {\n data = 'mask' + data;\n if (operaClass) {\n name = format(operaClass.replace(/([a-z])([A-Z])/g, '$1 $2'));\n } else {\n name = 'Opera';\n }\n if (/\\bIE\\b/.test(data)) {\n os = null;\n }\n if (!useFeatures) {\n version = null;\n }\n }\n layout = ['Presto'];\n description.push(data);\n }\n // Detect WebKit Nightly and approximate Chrome/Safari versions.\n if ((data = (/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n // Correct build number for numeric comparison.\n // (e.g. \"532.5\" becomes \"532.05\")\n data = [parseFloat(data.replace(/\\.(\\d)$/, '.0$1')), data];\n // Nightly builds are postfixed with a \"+\".\n if (name == 'Safari' && data[1].slice(-1) == '+') {\n name = 'WebKit Nightly';\n prerelease = 'alpha';\n version = data[1].slice(0, -1);\n }\n // Clear incorrect browser versions.\n else if (version == data[1] ||\n version == (data[2] = (/\\bSafari\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n version = null;\n }\n // Use the full Chrome version when available.\n data[1] = (/\\b(?:Headless)?Chrome\\/([\\d.]+)/i.exec(ua) || 0)[1];\n // Detect Blink layout engine.\n if (data[0] == 537.36 && data[2] == 537.36 && parseFloat(data[1]) >= 28 && layout == 'WebKit') {\n layout = ['Blink'];\n }\n // Detect JavaScriptCore.\n // http://stackoverflow.com/questions/6768474/how-can-i-detect-which-javascript-engine-v8-or-jsc-is-used-at-runtime-in-androi\n if (!useFeatures || (!likeChrome && !data[1])) {\n layout && (layout[1] = 'like Safari');\n data = (data = data[0], data < 400 ? 1 : data < 500 ? 2 : data < 526 ? 3 : data < 533 ? 4 : data < 534 ? '4+' : data < 535 ? 5 : data < 537 ? 6 : data < 538 ? 7 : data < 601 ? 8 : data < 602 ? 9 : data < 604 ? 10 : data < 606 ? 11 : data < 608 ? 12 : '12');\n } else {\n layout && (layout[1] = 'like Chrome');\n data = data[1] || (data = data[0], data < 530 ? 1 : data < 532 ? 2 : data < 532.05 ? 3 : data < 533 ? 4 : data < 534.03 ? 5 : data < 534.07 ? 6 : data < 534.10 ? 7 : data < 534.13 ? 8 : data < 534.16 ? 9 : data < 534.24 ? 10 : data < 534.30 ? 11 : data < 535.01 ? 12 : data < 535.02 ? '13+' : data < 535.07 ? 15 : data < 535.11 ? 16 : data < 535.19 ? 17 : data < 536.05 ? 18 : data < 536.10 ? 19 : data < 537.01 ? 20 : data < 537.11 ? '21+' : data < 537.13 ? 23 : data < 537.18 ? 24 : data < 537.24 ? 25 : data < 537.36 ? 26 : layout != 'Blink' ? '27' : '28');\n }\n // Add the postfix of \".x\" or \"+\" for approximate versions.\n layout && (layout[1] += ' ' + (data += typeof data == 'number' ? '.x' : /[.+]/.test(data) ? '' : '+'));\n // Obscure version for some Safari 1-2 releases.\n if (name == 'Safari' && (!version || parseInt(version) > 45)) {\n version = data;\n } else if (name == 'Chrome' && /\\bHeadlessChrome/i.test(ua)) {\n description.unshift('headless');\n }\n }\n // Detect Opera desktop modes.\n if (name == 'Opera' && (data = /\\bzbov|zvav$/.exec(os))) {\n name += ' ';\n description.unshift('desktop mode');\n if (data == 'zvav') {\n name += 'Mini';\n version = null;\n } else {\n name += 'Mobile';\n }\n os = os.replace(RegExp(' *' + data + '$'), '');\n }\n // Detect Chrome desktop mode.\n else if (name == 'Safari' && /\\bChrome\\b/.exec(layout && layout[1])) {\n description.unshift('desktop mode');\n name = 'Chrome Mobile';\n version = null;\n\n if (/\\bOS X\\b/.test(os)) {\n manufacturer = 'Apple';\n os = 'iOS 4.3+';\n } else {\n os = null;\n }\n }\n // Newer versions of SRWare Iron uses the Chrome tag to indicate its version number.\n else if (/\\bSRWare Iron\\b/.test(name) && !version) {\n version = getVersion('Chrome');\n }\n // Strip incorrect OS versions.\n if (version && version.indexOf((data = /[\\d.]+$/.exec(os))) == 0 &&\n ua.indexOf('/' + data + '-') > -1) {\n os = trim(os.replace(data, ''));\n }\n // Ensure OS does not include the browser name.\n if (os && os.indexOf(name) != -1 && !RegExp(name + ' OS').test(os)) {\n os = os.replace(RegExp(' *' + qualify(name) + ' *'), '');\n }\n // Add layout engine.\n if (layout && !/\\b(?:Avant|Nook)\\b/.test(name) && (\n /Browser|Lunascape|Maxthon/.test(name) ||\n name != 'Safari' && /^iOS/.test(os) && /\\bSafari\\b/.test(layout[1]) ||\n /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(name) && layout[1])) {\n // Don't add layout details to description if they are falsey.\n (data = layout[layout.length - 1]) && description.push(data);\n }\n // Combine contextual information.\n if (description.length) {\n description = ['(' + description.join('; ') + ')'];\n }\n // Append manufacturer to description.\n if (manufacturer && product && product.indexOf(manufacturer) < 0) {\n description.push('on ' + manufacturer);\n }\n // Append product to description.\n if (product) {\n description.push((/^on /.test(description[description.length - 1]) ? '' : 'on ') + product);\n }\n // Parse the OS into an object.\n if (os) {\n data = / ([\\d.+]+)$/.exec(os);\n isSpecialCasedOS = data && os.charAt(os.length - data[0].length - 1) == '/';\n os = {\n 'architecture': 32,\n 'family': (data && !isSpecialCasedOS) ? os.replace(data[0], '') : os,\n 'version': data ? data[1] : null,\n 'toString': function() {\n var version = this.version;\n return this.family + ((version && !isSpecialCasedOS) ? ' ' + version : '') + (this.architecture == 64 ? ' 64-bit' : '');\n }\n };\n }\n // Add browser/OS architecture.\n if ((data = /\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(arch)) && !/\\bi686\\b/i.test(arch)) {\n if (os) {\n os.architecture = 64;\n os.family = os.family.replace(RegExp(' *' + data), '');\n }\n if (\n name && (/\\bWOW64\\b/i.test(ua) ||\n (useFeatures && /\\w(?:86|32)$/.test(nav.cpuClass || nav.platform) && !/\\bWin64; x64\\b/i.test(ua)))\n ) {\n description.unshift('32-bit');\n }\n }\n // Chrome 39 and above on OS X is always 64-bit.\n else if (\n os && /^OS X/.test(os.family) &&\n name == 'Chrome' && parseFloat(version) >= 39\n ) {\n os.architecture = 64;\n }\n\n ua || (ua = null);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The platform object.\n *\n * @name platform\n * @type Object\n */\n var platform = {};\n\n /**\n * The platform description.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.description = ua;\n\n /**\n * The name of the browser's layout engine.\n *\n * The list of common layout engines include:\n * \"Blink\", \"EdgeHTML\", \"Gecko\", \"Trident\" and \"WebKit\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.layout = layout && layout[0];\n\n /**\n * The name of the product's manufacturer.\n *\n * The list of manufacturers include:\n * \"Apple\", \"Archos\", \"Amazon\", \"Asus\", \"Barnes & Noble\", \"BlackBerry\",\n * \"Google\", \"HP\", \"HTC\", \"LG\", \"Microsoft\", \"Motorola\", \"Nintendo\",\n * \"Nokia\", \"Samsung\" and \"Sony\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.manufacturer = manufacturer;\n\n /**\n * The name of the browser/environment.\n *\n * The list of common browser names include:\n * \"Chrome\", \"Electron\", \"Firefox\", \"Firefox for iOS\", \"IE\",\n * \"Microsoft Edge\", \"PhantomJS\", \"Safari\", \"SeaMonkey\", \"Silk\",\n * \"Opera Mini\" and \"Opera\"\n *\n * Mobile versions of some browsers have \"Mobile\" appended to their name:\n * eg. \"Chrome Mobile\", \"Firefox Mobile\", \"IE Mobile\" and \"Opera Mobile\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.name = name;\n\n /**\n * The alpha/beta release indicator.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.prerelease = prerelease;\n\n /**\n * The name of the product hosting the browser.\n *\n * The list of common products include:\n *\n * \"BlackBerry\", \"Galaxy S4\", \"Lumia\", \"iPad\", \"iPod\", \"iPhone\", \"Kindle\",\n * \"Kindle Fire\", \"Nexus\", \"Nook\", \"PlayBook\", \"TouchPad\" and \"Transformer\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.product = product;\n\n /**\n * The browser's user agent string.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.ua = ua;\n\n /**\n * The browser/environment version.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.version = name && version;\n\n /**\n * The name of the operating system.\n *\n * @memberOf platform\n * @type Object\n */\n platform.os = os || {\n\n /**\n * The CPU architecture the OS is built for.\n *\n * @memberOf platform.os\n * @type number|null\n */\n 'architecture': null,\n\n /**\n * The family of the OS.\n *\n * Common values include:\n * \"Windows\", \"Windows Server 2008 R2 / 7\", \"Windows Server 2008 / Vista\",\n * \"Windows XP\", \"OS X\", \"Linux\", \"Ubuntu\", \"Debian\", \"Fedora\", \"Red Hat\",\n * \"SuSE\", \"Android\", \"iOS\" and \"Windows Phone\"\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'family': null,\n\n /**\n * The version of the OS.\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'version': null,\n\n /**\n * Returns the OS string.\n *\n * @memberOf platform.os\n * @returns {string} The OS string.\n */\n 'toString': function() { return 'null'; }\n };\n\n platform.parse = parse;\n platform.toString = toStringPlatform;\n\n if (platform.version) {\n description.unshift(version);\n }\n if (platform.name) {\n description.unshift(name);\n }\n if (os && name && !(os == String(os).split(' ')[0] && (os == name.split(' ')[0] || product))) {\n description.push(product ? '(' + os + ')' : 'on ' + os);\n }\n if (description.length) {\n platform.description = description.join(' ');\n }\n return platform;\n }\n\n /*--------------------------------------------------------------------------*/\n\n // Export platform.\n var platform = parse();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose platform on the global object to prevent errors when platform is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n root.platform = platform;\n\n // Define as an anonymous module so platform can be aliased through path mapping.\n define(function() {\n return platform;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n else if (freeExports && freeModule) {\n // Export for CommonJS support.\n forOwn(platform, function(value, key) {\n freeExports[key] = value;\n });\n }\n else {\n // Export to the global object.\n root.platform = platform;\n }\n}.call(this));\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';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","if performance? and performance.now\n module.exports = -> performance.now()\nelse if process? and process.hrtime\n module.exports = -> (getNanoSeconds() - nodeLoadTime) / 1e6\n hrtime = process.hrtime\n getNanoSeconds = ->\n hr = hrtime()\n hr[0] * 1e9 + hr[1]\n moduleLoadTime = getNanoSeconds()\n upTime = process.uptime() * 1e9\n nodeLoadTime = moduleLoadTime - upTime\nelse if Date.now\n module.exports = -> Date.now() - loadTime\n loadTime = Date.now()\nelse\n module.exports = -> new Date().getTime() - loadTime\n loadTime = new Date().getTime()\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addYears\"),require(\"date-fns/subMinutes\"),require(\"date-fns/subHours\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getISOWeek\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarWeeks\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-dom\"),require(\"react-popper\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addYears\",\"date-fns/subMinutes\",\"date-fns/subHours\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getISOWeek\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarWeeks\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-dom\",\"react-popper\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.addDays,e.addWeeks,e.addMonths,e.addYears,null,null,e.subDays,e.subWeeks,e.subMonths,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.getISOWeek,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.setMonth,e.setQuarter,e.setYear,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,null,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,null,null,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactDOM,e.ReactPopper)}(this,(function(e,t,r,a,n,o,s,i,p,l,d,c,u,f,h,m,y,D,v,w,g,k,b,S,C,_,M,P,E,N,x,O,Y,I,T,L,R,F,A,q,W,B,K,H,j,Q,V,U,$,z,G,J,X,Z,ee,te,re,ae,ne,oe,se,ie,pe){\"use strict\";function le(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var de=le(t),ce=le(a),ue=le(n),fe=le(o),he=le(s),me=le(i),ye=le(p),De=le(l),ve=le(d),we=le(c),ge=le(u),ke=le(m),be=le(y),Se=le(D),Ce=le(v),_e=le(w),Me=le(g),Pe=le(k),Ee=le(b),Ne=le(S),xe=le(C),Oe=le(_),Ye=le(M),Ie=le(P),Te=le(E),Le=le(N),Re=le(x),Fe=le(O),Ae=le(Y),qe=le(I),We=le(T),Be=le(L),Ke=le(R),He=le(F),je=le(A),Qe=le(W),Ve=le(B),Ue=le(K),$e=le(H),ze=le(j),Ge=le(Q),Je=le(V),Xe=le(z),Ze=le(G),et=le(J),tt=le(X),rt=le(Z),at=le(ee),nt=le(te),ot=le(re),st=le(ae),it=le(ne),pt=le(oe),lt=le(se),dt=le(ie);function ct(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function ut(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r0&&(o=it.default(e,t.slice(0,e.length),new Date)),Tt(o)||(o=new Date(e))),Tt(o)&&i?o:null)}function Tt(e,t){return t=t||new Date(\"1/1/1000\"),fe.default(e)&&!nt.default(e,t)}function Lt(e,t,r){if(\"en\"===r)return he.default(e,t,{awareOfUnicodeTokens:!0});var a=Xt(r);return r&&!a&&console.warn('A locale object was not found for the provided string [\"'.concat(r,'\"].')),!a&&Jt()&&Xt(Jt())&&(a=Xt(Jt())),he.default(e,t,{locale:a||null,awareOfUnicodeTokens:!0})}function Rt(e,t){var r=t.dateFormat,a=t.locale;return e&&Lt(e,Array.isArray(r)?r[0]:r,a)||\"\"}function Ft(e,t){var r=t.hour,a=void 0===r?0:r,n=t.minute,o=void 0===n?0:n,s=t.second,i=void 0===s?0:s;return Fe.default(Re.default(Le.default(e,i),o),a)}function At(e,t){var r=t&&Xt(t)||Jt()&&Xt(Jt());return xe.default(e,r?{locale:r}:null)}function qt(e,t){return Lt(e,\"ddd\",t)}function Wt(e){return Ve.default(e)}function Bt(e,t,r){var a=Xt(t||Jt());return Ue.default(e,{locale:a,weekStartsOn:r})}function Kt(e){return $e.default(e)}function Ht(e){return Ge.default(e)}function jt(e){return ze.default(e)}function Qt(e,t){return e&&t?tt.default(e,t):!e&&!t}function Vt(e,t){return e&&t?et.default(e,t):!e&&!t}function Ut(e,t){return e&&t?rt.default(e,t):!e&&!t}function $t(e,t){return e&&t?Ze.default(e,t):!e&&!t}function zt(e,t){return e&&t?Xe.default(e,t):!e&&!t}function Gt(e,t,r){var a,n=Ve.default(t),o=Je.default(r);try{a=ot.default(e,{start:n,end:o})}catch(e){a=!1}return a}function Jt(){return(\"undefined\"!=typeof window?window:globalThis).__localeId__}function Xt(e){if(\"string\"==typeof e){var t=\"undefined\"!=typeof window?window:globalThis;return t.__localeData__?t.__localeData__[e]:null}return e}function Zt(e,t){return Lt(Ae.default(Yt(),e),\"LLLL\",t)}function er(e,t){return Lt(Ae.default(Yt(),e),\"LLL\",t)}function tr(e,t){return Lt(qe.default(Yt(),e),\"QQQ\",t)}function rr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.excludeDateIntervals,s=t.includeDates,i=t.includeDateIntervals,p=t.filterDate;return lr(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return $t(e,t)}))||o&&o.some((function(t){var r=t.start,a=t.end;return ot.default(e,{start:r,end:a})}))||s&&!s.some((function(t){return $t(e,t)}))||i&&!i.some((function(t){var r=t.start,a=t.end;return ot.default(e,{start:r,end:a})}))||p&&!p(Yt(e))||!1}function ar(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,a=t.excludeDateIntervals;return a&&a.length>0?a.some((function(t){var r=t.start,a=t.end;return ot.default(e,{start:r,end:a})})):r&&r.some((function(t){return $t(e,t)}))||!1}function nr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return lr(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Vt(e,t)}))||o&&!o.some((function(t){return Vt(e,t)}))||s&&!s(Yt(e))||!1}function or(e,t,r,a){var n=Ie.default(e),o=Oe.default(e),s=Ie.default(t),i=Oe.default(t),p=Ie.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function sr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return lr(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Ut(e,t)}))||o&&!o.some((function(t){return Ut(e,t)}))||s&&!s(Yt(e))||!1}function ir(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=new Date(e,0,1);return lr(n,{minDate:r,maxDate:a})||!1}function pr(e,t,r,a){var n=Ie.default(e),o=Ye.default(e),s=Ie.default(t),i=Ye.default(t),p=Ie.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function lr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate;return r&&He.default(e,r)<0||a&&He.default(e,a)>0}function dr(e,t){return t.some((function(t){return Pe.default(t)===Pe.default(e)&&Me.default(t)===Me.default(e)}))}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,a=t.includeTimes,n=t.filterTime;return r&&dr(e,r)||a&&!dr(e,a)||n&&!n(e)||!1}function ur(e,t){var r=t.minTime,a=t.maxTime;if(!r||!a)throw new Error(\"Both minTime and maxTime props required\");var n,o=Yt(),s=Fe.default(Re.default(o,Me.default(e)),Pe.default(e)),i=Fe.default(Re.default(o,Me.default(r)),Pe.default(r)),p=Fe.default(Re.default(o,Me.default(a)),Pe.default(a));try{n=!ot.default(s,{start:i,end:p})}catch(e){n=!1}return n}function fr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Se.default(e,1);return r&&je.default(r,n)>0||a&&a.every((function(e){return je.default(e,n)>0}))||!1}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=we.default(e,1);return r&&je.default(n,r)>0||a&&a.every((function(e){return je.default(n,e)>0}))||!1}function mr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Ce.default(e,1);return r&&Qe.default(r,n)>0||a&&a.every((function(e){return Qe.default(e,n)>0}))||!1}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=ge.default(e,1);return r&&Qe.default(n,r)>0||a&&a.every((function(e){return Qe.default(n,e)>0}))||!1}function Dr(e){var t=e.minDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return He.default(e,t)>=0}));return Be.default(a)}return r?Be.default(r):t}function vr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return He.default(e,t)<=0}));return Ke.default(a)}return r?Ke.default(r):t}function wr(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,a=0,n=e.length;a1&&void 0!==arguments[1]?arguments[1]:xt,r=Math.ceil(Ie.default(e)/t)*t,a=r-(t-1);return{startPeriod:a,endPeriod:r}}function Sr(e,t,r,a){for(var n=[],o=0;o<2*t+1;o++){var s=e+t-o,i=!0;r&&(i=Ie.default(r)<=s),a&&i&&(i=Ie.default(a)>=s),i&&n.push(s)}return n}var Cr=function(e){wt(a,e);var r=Ct(a);function a(e){var n;ht(this,a),Dt(bt(n=r.call(this,e)),\"renderOptions\",(function(){var e=n.props.year,t=n.state.yearsList.map((function(t){return de.default.createElement(\"div\",{className:e===t?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:t,onClick:n.onChange.bind(bt(n),t),\"aria-selected\":e===t?\"true\":void 0},e===t?de.default.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",t)})),r=n.props.minDate?Ie.default(n.props.minDate):null,a=n.props.maxDate?Ie.default(n.props.maxDate):null;return a&&n.state.yearsList.find((function(e){return e===a}))||t.unshift(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"upcoming\",onClick:n.incrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),r&&n.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"previous\",onClick:n.decrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),t})),Dt(bt(n),\"onChange\",(function(e){n.props.onChange(e)})),Dt(bt(n),\"handleClickOutside\",(function(){n.props.onCancel()})),Dt(bt(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),Dt(bt(n),\"incrementYears\",(function(){return n.shiftYears(1)})),Dt(bt(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,i=o||(s?10:5);return n.state={yearsList:Sr(n.props.year,i,n.props.minDate,n.props.maxDate)},n.dropdownRef=t.createRef(),n}return yt(a,[{key:\"componentDidMount\",value:function(){var e=this.dropdownRef.current;e&&(e.scrollTop=e.scrollHeight/2-e.clientHeight/2)}},{key:\"render\",value:function(){var e=ce.default({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return de.default.createElement(\"div\",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),a}(de.default.Component),_r=lt.default(Cr),Mr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(r=!0)),r&&e.dayEl.current.focus({preventScroll:!0})})),Dt(bt(e),\"renderDayContents\",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Ne.default(e.props.day),e.props.day):Ne.default(e.props.day)})),Dt(bt(e),\"render\",(function(){return de.default.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"option\",\"aria-disabled\":e.isDisabled(),\"aria-current\":e.isCurrentDay()?\"date\":void 0,\"aria-selected\":e.isSelected()},e.renderDayContents())})),e}return yt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),Lr=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o=6,i=!r&&!e.isWeekInMonth(o);if(s||i){if(!e.props.peekNextMonth)break;n=!0}}return t})),Dt(bt(e),\"onMonthClick\",(function(t,r){e.handleDayClick(Kt(Ae.default(e.props.day,r)),t)})),Dt(bt(e),\"handleMonthNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),Dt(bt(e),\"onMonthKeyDown\",(function(t,r){var a=t.key;if(!e.props.disabledKeyboardNavigation)switch(a){case\"Enter\":e.onMonthClick(t,r),e.props.setPreSelection(e.props.selected);break;case\"ArrowRight\":e.handleMonthNavigation(11===r?0:r+1,we.default(e.props.preSelection,1));break;case\"ArrowLeft\":e.handleMonthNavigation(0===r?11:r-1,Se.default(e.props.preSelection,1))}})),Dt(bt(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(jt(qe.default(e.props.day,r)),t)})),Dt(bt(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,d=r.monthClassName,c=d?d(a):void 0;return ce.default(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),c,{\"react-datepicker__month--disabled\":(i||p)&&nr(Ae.default(a,t),e.props),\"react-datepicker__month--selected\":e.isSelectedMonth(a,t,s),\"react-datepicker__month-text--keyboard-selected\":Oe.default(l)===t,\"react-datepicker__month--in-range\":or(n,o,t,a),\"react-datepicker__month--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month--range-end\":e.isRangeEndMonth(t),\"react-datepicker__month-text--today\":e.isCurrentMonth(a,t)})})),Dt(bt(e),\"getTabIndex\",(function(t){var r=Oe.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),Dt(bt(e),\"getAriaLabel\",(function(t){var r=e.props,a=r.chooseDayAriaLabelPrefix,n=void 0===a?\"Choose\":a,o=r.disabledDayAriaLabelPrefix,s=void 0===o?\"Not available\":o,i=r.day,p=Ae.default(i,t),l=e.isDisabled(p)||e.isExcluded(p)?s:n;return\"\".concat(l,\" \").concat(Lt(p,\"MMMM yyyy\"))})),Dt(bt(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate;return ce.default(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter--disabled\":(i||p)&&sr(qe.default(a,t),e.props),\"react-datepicker__quarter--selected\":e.isSelectedQuarter(a,t,s),\"react-datepicker__quarter--in-range\":pr(n,o,t,a),\"react-datepicker__quarter--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter--range-end\":e.isRangeEndQuarter(t)})})),Dt(bt(e),\"renderMonths\",(function(){var t=e.props,r=t.showFullMonthYearPicker,a=t.showTwoColumnMonthYearPicker,n=t.showFourColumnMonthYearPicker,o=t.locale,s=t.day,i=t.selected;return(n?[[0,1,2,3],[4,5,6,7],[8,9,10,11]]:a?[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]]:[[0,1,2],[3,4,5],[6,7,8],[9,10,11]]).map((function(t,a){return de.default.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:a},t.map((function(t,a){return de.default.createElement(\"div\",{ref:e.MONTH_REFS[t],key:a,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:\"option\",\"aria-label\":e.getAriaLabel(t),\"aria-current\":e.isCurrentMonth(s,t)?\"date\":void 0,\"aria-selected\":e.isSelectedMonth(s,t,i)},r?Zt(t,o):er(t,o))})))}))})),Dt(bt(e),\"renderQuarters\",(function(){var t=e.props,r=t.day,a=t.selected;return de.default.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(t,n){return de.default.createElement(\"div\",{key:n,role:\"option\",onClick:function(r){e.onQuarterClick(r,t)},className:e.getQuarterClassNames(t),\"aria-selected\":e.isSelectedQuarter(r,t,a)},tr(t,e.props.locale))})))})),Dt(bt(e),\"getClassNames\",(function(){var t=e.props;t.day;var r=t.selectingDate,a=t.selectsStart,n=t.selectsEnd,o=t.showMonthYearPicker,s=t.showQuarterYearPicker;return ce.default(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":r&&(a||n)},{\"react-datepicker__monthPicker\":o},{\"react-datepicker__quarterPicker\":s})})),e}return yt(r,[{key:\"render\",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,a=e.day,n=e.ariaLabelPrefix,o=void 0===n?\"month \":n;return de.default.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(o,\" \").concat(Lt(a,\"yyyy-MM\")),role:\"listbox\"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),Ar=function(e){wt(r,e);var t=Ct(r);function r(){var e;ht(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{}).className||\"\").split(/\\s+/);return Kr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&a.props.onDropdownFocus()})),Dt(bt(a),\"getDateInView\",(function(){var e=a.props,t=e.preSelection,r=e.selected,n=e.openToDate,o=Dr(a.props),s=vr(a.props),i=Yt(),p=n||r||t;return p||(o&&nt.default(i,o)?o:s&&at.default(i,s)?s:i)})),Dt(bt(a),\"increaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:we.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),Dt(bt(a),\"decreaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:Se.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),Dt(bt(a),\"handleDayClick\",(function(e,t,r){a.props.onSelect(e,t,r),a.props.setPreSelection&&a.props.setPreSelection(e)})),Dt(bt(a),\"handleDayMouseEnter\",(function(e){a.setState({selectingDate:e}),a.props.onDayMouseEnter&&a.props.onDayMouseEnter(e)})),Dt(bt(a),\"handleMonthMouseLeave\",(function(){a.setState({selectingDate:null}),a.props.onMonthMouseLeave&&a.props.onMonthMouseLeave()})),Dt(bt(a),\"handleYearChange\",(function(e){a.props.onYearChange&&a.props.onYearChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),Dt(bt(a),\"handleMonthChange\",(function(e){a.props.onMonthChange&&a.props.onMonthChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),Dt(bt(a),\"handleMonthYearChange\",(function(e){a.handleYearChange(e),a.handleMonthChange(e)})),Dt(bt(a),\"changeYear\",(function(e){a.setState((function(t){var r=t.date;return{date:We.default(r,e)}}),(function(){return a.handleYearChange(a.state.date)}))})),Dt(bt(a),\"changeMonth\",(function(e){a.setState((function(t){var r=t.date;return{date:Ae.default(r,e)}}),(function(){return a.handleMonthChange(a.state.date)}))})),Dt(bt(a),\"changeMonthYear\",(function(e){a.setState((function(t){var r=t.date;return{date:We.default(Ae.default(r,Oe.default(e)),Ie.default(e))}}),(function(){return a.handleMonthYearChange(a.state.date)}))})),Dt(bt(a),\"header\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=Bt(e,a.props.locale,a.props.calendarStartDay),r=[];return a.props.showWeekNumbers&&r.push(de.default.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},a.props.weekLabel||\"#\")),r.concat([0,1,2,3,4,5,6].map((function(e){var r=De.default(t,e),n=a.formatWeekday(r,a.props.locale),o=a.props.weekDayClassName?a.props.weekDayClassName(r):void 0;return de.default.createElement(\"div\",{key:e,className:ce.default(\"react-datepicker__day-name\",o)},n)})))})),Dt(bt(a),\"formatWeekday\",(function(e,t){return a.props.formatWeekDay?function(e,t,r){return t(Lt(e,\"EEEE\",r))}(e,a.props.formatWeekDay,t):a.props.useWeekdaysShort?function(e,t){return Lt(e,\"EEE\",t)}(e,t):function(e,t){return Lt(e,\"EEEEEE\",t)}(e,t)})),Dt(bt(a),\"decreaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:Ce.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),Dt(bt(a),\"renderPreviousButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=mr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.yearItemNumber,n=void 0===a?xt:a,o=br(Ht(Ce.default(e,n)),n).endPeriod,s=r&&Ie.default(r);return s&&s>o||!1}(a.state.date,a.props);break;default:e=fr(a.state.date,a.props)}if((a.props.forceShowMonthNavigation||a.props.showDisabledMonthNavigation||!e)&&!a.props.showTimeSelectOnly){var t=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],r=a.decreaseMonth;(a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker)&&(r=a.decreaseYear),e&&a.props.showDisabledMonthNavigation&&(t.push(\"react-datepicker__navigation--previous--disabled\"),r=null);var n=a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker,o=a.props,s=o.previousMonthButtonLabel,i=o.previousYearButtonLabel,p=a.props,l=p.previousMonthAriaLabel,d=void 0===l?\"string\"==typeof s?s:\"Previous Month\":l,c=p.previousYearAriaLabel,u=void 0===c?\"string\"==typeof i?i:\"Previous Year\":c;return de.default.createElement(\"button\",{type:\"button\",className:t.join(\" \"),onClick:r,onKeyDown:a.props.handleOnKeyDown,\"aria-label\":n?u:d},de.default.createElement(\"span\",{className:[\"react-datepicker__navigation-icon\",\"react-datepicker__navigation-icon--previous\"].join(\" \")},n?a.props.previousYearButtonLabel:a.props.previousMonthButtonLabel))}}})),Dt(bt(a),\"increaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:ge.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),Dt(bt(a),\"renderNextButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=yr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.yearItemNumber,n=void 0===a?xt:a,o=br(ge.default(e,n),n).startPeriod,s=r&&Ie.default(r);return s&&s0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=[\"react-datepicker__current-month\"];return a.props.showYearDropdown&&t.push(\"react-datepicker__current-month--hasYearDropdown\"),a.props.showMonthDropdown&&t.push(\"react-datepicker__current-month--hasMonthDropdown\"),a.props.showMonthYearDropdown&&t.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),de.default.createElement(\"div\",{className:t.join(\" \")},Lt(e,a.props.dateFormat,a.props.locale))})),Dt(bt(a),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showYearDropdown&&!e)return de.default.createElement(Mr,{adjustDateOnChange:a.props.adjustDateOnChange,date:a.state.date,onSelect:a.props.onSelect,setOpen:a.props.setOpen,dropdownMode:a.props.dropdownMode,onChange:a.changeYear,minDate:a.props.minDate,maxDate:a.props.maxDate,year:Ie.default(a.state.date),scrollableYearDropdown:a.props.scrollableYearDropdown,yearDropdownItemNumber:a.props.yearDropdownItemNumber})})),Dt(bt(a),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthDropdown&&!e)return de.default.createElement(Nr,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,onChange:a.changeMonth,month:Oe.default(a.state.date),useShortMonthInDropdown:a.props.useShortMonthInDropdown})})),Dt(bt(a),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthYearDropdown&&!e)return de.default.createElement(Ir,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,dateFormat:a.props.dateFormat,onChange:a.changeMonthYear,minDate:a.props.minDate,maxDate:a.props.maxDate,date:a.state.date,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown})})),Dt(bt(a),\"renderTodayButton\",(function(){if(a.props.todayButton&&!a.props.showTimeSelectOnly)return de.default.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return a.props.onSelect(Ve.default(Yt()),e)}},a.props.todayButton)})),Dt(bt(a),\"renderDefaultHeader\",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement(\"div\",{className:\"react-datepicker__header \".concat(a.props.showTimeSelect?\"react-datepicker__header--has-time-select\":\"\")},a.renderCurrentMonth(t),de.default.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(a.props.dropdownMode),onFocus:a.handleDropdownFocus},a.renderMonthDropdown(0!==r),a.renderMonthYearDropdown(0!==r),a.renderYearDropdown(0!==r)),de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),Dt(bt(a),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(a.props.showTimeSelect&&!a.state.monthContainer||a.props.showTimeSelectOnly)return null;var n=fr(a.state.date,a.props),o=hr(a.state.date,a.props),s=mr(a.state.date,a.props),i=yr(a.state.date,a.props),p=!a.props.showMonthYearPicker&&!a.props.showQuarterYearPicker&&!a.props.showYearPicker;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:a.props.onDropdownFocus},a.props.renderCustomHeader(ut(ut({},a.state),{},{customHeaderCount:r,monthDate:t,changeMonth:a.changeMonth,changeYear:a.changeYear,decreaseMonth:a.decreaseMonth,increaseMonth:a.increaseMonth,decreaseYear:a.decreaseYear,increaseYear:a.increaseYear,prevMonthButtonDisabled:n,nextMonthButtonDisabled:o,prevYearButtonDisabled:s,nextYearButtonDisabled:i})),p&&de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),Dt(bt(a),\"renderYearHeader\",(function(){var e=a.state.date,t=a.props,r=t.showYearPicker,n=br(e,t.yearItemNumber),o=n.startPeriod,s=n.endPeriod;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},r?\"\".concat(o,\" - \").concat(s):Ie.default(e))})),Dt(bt(a),\"renderHeader\",(function(e){switch(!0){case void 0!==a.props.renderCustomHeader:return a.renderCustomHeader(e);case a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker:return a.renderYearHeader(e);default:return a.renderDefaultHeader(e)}})),Dt(bt(a),\"renderMonths\",(function(){if(!a.props.showTimeSelectOnly&&!a.props.showYearPicker){for(var e=[],t=a.props.showPreviousMonths?a.props.monthsShown-1:0,r=Se.default(a.state.date,t),n=0;n0;e.push(de.default.createElement(\"div\",{key:i,ref:function(e){a.monthContainer=e},className:\"react-datepicker__month-container\"},a.renderHeader({monthDate:s,i:n}),de.default.createElement(Fr,{chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,ariaLabelPrefix:a.props.monthAriaLabelPrefix,onChange:a.changeMonthYear,day:s,dayClassName:a.props.dayClassName,calendarStartDay:a.props.calendarStartDay,monthClassName:a.props.monthClassName,onDayClick:a.handleDayClick,handleOnKeyDown:a.props.handleOnDayKeyDown,onDayMouseEnter:a.handleDayMouseEnter,onMouseLeave:a.handleMonthMouseLeave,onWeekSelect:a.props.onWeekSelect,orderInDisplay:n,formatWeekNumber:a.props.formatWeekNumber,locale:a.props.locale,minDate:a.props.minDate,maxDate:a.props.maxDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,highlightDates:a.props.highlightDates,selectingDate:a.state.selectingDate,includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,inline:a.props.inline,shouldFocusDayInline:a.props.shouldFocusDayInline,fixedHeight:a.props.fixedHeight,filterDate:a.props.filterDate,preSelection:a.props.preSelection,setPreSelection:a.props.setPreSelection,selected:a.props.selected,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showWeekNumbers:a.props.showWeekNumbers,startDate:a.props.startDate,endDate:a.props.endDate,peekNextMonth:a.props.peekNextMonth,setOpen:a.props.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,renderDayContents:a.props.renderDayContents,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,isInputFocused:a.props.isInputFocused,containerRef:a.containerRef,monthShowsDuplicateDaysEnd:p,monthShowsDuplicateDaysStart:l})))}return e}})),Dt(bt(a),\"renderYears\",(function(){if(!a.props.showTimeSelectOnly)return a.props.showYearPicker?de.default.createElement(\"div\",{className:\"react-datepicker__year--container\"},a.renderHeader(),de.default.createElement(qr,vt({onDayClick:a.handleDayClick,date:a.state.date},a.props))):void 0})),Dt(bt(a),\"renderTimeSection\",(function(){if(a.props.showTimeSelect&&(a.state.monthContainer||a.props.showTimeSelectOnly))return de.default.createElement(Ar,{selected:a.props.selected,openToDate:a.props.openToDate,onChange:a.props.onTimeChange,timeClassName:a.props.timeClassName,format:a.props.timeFormat,includeTimes:a.props.includeTimes,intervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,todayButton:a.props.todayButton,showMonthDropdown:a.props.showMonthDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,monthRef:a.state.monthContainer,injectTimes:a.props.injectTimes,locale:a.props.locale,handleOnKeyDown:a.props.handleOnKeyDown,showTimeSelectOnly:a.props.showTimeSelectOnly})})),Dt(bt(a),\"renderInputTimeSection\",(function(){var e=new Date(a.props.selected),t=Tt(e)&&Boolean(a.props.selected)?\"\".concat(kr(e.getHours()),\":\").concat(kr(e.getMinutes())):\"\";if(a.props.showTimeInput)return de.default.createElement(Wr,{date:e,timeString:t,timeInputLabel:a.props.timeInputLabel,onChange:a.props.onTimeChange,customTimeInput:a.props.customTimeInput})})),a.containerRef=de.default.createRef(),a.state={date:a.getDateInView(),selectingDate:null,monthContainer:null},a}return yt(r,[{key:\"componentDidMount\",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:\"componentDidUpdate\",value:function(e){this.props.preSelection&&!$t(this.props.preSelection,e.preSelection)?this.setState({date:this.props.preSelection}):this.props.openToDate&&!$t(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate})}},{key:\"render\",value:function(){var e=this.props.container||Br;return de.default.createElement(\"div\",{ref:this.containerRef},de.default.createElement(e,{className:ce.default(\"react-datepicker\",this.props.className,{\"react-datepicker--time-only\":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.props.children))}}],[{key:\"defaultProps\",get:function(){return{onDropdownFocus:function(){},monthsShown:1,monthSelectedIn:0,forceShowMonthNavigation:!1,timeCaption:\"Time\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",customTimeInput:null,yearItemNumber:xt}}}]),r}(de.default.Component),jr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),(a=t.call(this,e)).el=document.createElement(\"div\"),a}return yt(r,[{key:\"componentDidMount\",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement(\"div\"),this.portalRoot.setAttribute(\"id\",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:\"componentWillUnmount\",value:function(){this.portalRoot.removeChild(this.el)}},{key:\"render\",value:function(){return dt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),Qr=function(e){return!e.disabled&&-1!==e.tabIndex},Vr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),Dt(bt(a=t.call(this,e)),\"getTabChildren\",(function(){return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"),1,-1).filter(Qr)})),Dt(bt(a),\"handleFocusStart\",(function(e){var t=a.getTabChildren();t&&t.length>1&&t[t.length-1].focus()})),Dt(bt(a),\"handleFocusEnd\",(function(e){var t=a.getTabChildren();t&&t.length>1&&t[0].focus()})),a.tabLoopRef=de.default.createRef(),a}return yt(r,[{key:\"render\",value:function(){return this.props.enableTabLoop?de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),Ur=function(e){wt(r,e);var t=Ct(r);function r(){return ht(this,r),t.apply(this,arguments)}return yt(r,[{key:\"render\",value:function(){var e,t=this.props,r=t.className,a=t.wrapperClassName,n=t.hidePopper,o=t.popperComponent,s=t.popperModifiers,i=t.popperPlacement,p=t.popperProps,l=t.targetComponent,d=t.enableTabLoop,c=t.popperOnKeyDown,u=t.portalId,f=t.portalHost;if(!n){var h=ce.default(\"react-datepicker-popper\",r);e=de.default.createElement(pe.Popper,vt({modifiers:s,placement:i},p),(function(e){var t=e.ref,r=e.style,a=e.placement,n=e.arrowProps;return de.default.createElement(Vr,{enableTabLoop:d},de.default.createElement(\"div\",{ref:t,style:r,className:h,\"data-placement\":a,onKeyDown:c},de.default.cloneElement(o,{arrowProps:n})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),u&&!n&&(e=de.default.createElement(jr,{portalId:u,portalHost:f},e));var m=ce.default(\"react-datepicker-wrapper\",a);return de.default.createElement(pe.Manager,{className:\"react-datepicker-manager\"},de.default.createElement(pe.Reference,null,(function(e){var t=e.ref;return de.default.createElement(\"div\",{ref:t,className:m},l)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:\"bottom-start\"}}}]),r}(de.default.Component),$r=\"react-datepicker-ignore-onclickoutside\",zr=lt.default(Hr);var Gr=\"Date input not valid.\",Jr=function(e){wt(r,e);var t=Ct(r);function r(e){var a;return ht(this,r),Dt(bt(a=t.call(this,e)),\"getPreSelection\",(function(){return a.props.openToDate?a.props.openToDate:a.props.selectsEnd&&a.props.startDate?a.props.startDate:a.props.selectsStart&&a.props.endDate?a.props.endDate:Yt()})),Dt(bt(a),\"calcInitialState\",(function(){var e,t=a.getPreSelection(),r=Dr(a.props),n=vr(a.props),o=r&&nt.default(t,Ve.default(r))?r:n&&at.default(t,Je.default(n))?n:t;return{open:a.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=a.props.selectsRange?a.props.startDate:a.props.selected)&&void 0!==e?e:o,highlightDates:wr(a.props.highlightDates),focused:!1,shouldFocusDayInline:!1}})),Dt(bt(a),\"clearPreventFocusTimeout\",(function(){a.preventFocusTimeout&&clearTimeout(a.preventFocusTimeout)})),Dt(bt(a),\"setFocus\",(function(){a.input&&a.input.focus&&a.input.focus({preventScroll:!0})})),Dt(bt(a),\"setBlur\",(function(){a.input&&a.input.blur&&a.input.blur(),a.cancelFocusInput()})),Dt(bt(a),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.setState({open:e,preSelection:e&&a.state.open?a.state.preSelection:a.calcInitialState().preSelection,lastPreSelectChange:Zr},(function(){e||a.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&a.setBlur(),a.setState({inputValue:null})}))}))})),Dt(bt(a),\"inputOk\",(function(){return ue.default(a.state.preSelection)})),Dt(bt(a),\"isCalendarOpen\",(function(){return void 0===a.props.open?a.state.open&&!a.props.disabled&&!a.props.readOnly:a.props.open})),Dt(bt(a),\"handleFocus\",(function(e){a.state.preventFocus||(a.props.onFocus(e),a.props.preventOpenOnFocus||a.props.readOnly||a.setOpen(!0)),a.setState({focused:!0})})),Dt(bt(a),\"cancelFocusInput\",(function(){clearTimeout(a.inputFocusTimeout),a.inputFocusTimeout=null})),Dt(bt(a),\"deferFocusInput\",(function(){a.cancelFocusInput(),a.inputFocusTimeout=setTimeout((function(){return a.setFocus()}),1)})),Dt(bt(a),\"handleDropdownFocus\",(function(){a.cancelFocusInput()})),Dt(bt(a),\"handleBlur\",(function(e){(!a.state.open||a.props.withPortal||a.props.showTimeInput)&&a.props.onBlur(e),a.setState({focused:!1})})),Dt(bt(a),\"handleCalendarClickOutside\",(function(e){a.props.inline||a.setOpen(!1),a.props.onClickOutside(e),a.props.withPortal&&e.preventDefault()})),Dt(bt(a),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;rb}return!1}function v(a,b,c,d,e,f){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}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(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(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=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=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();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=td(a.document)}return b}\nfunction yd(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)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!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=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;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}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(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===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))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}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import React, { Fragment, useEffect, useState, useRef } from \"react\";\nimport \"./Marquee.scss\";\n\ninterface MarqueeProps {\n /**\n * Inline style for the container div\n * Type: object\n * Default: {}\n */\n style?: React.CSSProperties;\n /**\n * Class name to style the container div\n * Type: string\n * Default: \"\"\n */\n className?: string;\n /**\n * Whether to play or pause the marquee\n * Type: boolean\n * Default: true\n */\n play?: boolean;\n /**\n * Whether to pause the marquee when hovered\n * Type: boolean\n * Default: false\n */\n pauseOnHover?: boolean;\n /**\n * Whether to pause the marquee when clicked\n * Type: boolean\n * Default: false\n */\n pauseOnClick?: boolean;\n /**\n * The direction the marquee is sliding\n * Type: \"left\" or \"right\"\n * Default: \"left\"\n */\n direction?: \"left\" | \"right\";\n /**\n * Speed calculated as pixels/second\n * Type: number\n * Default: 20\n */\n speed?: number;\n /**\n * Duration to delay the animation after render, in seconds\n * Type: number\n * Default: 0\n */\n delay?: number;\n /**\n * The number of times the marquee should loop, 0 is equivalent to infinite\n * Type: number\n * Default: 0\n */\n loop?: number;\n /**\n * Whether to show the gradient or not\n * Type: boolean\n * Default: true\n */\n gradient?: boolean;\n /**\n * The rgb color of the gradient as an array of length 3\n * Type: Array of length 3\n * Default: [255, 255, 255]\n */\n gradientColor?: [number, number, number];\n /**\n * The width of the gradient on either side\n * Type: string\n * Default: 200\n */\n gradientWidth?: number | string;\n /**\n * A callback for when the marquee finishes scrolling and stops. Only calls if loop is non-zero.\n * Type: Function\n * Default: null\n */\n onFinish?: () => void;\n /**\n * A callback for when the marquee finishes a loop. Does not call if maximum loops are reached (use onFinish instead).\n * Type: Function\n * Default: null\n */\n onCycleComplete?: () => void;\n /**\n * The children rendered inside the marquee\n * Type: ReactNode\n * Default: null\n */\n children?: React.ReactNode;\n}\n\nconst Marquee: React.FC = ({\n style = {},\n className = \"\",\n play = true,\n pauseOnHover = false,\n pauseOnClick = false,\n direction = \"left\",\n speed = 20,\n delay = 0,\n loop = 0,\n gradient = true,\n gradientColor = [255, 255, 255],\n gradientWidth = 200,\n onFinish,\n onCycleComplete,\n children,\n}) => {\n // React Hooks\n const [containerWidth, setContainerWidth] = useState(0);\n const [marqueeWidth, setMarqueeWidth] = useState(0);\n const [isMounted, setIsMounted] = useState(false);\n const containerRef = useRef(null);\n const marqueeRef = useRef(null);\n\n useEffect(() => {\n if (!isMounted) return;\n\n const calculateWidth = () => {\n // Find width of container and width of marquee\n if (marqueeRef.current && containerRef.current) {\n setContainerWidth(containerRef.current.getBoundingClientRect().width);\n setMarqueeWidth(marqueeRef.current.getBoundingClientRect().width);\n }\n };\n\n calculateWidth();\n // Rerender on window resize\n window.addEventListener(\"resize\", calculateWidth);\n return () => {\n window.removeEventListener(\"resize\", calculateWidth);\n };\n }, [isMounted]);\n\n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n // Gradient color in an unfinished rgba format\n const rgbaGradientColor = `rgba(${gradientColor[0]}, ${gradientColor[1]}, ${gradientColor[2]}`;\n\n // Animation duration\n const duration =\n marqueeWidth < containerWidth\n ? containerWidth / speed\n : marqueeWidth / speed;\n\n return (\n \n {!isMounted ? null : (\n \n {gradient && (\n \n )}\n \n {children}\n
\n \n {children}\n \n \n )}\n \n );\n};\n\nexport default Marquee;\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"react\")):\"function\"==typeof define&&define.amd?define([\"react\"],t):\"object\"==typeof exports?exports.GoogleLogin=t(require(\"react\")):e.GoogleLogin=t(e.react)}(\"undefined\"!=typeof self?self:this,(function(e){return o={},t.m=n=[function(t){t.exports=e},function(e,t,n){e.exports=n(2)()},function(e,t,n){\"use strict\";function o(){}function r(){}var i=n(3);r.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,r,a){if(a!==i){var c=Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw c.name=\"Invariant Violation\",c}}function t(){return e}var n={array:e.isRequired=e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:o};return n.PropTypes=n}},function(e){\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(e,t,n){\"use strict\";function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],o=!0,r=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(o=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);o=!0);}catch(e){r=!0,i=e}finally{try{o||null==c.return||c.return()}finally{if(r)throw i}}return n}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(n):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function r(e,t){null!=t&&t<=e.length||(t=e.length);for(var n=0,o=Array(t);n, where each TransitionPlainStyle is of the format\n// {key: string, data?: any, style: PlainStyle}. However, the way we keep\n// internal states doesn't contain such a data structure (check the state and\n// TransitionMotionState). So when children function and others ask for such\n// data we need to generate them on the fly by combining mergedPropsStyles and\n// currentStyles/lastIdealStyles\nfunction rehydrateStyles(mergedPropsStyles, unreadPropStyles, plainStyles) {\n // Copy the value to a `const` so that Flow understands that the const won't\n // change and will be non-nullable in the callback below.\n var cUnreadPropStyles = unreadPropStyles;\n if (cUnreadPropStyles == null) {\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n return {\n key: mergedPropsStyle.key,\n data: mergedPropsStyle.data,\n style: plainStyles[i]\n };\n });\n }\n return mergedPropsStyles.map(function (mergedPropsStyle, i) {\n for (var j = 0; j < cUnreadPropStyles.length; j++) {\n if (cUnreadPropStyles[j].key === mergedPropsStyle.key) {\n return {\n key: cUnreadPropStyles[j].key,\n data: cUnreadPropStyles[j].data,\n style: plainStyles[i]\n };\n }\n }\n return { key: mergedPropsStyle.key, data: mergedPropsStyle.data, style: plainStyles[i] };\n });\n}\n\nfunction shouldStopAnimationAll(currentStyles, destStyles, currentVelocities, mergedPropsStyles) {\n if (mergedPropsStyles.length !== destStyles.length) {\n return false;\n }\n\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (mergedPropsStyles[i].key !== destStyles[i].key) {\n return false;\n }\n }\n\n // we have the invariant that mergedPropsStyles and\n // currentStyles/currentVelocities/last* are synced in terms of cells, see\n // mergeAndSync comment for more info\n for (var i = 0; i < mergedPropsStyles.length; i++) {\n if (!_shouldStopAnimation2['default'](currentStyles[i], destStyles[i].style, currentVelocities[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n// core key merging logic\n\n// things to do: say previously merged style is {a, b}, dest style (prop) is {b,\n// c}, previous current (interpolating) style is {a, b}\n// **invariant**: current[i] corresponds to merged[i] in terms of key\n\n// steps:\n// turn merged style into {a?, b, c}\n// add c, value of c is destStyles.c\n// maybe remove a, aka call willLeave(a), then merged is either {b, c} or {a, b, c}\n// turn current (interpolating) style from {a, b} into {a?, b, c}\n// maybe remove a\n// certainly add c, value of c is willEnter(c)\n// loop over merged and construct new current\n// dest doesn't change, that's owner's\nfunction mergeAndSync(willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldLastIdealStyles, oldLastIdealVelocities) {\n var newMergedPropsStyles = _mergeDiff2['default'](oldMergedPropsStyles, destStyles, function (oldIndex, oldMergedPropsStyle) {\n var leavingStyle = willLeave(oldMergedPropsStyle);\n if (leavingStyle == null) {\n didLeave({ key: oldMergedPropsStyle.key, data: oldMergedPropsStyle.data });\n return null;\n }\n if (_shouldStopAnimation2['default'](oldCurrentStyles[oldIndex], leavingStyle, oldCurrentVelocities[oldIndex])) {\n didLeave({ key: oldMergedPropsStyle.key, data: oldMergedPropsStyle.data });\n return null;\n }\n return { key: oldMergedPropsStyle.key, data: oldMergedPropsStyle.data, style: leavingStyle };\n });\n\n var newCurrentStyles = [];\n var newCurrentVelocities = [];\n var newLastIdealStyles = [];\n var newLastIdealVelocities = [];\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyleCell = newMergedPropsStyles[i];\n var foundOldIndex = null;\n for (var j = 0; j < oldMergedPropsStyles.length; j++) {\n if (oldMergedPropsStyles[j].key === newMergedPropsStyleCell.key) {\n foundOldIndex = j;\n break;\n }\n }\n // TODO: key search code\n if (foundOldIndex == null) {\n var plainStyle = willEnter(newMergedPropsStyleCell);\n newCurrentStyles[i] = plainStyle;\n newLastIdealStyles[i] = plainStyle;\n\n var velocity = _mapToZero2['default'](newMergedPropsStyleCell.style);\n newCurrentVelocities[i] = velocity;\n newLastIdealVelocities[i] = velocity;\n } else {\n newCurrentStyles[i] = oldCurrentStyles[foundOldIndex];\n newLastIdealStyles[i] = oldLastIdealStyles[foundOldIndex];\n newCurrentVelocities[i] = oldCurrentVelocities[foundOldIndex];\n newLastIdealVelocities[i] = oldLastIdealVelocities[foundOldIndex];\n }\n }\n\n return [newMergedPropsStyles, newCurrentStyles, newCurrentVelocities, newLastIdealStyles, newLastIdealVelocities];\n}\n\nvar TransitionMotion = (function (_React$Component) {\n _inherits(TransitionMotion, _React$Component);\n\n _createClass(TransitionMotion, null, [{\n key: 'propTypes',\n value: {\n defaultStyles: _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].number).isRequired\n })),\n styles: _propTypes2['default'].oneOfType([_propTypes2['default'].func, _propTypes2['default'].arrayOf(_propTypes2['default'].shape({\n key: _propTypes2['default'].string.isRequired,\n data: _propTypes2['default'].any,\n style: _propTypes2['default'].objectOf(_propTypes2['default'].oneOfType([_propTypes2['default'].number, _propTypes2['default'].object])).isRequired\n }))]).isRequired,\n children: _propTypes2['default'].func.isRequired,\n willEnter: _propTypes2['default'].func,\n willLeave: _propTypes2['default'].func,\n didLeave: _propTypes2['default'].func\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n willEnter: function willEnter(styleThatEntered) {\n return _stripStyle2['default'](styleThatEntered.style);\n },\n // recall: returning null makes the current unmounting TransitionStyle\n // disappear immediately\n willLeave: function willLeave() {\n return null;\n },\n didLeave: function didLeave() {}\n },\n enumerable: true\n }]);\n\n function TransitionMotion(props) {\n var _this = this;\n\n _classCallCheck(this, TransitionMotion);\n\n _React$Component.call(this, props);\n this.unmounting = false;\n this.animationID = null;\n this.prevTime = 0;\n this.accumulatedTime = 0;\n this.unreadPropStyles = null;\n\n this.clearUnreadPropStyle = function (unreadPropStyles) {\n var _mergeAndSync = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, unreadPropStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var mergedPropsStyles = _mergeAndSync[0];\n var currentStyles = _mergeAndSync[1];\n var currentVelocities = _mergeAndSync[2];\n var lastIdealStyles = _mergeAndSync[3];\n var lastIdealVelocities = _mergeAndSync[4];\n\n for (var i = 0; i < unreadPropStyles.length; i++) {\n var unreadPropStyle = unreadPropStyles[i].style;\n var dirty = false;\n\n for (var key in unreadPropStyle) {\n if (!Object.prototype.hasOwnProperty.call(unreadPropStyle, key)) {\n continue;\n }\n\n var styleValue = unreadPropStyle[key];\n if (typeof styleValue === 'number') {\n if (!dirty) {\n dirty = true;\n currentStyles[i] = _extends({}, currentStyles[i]);\n currentVelocities[i] = _extends({}, currentVelocities[i]);\n lastIdealStyles[i] = _extends({}, lastIdealStyles[i]);\n lastIdealVelocities[i] = _extends({}, lastIdealVelocities[i]);\n mergedPropsStyles[i] = {\n key: mergedPropsStyles[i].key,\n data: mergedPropsStyles[i].data,\n style: _extends({}, mergedPropsStyles[i].style)\n };\n }\n currentStyles[i][key] = styleValue;\n currentVelocities[i][key] = 0;\n lastIdealStyles[i][key] = styleValue;\n lastIdealVelocities[i][key] = 0;\n mergedPropsStyles[i].style[key] = styleValue;\n }\n }\n }\n\n // unlike the other 2 components, we can't detect staleness and optionally\n // opt out of setState here. each style object's data might contain new\n // stuff we're not/cannot compare\n _this.setState({\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n mergedPropsStyles: mergedPropsStyles,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities\n });\n };\n\n this.startAnimationIfNecessary = function () {\n if (_this.unmounting) {\n return;\n }\n\n // TODO: when config is {a: 10} and dest is {a: 10} do we raf once and\n // call cb? No, otherwise accidental parent rerender causes cb trigger\n _this.animationID = _raf2['default'](function (timestamp) {\n // https://github.com/chenglou/react-motion/pull/420\n // > if execution passes the conditional if (this.unmounting), then\n // executes async defaultRaf and after that component unmounts and after\n // that the callback of defaultRaf is called, then setState will be called\n // on unmounted component.\n if (_this.unmounting) {\n return;\n }\n\n var propStyles = _this.props.styles;\n var destStyles = typeof propStyles === 'function' ? propStyles(rehydrateStyles(_this.state.mergedPropsStyles, _this.unreadPropStyles, _this.state.lastIdealStyles)) : propStyles;\n\n // check if we need to animate in the first place\n if (shouldStopAnimationAll(_this.state.currentStyles, destStyles, _this.state.currentVelocities, _this.state.mergedPropsStyles)) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.accumulatedTime = 0;\n return;\n }\n\n var currentTime = timestamp || _performanceNow2['default']();\n var timeDelta = currentTime - _this.prevTime;\n _this.prevTime = currentTime;\n _this.accumulatedTime = _this.accumulatedTime + timeDelta;\n // more than 10 frames? prolly switched browser tab. Restart\n if (_this.accumulatedTime > msPerFrame * 10) {\n _this.accumulatedTime = 0;\n }\n\n if (_this.accumulatedTime === 0) {\n // no need to cancel animationID here; shouldn't have any in flight\n _this.animationID = null;\n _this.startAnimationIfNecessary();\n return;\n }\n\n var currentFrameCompletion = (_this.accumulatedTime - Math.floor(_this.accumulatedTime / msPerFrame) * msPerFrame) / msPerFrame;\n var framesToCatchUp = Math.floor(_this.accumulatedTime / msPerFrame);\n\n var _mergeAndSync2 = mergeAndSync(_this.props.willEnter, _this.props.willLeave, _this.props.didLeave, _this.state.mergedPropsStyles, destStyles, _this.state.currentStyles, _this.state.currentVelocities, _this.state.lastIdealStyles, _this.state.lastIdealVelocities);\n\n var newMergedPropsStyles = _mergeAndSync2[0];\n var newCurrentStyles = _mergeAndSync2[1];\n var newCurrentVelocities = _mergeAndSync2[2];\n var newLastIdealStyles = _mergeAndSync2[3];\n var newLastIdealVelocities = _mergeAndSync2[4];\n\n for (var i = 0; i < newMergedPropsStyles.length; i++) {\n var newMergedPropsStyle = newMergedPropsStyles[i].style;\n var newCurrentStyle = {};\n var newCurrentVelocity = {};\n var newLastIdealStyle = {};\n var newLastIdealVelocity = {};\n\n for (var key in newMergedPropsStyle) {\n if (!Object.prototype.hasOwnProperty.call(newMergedPropsStyle, key)) {\n continue;\n }\n\n var styleValue = newMergedPropsStyle[key];\n if (typeof styleValue === 'number') {\n newCurrentStyle[key] = styleValue;\n newCurrentVelocity[key] = 0;\n newLastIdealStyle[key] = styleValue;\n newLastIdealVelocity[key] = 0;\n } else {\n var newLastIdealStyleValue = newLastIdealStyles[i][key];\n var newLastIdealVelocityValue = newLastIdealVelocities[i][key];\n for (var j = 0; j < framesToCatchUp; j++) {\n var _stepper = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n newLastIdealStyleValue = _stepper[0];\n newLastIdealVelocityValue = _stepper[1];\n }\n\n var _stepper2 = _stepper4['default'](msPerFrame / 1000, newLastIdealStyleValue, newLastIdealVelocityValue, styleValue.val, styleValue.stiffness, styleValue.damping, styleValue.precision);\n\n var nextIdealX = _stepper2[0];\n var nextIdealV = _stepper2[1];\n\n newCurrentStyle[key] = newLastIdealStyleValue + (nextIdealX - newLastIdealStyleValue) * currentFrameCompletion;\n newCurrentVelocity[key] = newLastIdealVelocityValue + (nextIdealV - newLastIdealVelocityValue) * currentFrameCompletion;\n newLastIdealStyle[key] = newLastIdealStyleValue;\n newLastIdealVelocity[key] = newLastIdealVelocityValue;\n }\n }\n\n newLastIdealStyles[i] = newLastIdealStyle;\n newLastIdealVelocities[i] = newLastIdealVelocity;\n newCurrentStyles[i] = newCurrentStyle;\n newCurrentVelocities[i] = newCurrentVelocity;\n }\n\n _this.animationID = null;\n // the amount we're looped over above\n _this.accumulatedTime -= framesToCatchUp * msPerFrame;\n\n _this.setState({\n currentStyles: newCurrentStyles,\n currentVelocities: newCurrentVelocities,\n lastIdealStyles: newLastIdealStyles,\n lastIdealVelocities: newLastIdealVelocities,\n mergedPropsStyles: newMergedPropsStyles\n });\n\n _this.unreadPropStyles = null;\n\n _this.startAnimationIfNecessary();\n });\n };\n\n this.state = this.defaultState();\n }\n\n TransitionMotion.prototype.defaultState = function defaultState() {\n var _props = this.props;\n var defaultStyles = _props.defaultStyles;\n var styles = _props.styles;\n var willEnter = _props.willEnter;\n var willLeave = _props.willLeave;\n var didLeave = _props.didLeave;\n\n var destStyles = typeof styles === 'function' ? styles(defaultStyles) : styles;\n\n // this is special. for the first time around, we don't have a comparison\n // between last (no last) and current merged props. we'll compute last so:\n // say default is {a, b} and styles (dest style) is {b, c}, we'll\n // fabricate last as {a, b}\n var oldMergedPropsStyles = undefined;\n if (defaultStyles == null) {\n oldMergedPropsStyles = destStyles;\n } else {\n oldMergedPropsStyles = defaultStyles.map(function (defaultStyleCell) {\n // TODO: key search code\n for (var i = 0; i < destStyles.length; i++) {\n if (destStyles[i].key === defaultStyleCell.key) {\n return destStyles[i];\n }\n }\n return defaultStyleCell;\n });\n }\n var oldCurrentStyles = defaultStyles == null ? destStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _stripStyle2['default'](s.style);\n });\n var oldCurrentVelocities = defaultStyles == null ? destStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n }) : defaultStyles.map(function (s) {\n return _mapToZero2['default'](s.style);\n });\n\n var _mergeAndSync3 = mergeAndSync(\n // Because this is an old-style createReactClass component, Flow doesn't\n // understand that the willEnter and willLeave props have default values\n // and will always be present.\n willEnter, willLeave, didLeave, oldMergedPropsStyles, destStyles, oldCurrentStyles, oldCurrentVelocities, oldCurrentStyles, // oldLastIdealStyles really\n oldCurrentVelocities);\n\n var mergedPropsStyles = _mergeAndSync3[0];\n var currentStyles = _mergeAndSync3[1];\n var currentVelocities = _mergeAndSync3[2];\n var lastIdealStyles = _mergeAndSync3[3];\n var lastIdealVelocities = _mergeAndSync3[4];\n // oldLastIdealVelocities really\n\n return {\n currentStyles: currentStyles,\n currentVelocities: currentVelocities,\n lastIdealStyles: lastIdealStyles,\n lastIdealVelocities: lastIdealVelocities,\n mergedPropsStyles: mergedPropsStyles\n };\n };\n\n // after checking for unreadPropStyles != null, we manually go set the\n // non-interpolating values (those that are a number, without a spring\n // config)\n\n TransitionMotion.prototype.componentDidMount = function componentDidMount() {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n };\n\n TransitionMotion.prototype.componentWillReceiveProps = function componentWillReceiveProps(props) {\n if (this.unreadPropStyles) {\n // previous props haven't had the chance to be set yet; set them here\n this.clearUnreadPropStyle(this.unreadPropStyles);\n }\n\n var styles = props.styles;\n if (typeof styles === 'function') {\n this.unreadPropStyles = styles(rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.lastIdealStyles));\n } else {\n this.unreadPropStyles = styles;\n }\n\n if (this.animationID == null) {\n this.prevTime = _performanceNow2['default']();\n this.startAnimationIfNecessary();\n }\n };\n\n TransitionMotion.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unmounting = true;\n if (this.animationID != null) {\n _raf2['default'].cancel(this.animationID);\n this.animationID = null;\n }\n };\n\n TransitionMotion.prototype.render = function render() {\n var hydratedStyles = rehydrateStyles(this.state.mergedPropsStyles, this.unreadPropStyles, this.state.currentStyles);\n var renderedChildren = this.props.children(hydratedStyles);\n return renderedChildren && _react2['default'].Children.only(renderedChildren);\n };\n\n return TransitionMotion;\n})(_react2['default'].Component);\n\nexports['default'] = TransitionMotion;\nmodule.exports = exports['default'];\n\n// list of styles, each containing interpolating values. Part of what's passed\n// to children function. Notice that this is\n// Array, without the wrapper that is {key: ...,\n// data: ... style: ActualInterpolatingStyleObject}. Only mergedPropsStyles\n// contains the key & data info (so that we only have a single source of truth\n// for these, and to save space). Check the comment for `rehydrateStyles` to\n// see how we regenerate the entirety of what's passed to children function\n\n// the array that keeps track of currently rendered stuff! Including stuff\n// that you've unmounted but that's still animating. This is where it lives\n\n// it's possible that currentStyle's value is stale: if props is immediately\n// changed from 0 to 400 to spring(0) again, the async currentStyle is still\n// at 0 (didn't have time to tick and interpolate even once). If we naively\n// compare currentStyle with destVal it'll be 0 === 0 (no animation, stop).\n// In reality currentStyle should be 400","\n\n// currently used to initiate the velocity style object to 0\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mapToZero;\n\nfunction mapToZero(obj) {\n var ret = {};\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n ret[key] = 0;\n }\n }\n return ret;\n}\n\nmodule.exports = exports['default'];","\n\n// core keys merging algorithm. If previous render's keys are [a, b], and the\n// next render's [c, b, d], what's the final merged keys and ordering?\n\n// - c and a must both be before b\n// - b before d\n// - ordering between a and c ambiguous\n\n// this reduces to merging two partially ordered lists (e.g. lists where not\n// every item has a definite ordering, like comparing a and c above). For the\n// ambiguous ordering we deterministically choose to place the next render's\n// item after the previous'; so c after a\n\n// this is called a topological sorting. Except the existing algorithms don't\n// work well with js bc of the amount of allocation, and isn't optimized for our\n// current use-case bc the runtime is linear in terms of edges (see wiki for\n// meaning), which is huge when two lists have many common elements\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mergeDiff;\n\nfunction mergeDiff(prev, next, onRemove) {\n // bookkeeping for easier access of a key's index below. This is 2 allocations +\n // potentially triggering chrome hash map mode for objs (so it might be faster\n\n var prevKeyIndex = {};\n for (var i = 0; i < prev.length; i++) {\n prevKeyIndex[prev[i].key] = i;\n }\n var nextKeyIndex = {};\n for (var i = 0; i < next.length; i++) {\n nextKeyIndex[next[i].key] = i;\n }\n\n // first, an overly elaborate way of merging prev and next, eliminating\n // duplicates (in terms of keys). If there's dupe, keep the item in next).\n // This way of writing it saves allocations\n var ret = [];\n for (var i = 0; i < next.length; i++) {\n ret[i] = next[i];\n }\n for (var i = 0; i < prev.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(nextKeyIndex, prev[i].key)) {\n // this is called my TM's `mergeAndSync`, which calls willLeave. We don't\n // merge in keys that the user desires to kill\n var fill = onRemove(i, prev[i]);\n if (fill != null) {\n ret.push(fill);\n }\n }\n }\n\n // now all the items all present. Core sorting logic to have the right order\n return ret.sort(function (a, b) {\n var nextOrderA = nextKeyIndex[a.key];\n var nextOrderB = nextKeyIndex[b.key];\n var prevOrderA = prevKeyIndex[a.key];\n var prevOrderB = prevKeyIndex[b.key];\n\n if (nextOrderA != null && nextOrderB != null) {\n // both keys in next\n return nextKeyIndex[a.key] - nextKeyIndex[b.key];\n } else if (prevOrderA != null && prevOrderB != null) {\n // both keys in prev\n return prevKeyIndex[a.key] - prevKeyIndex[b.key];\n } else if (nextOrderA != null) {\n // key a in next, key b in prev\n\n // how to determine the order between a and b? We find a \"pivot\" (term\n // abuse), a key present in both prev and next, that is sandwiched between\n // a and b. In the context of our above example, if we're comparing a and\n // d, b's (the only) pivot\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n\n if (nextOrderA < nextKeyIndex[pivot] && prevOrderB > prevKeyIndex[pivot]) {\n return -1;\n } else if (nextOrderA > nextKeyIndex[pivot] && prevOrderB < prevKeyIndex[pivot]) {\n return 1;\n }\n }\n // pluggable. default to: next bigger than prev\n return 1;\n }\n // prevOrderA, nextOrderB\n for (var i = 0; i < next.length; i++) {\n var pivot = next[i].key;\n if (!Object.prototype.hasOwnProperty.call(prevKeyIndex, pivot)) {\n continue;\n }\n if (nextOrderB < nextKeyIndex[pivot] && prevOrderA > prevKeyIndex[pivot]) {\n return 1;\n } else if (nextOrderB > nextKeyIndex[pivot] && prevOrderA < prevKeyIndex[pivot]) {\n return -1;\n }\n }\n // pluggable. default to: next bigger than prev\n return -1;\n });\n}\n\nmodule.exports = exports['default'];\n// to loop through and find a key's index each time), but I no longer care","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = {\n noWobble: { stiffness: 170, damping: 26 }, // the default, if nothing provided\n gentle: { stiffness: 120, damping: 14 },\n wobbly: { stiffness: 180, damping: 12 },\n stiff: { stiffness: 210, damping: 20 }\n};\nmodule.exports = exports[\"default\"];","\n\n// usage assumption: currentStyle values have already been rendered but it says\n// nothing of whether currentStyle is stale (see unreadPropStyle)\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = shouldStopAnimation;\n\nfunction shouldStopAnimation(currentStyle, style, currentVelocity) {\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n\n if (currentVelocity[key] !== 0) {\n return false;\n }\n\n var styleValue = typeof style[key] === 'number' ? style[key] : style[key].val;\n // stepper will have already taken care of rounding precision errors, so\n // won't have such thing as 0.9999 !=== 1\n if (currentStyle[key] !== styleValue) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || 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; };\n\nexports['default'] = spring;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _presets = require('./presets');\n\nvar _presets2 = _interopRequireDefault(_presets);\n\nvar defaultConfig = _extends({}, _presets2['default'].noWobble, {\n precision: 0.01\n});\n\nfunction spring(val, config) {\n return _extends({}, defaultConfig, config, { val: val });\n}\n\nmodule.exports = exports['default'];","\n\n// stepper is used a lot. Saves allocation to return the same array wrapper.\n// This is fine and danger-free against mutations because the callsite\n// immediately destructures it and gets the numbers inside without passing the\n\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stepper;\n\nvar reusedTuple = [0, 0];\n\nfunction stepper(secondPerFrame, x, v, destX, k, b, precision) {\n // Spring stiffness, in kg / s^2\n\n // for animations, destX is really spring length (spring at rest). initial\n // position is considered as the stretched/compressed position of a spring\n var Fspring = -k * (x - destX);\n\n // Damping, in kg / s\n var Fdamper = -b * v;\n\n // usually we put mass here, but for animation purposes, specifying mass is a\n // bit redundant. you could simply adjust k and b accordingly\n // let a = (Fspring + Fdamper) / mass;\n var a = Fspring + Fdamper;\n\n var newV = v + a * secondPerFrame;\n var newX = x + newV * secondPerFrame;\n\n if (Math.abs(newV) < precision && Math.abs(newX - destX) < precision) {\n reusedTuple[0] = destX;\n reusedTuple[1] = 0;\n return reusedTuple;\n }\n\n reusedTuple[0] = newX;\n reusedTuple[1] = newV;\n return reusedTuple;\n}\n\nmodule.exports = exports[\"default\"];\n// array reference around.","\n// turn {x: {val: 1, stiffness: 1, damping: 2}, y: 2} generated by\n// `{x: spring(1, {stiffness: 1, damping: 2}), y: 2}` into {x: 1, y: 2}\n\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = stripStyle;\n\nfunction stripStyle(style) {\n var ret = {};\n for (var key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n ret[key] = typeof style[key] === 'number' ? style[key] : style[key].val;\n }\n return ret;\n}\n\nmodule.exports = exports['default'];","import {createElement,Component}from'react';import {findDOMNode}from'react-dom';function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // SVG elements do not technically reside in the rendered DOM, so\n // they do not have classList directly, but they offer a link to their\n // corresponding element, which can have classList. This extra check is for\n // that case.\n // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n if (current.correspondingElement) {\n return current.correspondingElement.classList.contains(ignoreClass);\n }\n\n return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n if (current === componentNode) {\n return true;\n } // If source=local then this event came from 'somewhere'\n // inside and should be ignored. We could handle this with\n // a layered approach, too, but that requires going back to\n // thinking in terms of Dom node nesting, running counter\n // to React's 'you shouldn't care about the DOM' philosophy.\n // Also cover shadowRoot node by checking current.host\n\n\n while (current.parentNode || current.host) {\n // Only check normal node without shadowRoot\n if (current.parentNode && isNodeFound(current, componentNode, ignoreClass)) {\n return true;\n }\n\n current = current.parentNode || current.host;\n }\n\n return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n return;\n }\n\n var passive = false;\n var options = Object.defineProperty({}, 'passive', {\n get: function get() {\n passive = true;\n }\n });\n\n var noop = function noop() {};\n\n window.addEventListener('testPassiveEventSupport', noop, options);\n window.removeEventListener('testPassiveEventSupport', noop, options);\n return passive;\n};function autoInc(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();var passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n var handlerOptions = null;\n var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n if (isTouchEvent && passiveEventSupport) {\n handlerOptions = {\n passive: !instance.props.preventDefault\n };\n }\n\n return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n var _class, _temp;\n\n var componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inheritsLoose(onClickOutside, _Component);\n\n function onClickOutside(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.__outsideClickHandler = function (event) {\n if (typeof _this.__clickOutsideHandlerProp === 'function') {\n _this.__clickOutsideHandlerProp(event);\n\n return;\n }\n\n var instance = _this.getInstance();\n\n if (typeof instance.props.handleClickOutside === 'function') {\n instance.props.handleClickOutside(event);\n return;\n }\n\n if (typeof instance.handleClickOutside === 'function') {\n instance.handleClickOutside(event);\n return;\n }\n\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a handleClickOutside(event) function for processing outside click events.\");\n };\n\n _this.__getComponentNode = function () {\n var instance = _this.getInstance();\n\n if (config && typeof config.setClickOutsideRef === 'function') {\n return config.setClickOutsideRef()(instance);\n }\n\n if (typeof instance.setClickOutsideRef === 'function') {\n return instance.setClickOutsideRef();\n }\n\n return findDOMNode(instance);\n };\n\n _this.enableOnClickOutside = function () {\n if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n return;\n }\n\n if (typeof passiveEventSupport === 'undefined') {\n passiveEventSupport = testPassiveEventSupport();\n }\n\n enabledInstances[_this._uid] = true;\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n handlersMap[_this._uid] = function (event) {\n if (_this.componentNode === null) return;\n\n if (_this.props.preventDefault) {\n event.preventDefault();\n }\n\n if (_this.props.stopPropagation) {\n event.stopPropagation();\n }\n\n if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n var current = event.composed && event.composedPath && event.composedPath().shift() || event.target;\n\n if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n return;\n }\n\n _this.__outsideClickHandler(event);\n };\n\n events.forEach(function (eventName) {\n document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n };\n\n _this.disableOnClickOutside = function () {\n delete enabledInstances[_this._uid];\n var fn = handlersMap[_this._uid];\n\n if (fn && typeof document !== 'undefined') {\n var events = _this.props.eventTypes;\n\n if (!events.forEach) {\n events = [events];\n }\n\n events.forEach(function (eventName) {\n return document.removeEventListener(eventName, fn, getEventHandlerOptions(_assertThisInitialized(_this), eventName));\n });\n delete handlersMap[_this._uid];\n }\n };\n\n _this.getRef = function (ref) {\n return _this.instanceRef = ref;\n };\n\n _this._uid = uid();\n return _this;\n }\n /**\n * Access the WrappedComponent's instance.\n */\n\n\n var _proto = onClickOutside.prototype;\n\n _proto.getInstance = function getInstance() {\n if (WrappedComponent.prototype && !WrappedComponent.prototype.isReactComponent) {\n return this;\n }\n\n var ref = this.instanceRef;\n return ref.getInstance ? ref.getInstance() : ref;\n };\n\n /**\n * Add click listeners to the current document,\n * linked to this component's state.\n */\n _proto.componentDidMount = function componentDidMount() {\n // If we are in an environment without a DOM such\n // as shallow rendering or snapshots then we exit\n // early to prevent any unhandled errors being thrown.\n if (typeof document === 'undefined' || !document.createElement) {\n return;\n }\n\n var instance = this.getInstance();\n\n if (config && typeof config.handleClickOutside === 'function') {\n this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n if (typeof this.__clickOutsideHandlerProp !== 'function') {\n throw new Error(\"WrappedComponent: \" + componentName + \" lacks a function for processing outside click events specified by the handleClickOutside config option.\");\n }\n }\n\n this.componentNode = this.__getComponentNode(); // return early so we dont initiate onClickOutside\n\n if (this.props.disableOnClickOutside) return;\n this.enableOnClickOutside();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.componentNode = this.__getComponentNode();\n }\n /**\n * Remove all document's event listeners for this component\n */\n ;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.disableOnClickOutside();\n }\n /**\n * Can be called to explicitly enable event listening\n * for clicks and touches outside of this element.\n */\n ;\n\n /**\n * Pass-through render\n */\n _proto.render = function render() {\n // eslint-disable-next-line no-unused-vars\n var _this$props = this.props;\n _this$props.excludeScrollbar;\n var props = _objectWithoutPropertiesLoose(_this$props, [\"excludeScrollbar\"]);\n\n if (WrappedComponent.prototype && WrappedComponent.prototype.isReactComponent) {\n props.ref = this.getRef;\n } else {\n props.wrappedRef = this.getRef;\n }\n\n props.disableOnClickOutside = this.disableOnClickOutside;\n props.enableOnClickOutside = this.enableOnClickOutside;\n return createElement(WrappedComponent, props);\n };\n\n return onClickOutside;\n }(Component), _class.displayName = \"OnClickOutside(\" + componentName + \")\", _class.defaultProps = {\n eventTypes: ['mousedown', 'touchstart'],\n excludeScrollbar: config && config.excludeScrollbar || false,\n outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n preventDefault: false,\n stopPropagation: false\n }, _class.getClass = function () {\n return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n }, _temp;\n}export default onClickOutsideHOC;export{IGNORE_CLASS_NAME};","import * as React from 'react';\nexport var ManagerReferenceNodeContext = React.createContext();\nexport var ManagerReferenceNodeSetterContext = React.createContext();\nexport function Manager(_ref) {\n var children = _ref.children;\n\n var _React$useState = React.useState(null),\n referenceNode = _React$useState[0],\n setReferenceNode = _React$useState[1];\n\n var hasUnmounted = React.useRef(false);\n React.useEffect(function () {\n return function () {\n hasUnmounted.current = true;\n };\n }, []);\n var handleSetReferenceNode = React.useCallback(function (node) {\n if (!hasUnmounted.current) {\n setReferenceNode(node);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ManagerReferenceNodeContext.Provider, {\n value: referenceNode\n }, /*#__PURE__*/React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: handleSetReferenceNode\n }, children));\n}","import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\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\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","import * as React from 'react';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef } from './utils';\nimport { usePopper } from './usePopper';\n\nvar NOOP = function NOOP() {\n return void 0;\n};\n\nvar NOOP_PROMISE = function NOOP_PROMISE() {\n return Promise.resolve(null);\n};\n\nvar EMPTY_MODIFIERS = [];\nexport function Popper(_ref) {\n var _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? 'bottom' : _ref$placement,\n _ref$strategy = _ref.strategy,\n strategy = _ref$strategy === void 0 ? 'absolute' : _ref$strategy,\n _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? EMPTY_MODIFIERS : _ref$modifiers,\n referenceElement = _ref.referenceElement,\n onFirstUpdate = _ref.onFirstUpdate,\n innerRef = _ref.innerRef,\n children = _ref.children;\n var referenceNode = React.useContext(ManagerReferenceNodeContext);\n\n var _React$useState = React.useState(null),\n popperElement = _React$useState[0],\n setPopperElement = _React$useState[1];\n\n var _React$useState2 = React.useState(null),\n arrowElement = _React$useState2[0],\n setArrowElement = _React$useState2[1];\n\n React.useEffect(function () {\n setRef(innerRef, popperElement);\n }, [innerRef, popperElement]);\n var options = React.useMemo(function () {\n return {\n placement: placement,\n strategy: strategy,\n onFirstUpdate: onFirstUpdate,\n modifiers: [].concat(modifiers, [{\n name: 'arrow',\n enabled: arrowElement != null,\n options: {\n element: arrowElement\n }\n }])\n };\n }, [placement, strategy, onFirstUpdate, modifiers, arrowElement]);\n\n var _usePopper = usePopper(referenceElement || referenceNode, popperElement, options),\n state = _usePopper.state,\n styles = _usePopper.styles,\n forceUpdate = _usePopper.forceUpdate,\n update = _usePopper.update;\n\n var childrenProps = React.useMemo(function () {\n return {\n ref: setPopperElement,\n style: styles.popper,\n placement: state ? state.placement : placement,\n hasPopperEscaped: state && state.modifiersData.hide ? state.modifiersData.hide.hasPopperEscaped : null,\n isReferenceHidden: state && state.modifiersData.hide ? state.modifiersData.hide.isReferenceHidden : null,\n arrowProps: {\n style: styles.arrow,\n ref: setArrowElement\n },\n forceUpdate: forceUpdate || NOOP,\n update: update || NOOP_PROMISE\n };\n }, [setPopperElement, setArrowElement, placement, state, styles, update, forceUpdate]);\n return unwrapArray(children)(childrenProps);\n}","import * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\nexport function Reference(_ref) {\n var children = _ref.children,\n innerRef = _ref.innerRef;\n var setReferenceNode = React.useContext(ManagerReferenceNodeSetterContext);\n var refHandler = React.useCallback(function (node) {\n setRef(innerRef, node);\n safeInvoke(setReferenceNode, node);\n }, [innerRef, setReferenceNode]); // ran on unmount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n React.useEffect(function () {\n return function () {\n return setRef(innerRef, null);\n };\n }, []);\n React.useEffect(function () {\n warning(Boolean(setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n }, [setReferenceNode]);\n return unwrapArray(children)({\n ref: refHandler\n });\n}","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.distance,t=e.left,p=e.right,a=e.up,l=e.down,i=e.top,u=e.bottom,n=e.big,s=e.mirror,d=e.opposite,_=(r?r.toString():0)+((t?1:0)|(p?2:0)|(i||l?4:0)|(u||a?8:0)|(s?16:0)|(d?32:0)|(o?64:0)|(n?128:0));if(lookup.hasOwnProperty(_))return lookup[_];var f=t||p||a||l||i||u,y=void 0,b=void 0;if(f){if(!s!=!(o&&d)){var v=[p,t,u,i,l,a];t=v[0],p=v[1],i=v[2],u=v[3],a=v[4],l=v[5]}var c=r||(n?\"2000px\":\"100%\");y=t?\"-\"+c:p?c:\"0\",b=l||i?\"-\"+c:a||u?c:\"0\"}return lookup[_]=(0,_globals.animation)((o?\"to\":\"from\")+\" {opacity: 0;\"+(f?\" transform: translate3d(\"+y+\", \"+b+\", 0);\":\"\")+\"}\\n \"+(o?\"from\":\"to\")+\" {opacity: 1;transform: none;} \"),lookup[_]}function Fade(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=o.children,t=(o.out,o.forever),p=o.timeout,a=o.duration,l=void 0===a?_globals.defaults.duration:a,i=o.delay,u=void 0===i?_globals.defaults.delay:i,n=o.count,s=void 0===n?_globals.defaults.count:n,d=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),_={make:make,duration:void 0===p?l:p,delay:u,forever:t,count:s,style:{animationFillMode:\"both\"},reverse:d.left};return e?(0,_wrap2.default)(d,_,_,r):_}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,distance:_propTypes.string,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Fade.propTypes=propTypes,exports.default=Fade,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_slicedToArray=function(){function e(e,t){var i=[],s=!0,o=!1,n=void 0;try{for(var r,a=e[Symbol.iterator]();!(s=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);s=!0);}catch(e){o=!0,n=e}finally{try{!s&&a.return&&a.return()}finally{if(o)throw n}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),_extends=Object.assign||function(e){for(var t=1;t>2,l=a>>1;n=a,r=i.delay+(this.isOn?0:s-a-l),e.style.animationDuration=s-a+(this.isOn?l:-l)+\"ms\",e.style.animationDelay=i.delay+(this.isOn?a-l:0)+\"ms\"}return e.collapse={height:o,transition:\"height \"+n+\"ms ease \"+r+\"ms\",overflow:t.collapseOnly?\"hidden\":void 0},e}},{key:\"animate\",value:function(e){if(this&&this.el&&(this.unlisten(),this.isShown!==this.isOn)){this.isShown=this.isOn;var t=!this.isOn&&e.outEffect,i=e[t?\"outEffect\":\"inEffect\"],s=\"style\"in i&&i.style.animationName||void 0,o=void 0;e.collapseOnly?o={hasAppeared:!0,hasExited:!1,style:{opacity:1}}:((e.outEffect||this.isOn)&&i.make&&(s=i.make),o={hasAppeared:!0,hasExited:!1,collapse:void 0,style:_extends({},i.style,{animationDuration:i.duration+\"ms\",animationDelay:i.delay+\"ms\",animationIterationCount:i.forever?\"infinite\":i.count,opacity:1,animationName:s}),className:i.className}),this.setState(e.collapse?this.collapse(o,e,i):o),t?(this.savedChild=_react2.default.cloneElement(this.getChild()),this.animationEnd(this.invisible,e.cascade,i)):this.savedChild=!1,this.onReveal(e)}}},{key:\"onReveal\",value:function(e){e.onReveal&&this.isOn&&(this.onRevealTimeout&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)),e.wait?this.onRevealTimeout=window.setTimeout(e.onReveal,e.wait):e.onReveal())}},{key:\"componentWillUnmount\",value:function(){this.unlisten(),_globals.ssr&&(0,_globals.disableSsr)()}},{key:\"handleObserve\",value:function(e,t){_slicedToArray(e,1)[0].intersectionRatio>0&&(t.disconnect(),this.observer=null,this.reveal(this.props,!0))}},{key:\"observe\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.el&&_globals.observerMode){if(this.observer){if(!t)return;this.observer.disconnect()}else if(t)return;this.observer=new IntersectionObserver(this.handleObserve,{threshold:e.fraction}),this.observer.observe(this.el)}}},{key:\"reveal\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_globals.globalHide||(0,_globals.hideAll)(),this&&this.el&&(e||(e=this.props),_globals.ssr&&(0,_globals.disableSsr)(),this.isOn&&this.isShown&&void 0!==e.spy?(this.isShown=!1,this.setState({style:{}}),window.setTimeout(function(){return t.reveal(e)},200)):i||this.inViewport(e)||e.force?this.animate(e):_globals.observerMode?this.observe(e):this.listen())}},{key:\"componentDidMount\",value:function(){var e=this;if(this.el&&!this.props.disabled){this.props.collapseOnly||(\"make\"in this.props.inEffect&&this.props.inEffect.make(!1,this.props),void 0!==this.props.when&&this.props.outEffect&&\"make\"in this.props.outEffect&&this.props.outEffect.make(!0,this.props));var i=this.context.transitionGroup,s=i&&!i.isMounting?!(\"enter\"in this.props&&!1===this.props.enter):this.props.appear;return this.isOn&&((void 0!==this.props.when||void 0!==this.props.spy)&&!s||_globals.ssr&&!_globals.fadeOutEnabled&&!this.props.ssrFadeout&&this.props.outEffect&&!this.props.ssrReveal&&t.getTop(this.el)o-window.innerHeight&&s0&&void 0!==arguments[0]&&arguments[0];return exports.fadeOutEnabled=fadeOutEnabled=e},globalHide=exports.globalHide=!1,ie10=exports.ie10=!1,collapseend=exports.collapseend=void 0,counter=1,effectMap={},sheet=!1,name=namespace+\"-\"+Math.floor(1e15*Math.random())+\"-\";if(\"undefined\"!=typeof window&&\"nodejs\"!==window.name&&window.document&&\"undefined\"!=typeof navigator){exports.observerMode=observerMode=\"IntersectionObserver\"in window&&\"IntersectionObserverEntry\"in window&&\"intersectionRatio\"in window.IntersectionObserverEntry.prototype&&/\\{\\s*\\[native code\\]\\s*\\}/.test(\"\"+IntersectionObserver),exports.raf=raf=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||raf,exports.ssr=ssr=window.document.querySelectorAll(\"div[data-reactroot]\").length>0,-1!==navigator.appVersion.indexOf(\"MSIE 10\")&&(exports.ie10=ie10=!0),ssr&&\"performance\"in window&&\"timing\"in window.performance&&\"domContentLoadedEventEnd\"in window.performance.timing&&window.performance.timing.domLoading&&Date.now()-window.performance.timing.domLoading<300&&(exports.ssr=ssr=!1),ssr&&window.setTimeout(disableSsr,1500),observerMode||(exports.collapseend=collapseend=document.createEvent(\"Event\"),collapseend.initEvent(\"collapseend\",!0,!0));var element=document.createElement(\"style\");document.head.appendChild(element),element.sheet&&element.sheet.cssRules&&element.sheet.insertRule&&(sheet=element.sheet,window.addEventListener(\"scroll\",hideAll,!0),window.addEventListener(\"orientationchange\",hideAll,!0),window.document.addEventListener(\"visibilitychange\",hideAll))}","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function wrap(e,t,a,r){return\"in\"in e&&(e.when=e.in),_react2.default.Children.count(r)<2?_react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r})):(r=_react2.default.Children.map(r,function(r){return _react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r}))}),\"Fragment\"in _react2.default?_react2.default.createElement(_react2.default.Fragment,null,r):_react2.default.createElement(\"span\",null,r))}Object.defineProperty(exports,\"__esModule\",{value:!0});var _extends=Object.assign||function(e){for(var t=1;tQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","export const mounts = [\n {\n key: 'title',\n getter: swal => swal.getTitle(),\n },\n {\n key: 'html',\n getter: swal => swal.getHtmlContainer(),\n },\n {\n key: 'confirmButtonText',\n getter: swal => swal.getConfirmButton(),\n },\n {\n key: 'denyButtonText',\n getter: swal => swal.getDenyButton(),\n },\n {\n key: 'cancelButtonText',\n getter: swal => swal.getCancelButton(),\n },\n {\n key: 'footer',\n getter: swal => swal.getFooter(),\n },\n {\n key: 'closeButtonHtml',\n getter: swal => swal.getCloseButton(),\n },\n {\n key: 'iconHtml',\n getter: swal => swal.getIcon().querySelector('.swal2-icon-content'),\n },\n {\n key: 'loaderHtml',\n getter: swal => swal.getLoader(),\n },\n]\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport { mounts } from './mounts'\n\nconst noop = () => {} // eslint-disable-line @typescript-eslint/no-empty-function\n\nexport default function withReactContent (ParentSwal) {\n /* Returns `params` separated into a tuple of `reactParams` (the React params that need to be rendered)\n and`otherParams` (all the other parameters, with any React params replaced with a space ' ') */\n function extractReactParams (params) {\n const reactParams = {}\n const otherParams = {}\n const mountKeys = mounts.map(mount => mount.key)\n Object.entries(params).forEach(([key, value]) => {\n if (mountKeys.includes(key) && React.isValidElement(value)) {\n reactParams[key] = value\n otherParams[key] = ' '\n } else {\n otherParams[key] = value\n }\n })\n return [reactParams, otherParams]\n }\n function render (swal, reactParams) {\n Object.entries(reactParams).forEach(([key, value]) => {\n const mount = mounts.find(mount => mount.key === key)\n const domElement = mount.getter(ParentSwal)\n ReactDOM.render(value, domElement)\n swal.__mountedDomElements.push(domElement)\n })\n }\n\n function unrender (swal) {\n swal.__mountedDomElements.forEach(domElement => {\n ReactDOM.unmountComponentAtNode(domElement)\n })\n swal.__mountedDomElements = []\n }\n\n return class extends ParentSwal {\n static argsToParams (args) {\n if (React.isValidElement(args[0]) || React.isValidElement(args[1])) {\n const params = {}\n ;['title', 'html', 'icon'].forEach((name, index) => {\n if (args[index] !== undefined) {\n params[name] = args[index]\n }\n })\n return params\n } else {\n return ParentSwal.argsToParams(args)\n }\n }\n\n _main (params, mixinParams) {\n this.__mountedDomElements = []\n this.__params = Object.assign({}, mixinParams, params)\n const [reactParams, otherParams] = extractReactParams(this.__params)\n const superDidOpen = otherParams.didOpen || noop\n const superDidDestroy = otherParams.didDestroy || noop\n return super._main(\n Object.assign({}, otherParams, {\n didOpen: popup => {\n render(this, reactParams)\n superDidOpen(popup)\n },\n didDestroy: popup => {\n superDidDestroy(popup)\n unrender(this)\n },\n }),\n )\n }\n\n update (params) {\n Object.assign(this.__params, params)\n unrender(this)\n const [reactParams, otherParams] = extractReactParams(this.__params)\n super.update(otherParams)\n render(this, reactParams)\n }\n }\n}\n","/*!\n* sweetalert2 v11.4.0\n* Released under the MIT License.\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 = global || self, global.Sweetalert2 = factory());\n}(this, function () { 'use strict';\n\n const consolePrefix = 'SweetAlert2:';\n /**\n * Filter the unique values into a new array\n * @param arr\n */\n\n const uniqueArray = arr => {\n const result = [];\n\n for (let i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i]);\n }\n }\n\n return result;\n };\n /**\n * Capitalize the first letter of a string\n * @param {string} str\n * @returns {string}\n */\n\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n /**\n * @param {NodeList | HTMLCollection | NamedNodeMap} nodeList\n * @returns {array}\n */\n\n const toArray = nodeList => Array.prototype.slice.call(nodeList);\n /**\n * Standardize console warnings\n * @param {string | array} message\n */\n\n const warn = message => {\n console.warn(\"\".concat(consolePrefix, \" \").concat(typeof message === 'object' ? message.join(' ') : message));\n };\n /**\n * Standardize console errors\n * @param {string} message\n */\n\n const error = message => {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n /**\n * Private global state for `warnOnce`\n * @type {Array}\n * @private\n */\n\n const previousWarnOnceMessages = [];\n /**\n * Show a console warning, but only if it hasn't already been shown\n * @param {string} message\n */\n\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n /**\n * Show a one-time console warning about deprecated params/methods\n */\n\n const warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n * @param arg\n */\n\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n\n const defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n const deprecatedParams = {};\n const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n /**\n * Is valid parameter\n * @param {string} paramName\n */\n\n const isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n /**\n * Is valid parameter for Swal.update() method\n * @param {string} paramName\n */\n\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n /**\n * Is deprecated parameter\n * @param {string} paramName\n */\n\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n const checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n const checkIfParamIsDeprecated = param => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n };\n /**\n * Show relevant warnings for given params\n *\n * @param params\n */\n\n\n const showWarningsForParams = params => {\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n\n for (const param in params) {\n checkIfParamIsValid(param);\n\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n\n checkIfParamIsDeprecated(param);\n }\n };\n\n const swalPrefix = 'swal2-';\n const prefix = items => {\n const result = {};\n\n for (const i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n\n return result;\n };\n const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']);\n const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n\n const getContainer = () => document.body.querySelector(\".\".concat(swalClasses.container));\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n const elementByClass = className => {\n return elementBySelector(\".\".concat(className));\n };\n\n const getPopup = () => elementByClass(swalClasses.popup);\n const getIcon = () => elementByClass(swalClasses.icon);\n const getTitle = () => elementByClass(swalClasses.title);\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n const getImage = () => elementByClass(swalClasses.image);\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n const getConfirmButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n const getDenyButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n const getLoader = () => elementBySelector(\".\".concat(swalClasses.loader));\n const getCancelButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n const getActions = () => elementByClass(swalClasses.actions);\n const getFooter = () => elementByClass(swalClasses.footer);\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js\n\n const focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n const getFocusableElements = () => {\n const focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex'));\n const tabindexB = parseInt(b.getAttribute('tabindex'));\n\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n\n return 0;\n });\n const otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1');\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el));\n };\n const isModal = () => {\n return !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n const isToast = () => {\n return getPopup() && hasClass(getPopup(), swalClasses.toast);\n };\n const isLoading = () => {\n return getPopup().hasAttribute('data-loading');\n };\n\n const states = {\n previousBodyPadding: null\n };\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, \"text/html\");\n toArray(parsed.querySelector('head').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n toArray(parsed.querySelector('body').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n\n const classList = className.split(/\\s+/);\n\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n\n return true;\n };\n\n const removeCustomClasses = (elem, params) => {\n toArray(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n return warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(typeof params.customClass[className], \"\\\"\"));\n }\n\n addClass(elem, params.customClass[className]);\n }\n };\n /**\n * @param {HTMLElement} popup\n * @param {string} inputType\n * @returns {HTMLInputElement | null}\n */\n\n const getInput = (popup, inputType) => {\n if (!inputType) {\n return null;\n }\n\n switch (inputType) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputType]));\n\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n /**\n * @param {HTMLInputElement} input\n */\n\n const focusInput = input => {\n input.focus(); // place cursor at end of text in text input\n\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[]} classList\n * @param {boolean} condition\n */\n\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[]} classList\n */\n\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[]} classList\n */\n\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n };\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const getDirectChildByClass = (elem, className) => {\n const childNodes = toArray(elem.childNodes);\n\n for (let i = 0; i < childNodes.length; i++) {\n if (hasClass(childNodes[i], className)) {\n return childNodes[i];\n }\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n\n const applyNumericalStyle = (elem, property, value) => {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n } else {\n elem.style.removeProperty(property);\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} display\n */\n\n const show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem.style.display = display;\n };\n /**\n * @param {HTMLElement} elem\n */\n\n const hide = elem => {\n elem.style.display = 'none';\n };\n const setStyle = (parent, selector, property, value) => {\n const el = parent.querySelector(selector);\n\n if (el) {\n el.style[property] = value;\n }\n };\n const toggle = (elem, condition, display) => {\n condition ? show(elem, display) : hide(elem);\n }; // borrowed from jquery $(elem).is(':visible') implementation\n\n const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight); // borrowed from https://stackoverflow.com/a/46352119\n\n const hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n\n if (isVisible(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n\n setTimeout(() => {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n const stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n const globalState = {};\n\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n }; // Restore previous active (focused) element\n\n\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n const sweetHTML = \"\\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\").replace(/(^|\\n)\\s*/g, '');\n\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n\n if (!oldContainer) {\n return false;\n }\n\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n\n const resetValidationMessage = () => {\n globalState.currentInstance.resetValidationMessage();\n };\n\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n const range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n const rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n const select = getDirectChildByClass(popup, swalClasses.select);\n const checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage;\n file.onchange = resetValidationMessage;\n select.onchange = resetValidationMessage;\n checkbox.onchange = resetValidationMessage;\n textarea.oninput = resetValidationMessage;\n\n range.oninput = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n\n range.onchange = () => {\n resetValidationMessage();\n range.nextSibling.value = range.value;\n };\n };\n\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n /*\n * Add modal + backdrop to DOM\n */\n\n\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n /* istanbul ignore if */\n\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n\n const container = document.createElement('div');\n container.className = swalClasses.container;\n\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n } // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n } // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n /**\n * @param {object} param\n * @param {HTMLElement} target\n */\n\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n } // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n\n if (0 in elem) {\n for (let i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n const animationEndEvent = (() => {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\n }\n\n const testEl = document.createElement('div');\n const transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd',\n // Chrome, Safari and Opera\n animation: 'animationend' // Standard syntax\n\n };\n\n for (const i in transEndEventNames) {\n if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n return transEndEventNames[i];\n }\n }\n\n return false;\n })();\n\n // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n\n const measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params, 'actions'); // Render all the buttons\n\n renderButtons(actions, loader, params); // Loader\n\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n };\n\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton(); // Render buttons\n\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n }\n\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n function renderButton(button, buttonType, params) {\n toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n }\n\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n function handlePositionParam(container, position) {\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n function handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = \"grow-\".concat(grow);\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n }\n\n const renderContainer = (instance, params) => {\n const container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateProps = {\n awaitingPromise: new WeakMap(),\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n const inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n const renderInput = (instance, params) => {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputTypes.forEach(inputType => {\n const inputClass = swalClasses[inputType];\n const inputContainer = getDirectChildByClass(popup, inputClass); // set attributes\n\n setAttributes(inputType, params.inputAttributes); // set class\n\n inputContainer.className = inputClass;\n\n if (rerender) {\n hide(inputContainer);\n }\n });\n\n if (params.input) {\n if (rerender) {\n showInput(params);\n } // set custom class\n\n\n setCustomClass(params);\n }\n };\n\n const showInput = params => {\n if (!renderInputType[params.input]) {\n return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n }\n\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(input); // input autofocus\n\n setTimeout(() => {\n focusInput(input);\n });\n };\n\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n\n if (!['type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n const setAttributes = (inputType, inputAttributes) => {\n const input = getInput(getPopup(), inputType);\n\n if (!input) {\n return;\n }\n\n removeAttributes(input);\n\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n const setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n\n if (params.customClass) {\n addClass(inputContainer, params.customClass.input);\n }\n };\n\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n const setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n input.id = swalClasses.input;\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n addClass(label, params.customClass.inputLabel);\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n const getInputContainer = inputType => {\n const inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;\n return getDirectChildByClass(getPopup(), inputClass);\n };\n\n const renderInputType = {};\n\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => {\n if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {\n input.value = params.inputValue;\n } else if (!isPromise(params.inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(typeof params.inputValue, \"\\\"\"));\n }\n\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n renderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n rangeInput.value = params.inputValue;\n rangeInput.type = params.input;\n rangeOutput.value = params.inputValue;\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n renderInputType.select = (select, params) => {\n select.textContent = '';\n\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n\n setInputLabel(select, select, params);\n return select;\n };\n\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n\n renderInputType.checkbox = (checkboxContainer, params) => {\n /** @type {HTMLInputElement} */\n const checkbox = getInput(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.id = swalClasses.checkbox;\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkboxContainer;\n };\n\n renderInputType.textarea = (textarea, params) => {\n textarea.value = params.inputValue;\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); // https://github.com/sweetalert2/sweetalert2/issues/2291\n\n\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n const textareaResizeHandler = () => {\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n } // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n } // No content\n else {\n hide(htmlContainer);\n }\n\n renderInput(instance, params);\n };\n\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n toggle(footer, params.footer);\n\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n } // Custom class\n\n\n applyCustomClass(footer, params, 'footer');\n };\n\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n };\n\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n\n if (!params.icon && !params.iconHtml) {\n return hide(icon);\n }\n\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n return hide(icon);\n }\n\n show(icon); // Custom or default content\n\n setContent(icon, params);\n applyStyles(icon, params); // Animate icon\n\n addClass(icon, params.showClass.icon);\n };\n\n const applyStyles = (icon, params) => {\n for (const iconType in iconTypes) {\n if (params.icon !== iconType) {\n removeClass(icon, iconTypes[iconType]);\n }\n }\n\n addClass(icon, iconTypes[params.icon]); // Icon color\n\n setColor(icon, params); // Success icon background color\n\n adjustSuccessIconBackgroundColor(); // Custom class\n\n applyCustomClass(icon, params, 'icon');\n }; // Adjust success icon background color to match the popup background color\n\n\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n\n const successIconHtml = \"\\n
    \\n \\n
    \\n
    \\n\";\n const errorIconHtml = \"\\n \\n \\n \\n \\n\";\n\n const setContent = (icon, params) => {\n icon.textContent = '';\n\n if (params.iconHtml) {\n setInnerHtml(icon, iconContent(params.iconHtml));\n } else if (params.icon === 'success') {\n setInnerHtml(icon, successIconHtml);\n } else if (params.icon === 'error') {\n setInnerHtml(icon, errorIconHtml);\n } else {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));\n }\n };\n\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'backgroundColor', params.iconColor);\n }\n\n setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n\n const iconContent = content => \"
    \").concat(content, \"
    \");\n\n const renderImage = (instance, params) => {\n const image = getImage();\n\n if (!params.imageUrl) {\n return hide(image);\n }\n\n show(image, ''); // Src, alt\n\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt); // Width, height\n\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n lineEl.style.width = params.progressStepsDistance;\n }\n\n return lineEl;\n };\n\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n\n if (params.currentProgressStep >= params.progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n\n params.progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n\n if (index === params.currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n\n if (index !== params.progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n const renderTitle = (instance, params) => {\n const title = getTitle();\n toggle(title, params.title || params.titleText, 'block');\n\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n\n if (params.titleText) {\n title.innerText = params.titleText;\n } // Custom class\n\n\n applyCustomClass(title, params, 'title');\n };\n\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup(); // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n popup.insertBefore(getLoader(), getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n } // Padding\n\n\n applyNumericalStyle(popup, 'padding', params.padding); // Color\n\n if (params.color) {\n popup.style.color = params.color;\n } // Background\n\n\n if (params.background) {\n popup.style.background = params.background;\n }\n\n hide(getValidationMessage()); // Classes\n\n addClasses(popup, params);\n };\n\n const addClasses = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n } // Custom class\n\n\n applyCustomClass(popup, params, 'popup');\n\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n } // Icon class (#1842)\n\n\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n\n if (typeof params.didRender === 'function') {\n params.didRender(getPopup());\n }\n };\n\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n const getTemplateParams = params => {\n const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n\n\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n const getSwalParams = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-param')).forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = param.getAttribute('name');\n const value = param.getAttribute('value');\n\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n result[paramName] = false;\n }\n\n if (typeof defaultParams[paramName] === 'object') {\n result[paramName] = JSON.parse(value);\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalButtons = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-button')).forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const image = templateContent.querySelector('swal-image');\n\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src');\n }\n\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width');\n }\n\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height');\n }\n\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt');\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const icon = templateContent.querySelector('swal-icon');\n\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n\n result.iconHtml = icon.innerHTML;\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalInput = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const input = templateContent.querySelector('swal-input');\n\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n\n const inputOptions = templateContent.querySelectorAll('swal-input-option');\n\n if (inputOptions.length) {\n result.inputOptions = {};\n toArray(inputOptions).forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n */\n\n\n const getSwalStringParams = (templateContent, paramNames) => {\n const result = {};\n\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement} */\n\n const tag = templateContent.querySelector(paramName);\n\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n toArray(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n\n if (allowedElements.indexOf(tagName) === -1) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n\n\n const showWarningsForAttributes = (el, allowedAttributes) => {\n toArray(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n var defaultInputValidators = {\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach(key => {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key];\n }\n });\n }\n }\n\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n /**\n * Set type, text and actions on popup\n *\n * @param params\n */\n\n\n function setParameters(params) {\n setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n\n validateCustomTargetElement(params); // Replace newlines with
    in title\n\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('
    ');\n }\n\n init(params);\n }\n\n class Timer {\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n\n return this.remaining;\n }\n\n stop() {\n if (this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n\n return this.remaining;\n }\n\n increase(n) {\n const running = this.running;\n\n if (running) {\n this.stop();\n }\n\n this.remaining += n;\n\n if (running) {\n this.start();\n }\n\n return this.remaining;\n }\n\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n\n return this.remaining;\n }\n\n isRunning() {\n return this.running;\n }\n\n }\n\n const fixScrollbar = () => {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n } // if the body has overflow\n\n\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n const undoScrollbar = () => {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n states.previousBodyPadding = null;\n }\n };\n\n /* istanbul ignore file */\n\n const iOSfix = () => {\n const iOS = // @ts-ignore\n /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups();\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1948\n */\n\n const addBottomPaddingForTallPopups = () => {\n const ua = navigator.userAgent;\n const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);\n const webkit = !!ua.match(/WebKit/i);\n const iOSSafari = iOS && webkit && !ua.match(/CriOS/i);\n\n if (iOSSafari) {\n const bottomPanelHeight = 44;\n\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n }\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n\n\n const lockBodyScroll = () => {\n const container = getContainer();\n let preventTouchMove;\n\n container.ontouchstart = e => {\n preventTouchMove = shouldPreventTouchMove(e);\n };\n\n container.ontouchmove = e => {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n };\n\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n\n if (target === container) {\n return true;\n }\n\n if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603\n target.tagName !== 'TEXTAREA' && // #2266\n !(isScrollable(getHtmlContainer()) && // #1944\n getHtmlContainer().contains(target))) {\n return true;\n }\n\n return false;\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n\n\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n\n\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n const SHOW_CLASS_TIMEOUT = 10;\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param params\n */\n\n const openPopup = params => {\n const container = getContainer();\n const popup = getPopup();\n\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n }\n\n removeClass(container, swalClasses['no-transition']);\n };\n\n const swalOpenAnimationFinished = event => {\n const popup = getPopup();\n\n if (event.target !== popup) {\n return;\n }\n\n const container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n const setScrollingVisibility = (container, popup) => {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(() => {\n container.scrollTop = 0;\n });\n };\n\n const addClasses$1 = (container, popup, params) => {\n addClass(container, params.showClass.backdrop); // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n addClass([document.documentElement, document.body], swalClasses.shown);\n\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\n\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n\n popup = getPopup();\n const loader = getLoader();\n\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n\n show(loader);\n popup.setAttribute('data-loading', true);\n popup.setAttribute('aria-busy', true);\n popup.focus();\n };\n\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n\n if (!buttonToReplace && isVisible(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n\n show(actions);\n\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n }\n\n loader.parentNode.insertBefore(loader, buttonToReplace);\n addClass([popup, actions], swalClasses.loading);\n };\n\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n\n if (!input) {\n return null;\n }\n\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n\n case 'radio':\n return getRadioValue(input);\n\n case 'file':\n return getFileValue(input);\n\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n const getRadioValue = input => input.checked ? input.value : null;\n\n const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n\n const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params);\n\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(typeof params.inputOptions));\n }\n };\n\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n const populateInputOptions = {\n select: (popup, inputOptions, params) => {\n const select = getDirectChildByClass(popup, swalClasses.select);\n\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1]; // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n\n if (typeof valueFormatted === 'object') {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n }\n\n return result;\n };\n\n const isSelected = (optionValue, inputValue) => {\n return inputValue && inputValue.toString() === optionValue.toString();\n };\n\n const handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n const handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n const handleConfirmOrDenyWithInput = (instance, type\n /* 'confirm' | 'deny' */\n ) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams.input) {\n return error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\n }\n\n const inputValue = getInputValue(instance, innerParams);\n\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n };\n\n const handleInputValidator = (instance, inputValue, type\n /* 'confirm' | 'deny' */\n ) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n };\n\n const deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n\n if (innerParams.preDeny) {\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n } else {\n instance.closePopup({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n instance.closePopup({\n isDenied: true,\n value\n });\n }\n };\n\n const succeedWith = (instance, value) => {\n instance.closePopup({\n isConfirmed: true,\n value\n });\n };\n\n const rejectWith = (instance, error$$1) => {\n instance.rejectPromise(error$$1);\n };\n\n const confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n succeedWith(instance, value);\n }\n };\n\n const handlePopupClick = (instance, domCache, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams.toast) {\n handleToastClick(instance, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n handleContainerMousedown(domCache);\n handleModalClick(instance, domCache, dismissWith);\n }\n };\n\n const handleToastClick = (instance, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n };\n /**\n * @param {*} innerParams\n * @returns {boolean}\n */\n\n\n const isAnyButtonShown = innerParams => {\n return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton;\n };\n\n let ignoreOutsideClick = false;\n\n const handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleContainerMousedown = domCache => {\n domCache.container.onmousedown = () => {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleModalClick = (instance, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\n const isVisible$1 = () => {\n return isVisible(getPopup());\n };\n /*\n * Global function to click 'Confirm' button\n */\n\n const clickConfirm = () => getConfirmButton() && getConfirmButton().click();\n /*\n * Global function to click 'Deny' button\n */\n\n const clickDeny = () => getDenyButton() && getDenyButton().click();\n /*\n * Global function to click 'Cancel' button\n */\n\n const clickCancel = () => getCancelButton() && getCancelButton().click();\n\n const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith);\n\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n }; // Focus handling\n\n const setFocus = (innerParams, index, increment) => {\n const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n if (focusableElements.length) {\n index = index + increment; // rollover to first item\n\n if (index === focusableElements.length) {\n index = 0; // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n return focusableElements[index].focus();\n } // no visible focusable elements, focus the popup\n\n\n getPopup().focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n const keydownHandler = (instance, e, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams);\n } // TAB\n else if (e.key === 'Tab') {\n handleTab(e, innerParams);\n } // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {\n handleArrows(e.key);\n } // ESC\n else if (e.key === 'Escape') {\n handleEsc(e, innerParams, dismissWith);\n }\n };\n\n const handleEnter = (instance, e, innerParams) => {\n // #2386 #720 #721\n if (!callIfFunction(innerParams.allowEnterKey) || e.isComposing) {\n return;\n }\n\n if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n\n clickConfirm();\n e.preventDefault();\n }\n };\n\n const handleTab = (e, innerParams) => {\n const targetElement = e.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n } // Cycle to the next button\n\n\n if (!e.shiftKey) {\n setFocus(innerParams, btnIndex, 1);\n } // Cycle to the prev button\n else {\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n const handleArrows = key => {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n\n if (![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return;\n }\n\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n const buttonToFocus = document.activeElement[sibling];\n\n if (buttonToFocus instanceof HTMLElement) {\n buttonToFocus.focus();\n }\n };\n\n const handleEsc = (e, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n\n const isElement = elem => elem instanceof Element || isJqueryElement(elem);\n\n const argsToParams = args => {\n const params = {};\n\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index];\n\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(typeof arg));\n }\n });\n }\n\n return params;\n };\n\n function fire() {\n const Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return new Swal(...args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param mixinParams\n */\n function mixin(mixinParams) {\n class MixinSwal extends this {\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n\n }\n\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\n const getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const increaseTimer = n => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(n);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n */\n\n const isTimerRunning = () => {\n return globalState.timeout && globalState.timeout.isRunning();\n };\n\n let bodyClickListenerAdded = false;\n const clickHandlers = {};\n function bindClickHandler() {\n let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n\n const bodyClickListener = event => {\n for (let el = event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute(attr);\n\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n };\n\n\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n isValidParameter: isValidParameter,\n isUpdatableParameter: isUpdatableParameter,\n isDeprecatedParameter: isDeprecatedParameter,\n argsToParams: argsToParams,\n isVisible: isVisible$1,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n clickCancel: clickCancel,\n getContainer: getContainer,\n getPopup: getPopup,\n getTitle: getTitle,\n getHtmlContainer: getHtmlContainer,\n getImage: getImage,\n getIcon: getIcon,\n getInputLabel: getInputLabel,\n getCloseButton: getCloseButton,\n getActions: getActions,\n getConfirmButton: getConfirmButton,\n getDenyButton: getDenyButton,\n getCancelButton: getCancelButton,\n getLoader: getLoader,\n getFooter: getFooter,\n getTimerProgressBar: getTimerProgressBar,\n getFocusableElements: getFocusableElements,\n getValidationMessage: getValidationMessage,\n isLoading: isLoading,\n fire: fire,\n mixin: mixin,\n showLoading: showLoading,\n enableLoading: showLoading,\n getTimerLeft: getTimerLeft,\n stopTimer: stopTimer,\n resumeTimer: resumeTimer,\n toggleTimer: toggleTimer,\n increaseTimer: increaseTimer,\n isTimerRunning: isTimerRunning,\n bindClickHandler: bindClickHandler\n });\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n\n function hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return;\n }\n\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n\n const showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n * @returns {HTMLElement | null}\n */\n\n function getInput$1(instance) {\n const innerParams = privateProps.innerParams.get(instance || this);\n const domCache = privateProps.domCache.get(instance || this);\n\n if (!domCache) {\n return null;\n }\n\n return getInput(domCache.popup, innerParams.input);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n /*\n * Instance method to close sweetAlert\n */\n\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088\n // for some reason removing the container in Safari will scroll the document to bottom\n\n if (isSafari) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n }\n\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n\n if (this.isAwaitingPromise()) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n function isAwaitingPromise() {\n return !!privateProps.awaitingPromise.get(this);\n }\n\n const triggerClosePopup = instance => {\n const popup = getPopup();\n\n if (!popup) {\n return false;\n }\n\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise()) {\n privateProps.awaitingPromise.delete(instance); // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n const prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer(); // If animation is supported, animate\n\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n\n instance._destroy();\n });\n };\n\n function setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n }\n\n function setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\n if (input.type === 'radio') {\n const radiosContainer = input.parentNode.parentNode;\n const radios = radiosContainer.querySelectorAll('input');\n\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n function enableInput() {\n return setInputDisabled(this.getInput(), false);\n }\n function disableInput() {\n return setInputDisabled(this.getInput(), true);\n }\n\n function showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n\n show(domCache.validationMessage);\n const input = this.getInput();\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n } // Hide block with validation message\n\n function resetValidationMessage$1() {\n const domCache = privateProps.domCache.get(this);\n\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n\n const input = this.getInput();\n\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n function getProgressSteps$1() {\n const domCache = privateProps.domCache.get(this);\n return domCache.progressSteps;\n }\n\n /**\n * Updates popup parameters.\n */\n\n function update(params) {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n return warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n }\n\n const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n const filterValidParams = params => {\n const validUpdatableParams = {};\n Object.keys(params).forEach(param => {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \\\"\".concat(param, \"\\\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\\n\\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md\"));\n }\n });\n return validUpdatableParams;\n };\n\n function _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n\n return; // This instance has already been destroyed\n } // Check if there is another Swal closing\n\n\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n } // Check if there is a swal disposal defer timer\n\n\n if (globalState.deferDisposalTimer) {\n clearTimeout(globalState.deferDisposalTimer);\n delete globalState.deferDisposalTimer;\n }\n\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n\n disposeSwal(this);\n }\n\n const disposeSwal = instance => {\n disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569)\n\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset currentInstance\n\n delete globalState.currentInstance;\n };\n\n const disposeWeakMaps = instance => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n if (instance.isAwaitingPromise()) {\n unsetWeakMaps(privateProps, instance);\n privateProps.awaitingPromise.set(instance, true);\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n }\n };\n\n const unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n };\n\n\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput$1,\n close: close,\n isAwaitingPromise: isAwaitingPromise,\n rejectPromise: rejectPromise,\n closePopup: close,\n closeModal: close,\n closeToast: close,\n enableButtons: enableButtons,\n disableButtons: disableButtons,\n enableInput: enableInput,\n disableInput: disableInput,\n showValidationMessage: showValidationMessage,\n resetValidationMessage: resetValidationMessage$1,\n getProgressSteps: getProgressSteps$1,\n update: update,\n _destroy: _destroy\n });\n\n let currentInstance;\n\n class SweetAlert {\n constructor() {\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n\n currentInstance = this; // @ts-ignore\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true\n }\n }); // @ts-ignore\n\n const promise = this._main(this.params);\n\n privateProps.promise.set(this, promise);\n }\n\n _main(userParams) {\n let mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n\n if (globalState.currentInstance) {\n globalState.currentInstance._destroy();\n\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n\n globalState.currentInstance = this;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams); // clear the previous timer\n\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n } // clear the restore focus timeout\n\n\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(this);\n render(this, innerParams);\n privateProps.innerParams.set(this, innerParams);\n return swalPromise(this, domCache, innerParams);\n } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\n then(onFulfilled) {\n const promise = privateProps.promise.get(this);\n return promise.then(onFulfilled);\n }\n\n finally(onFinally) {\n const promise = privateProps.promise.get(this);\n return promise.finally(onFinally);\n }\n\n }\n\n const swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n const dismissWith = dismiss => {\n instance.closePopup({\n isDismissed: true,\n dismiss\n });\n };\n\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n\n domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance);\n\n domCache.denyButton.onclick = () => handleDenyButtonClick(instance);\n\n domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith);\n\n domCache.closeButton.onclick = () => dismissWith(DismissReason.close);\n\n handlePopupClick(instance, domCache, dismissWith);\n addKeydownHandler(instance, globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n const prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n return params;\n };\n\n const populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n\n const setupTimer = (globalState$$1, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n\n if (innerParams.timer) {\n globalState$$1.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState$$1.timeout;\n }, innerParams.timer);\n\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState$$1.timeout && globalState$$1.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n\n const initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement();\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1);\n }\n };\n\n const focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n\n if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n\n if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n\n return false;\n };\n\n const blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n }; // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n Object.keys(instanceMethods).forEach(key => {\n SweetAlert[key] = function () {\n if (currentInstance) {\n return currentInstance[key](...arguments);\n }\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.4.0';\n\n const Swal = SweetAlert; // @ts-ignore\n\n Swal.default = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}\");","/**\n * Copyright (c) 2014-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 * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 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 _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","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}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return 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(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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 = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","const configuration = require('configuration.json');\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst websiteConnection = globalConf.website_connection;\r\nconst paths = configuration.paths;\r\n\r\nconst host = websiteConnection.frontend_host;\r\nconst imagesPath = paths.images_path;\r\n\r\nclass Images {\r\n\r\n static imageURL(fileName) {\r\n return `${host}/${imagesPath}/${fileName}`;\r\n }\r\n\r\n static async createImageFile(url, fileName) {\r\n\r\n const response = await fetch(url);\r\n const data = await response.blob();\r\n\r\n const metadata = {\r\n type: data.type\r\n };\r\n const file = new File([data], fileName, metadata);\r\n return file;\r\n }\r\n\r\n\r\n}\r\n\r\nexport default Images;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\n\r\nclass LoadingPage extends React.Component {\r\n\r\n\r\n render() {\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"Homepage\r\n

    Loading TreatCoin ...

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default LoadingPage;","/**\n * The code was extracted from:\n * https://github.com/davidchambers/Base64.js\n */\n\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\n\nInvalidCharacterError.prototype = new Error();\nInvalidCharacterError.prototype.name = \"InvalidCharacterError\";\n\nfunction polyfill(input) {\n var str = String(input).replace(/=+$/, \"\");\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = \"\";\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ?\n (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) :\n 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\nexport default (typeof window !== \"undefined\" &&\n window.atob &&\n window.atob.bind(window)) ||\npolyfill;","\"use strict\";\n\nimport base64_url_decode from \"./base64_url_decode\";\n\nexport function InvalidTokenError(message) {\n this.message = message;\n}\n\nInvalidTokenError.prototype = new Error();\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\n\nexport default function(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified\");\n }\n\n options = options || {};\n var pos = options.header === true ? 0 : 1;\n try {\n return JSON.parse(base64_url_decode(token.split(\".\")[pos]));\n } catch (e) {\n throw new InvalidTokenError(\"Invalid token specified: \" + e.message);\n }\n}","import atob from \"./atob\";\n\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(\n atob(str).replace(/(.)/g, function(m, p) {\n var code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n })\n );\n}\n\nexport default function(str) {\n var output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw \"Illegal base64url string!\";\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (err) {\n return atob(output);\n }\n}","class UserData {\r\n\r\n static setItemWithValueCheck(key, value) {\r\n if (value != null && \r\n value !== 'null' && \r\n value !== 'undefined') {\r\n UserData.setItem(key, value);\r\n }\r\n }\r\n static setItem(key, value) {\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n static getItem(key) {\r\n return localStorage.getItem(key);\r\n }\r\n\r\n static removeItem(key) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n static clear() {\r\n localStorage.clear();\r\n }\r\n\r\n static getCookie(name) {\r\n name = encodeURIComponent(name) + \"=\";\r\n const cookieArray = document.cookie.split(';');\r\n for(let i = 0; i < cookieArray.length; i++) {\r\n let cookie = cookieArray[i];\r\n while (cookie.charAt(0) === ' ') {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n return decodeURIComponent(cookie.substring(name.length, cookie.length));\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n\r\nexport default UserData;","const SanitizeQueryParams = (paramsObj) => {\r\n return Object.fromEntries(\r\n Object.entries(paramsObj).filter(([key, value]) => value === false || value !== null)\r\n );\r\n}\r\n\r\nexport default SanitizeQueryParams","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import UserData from \"User_Data.js\";\r\nimport mixpanel from \"mixpanel-browser\";\r\n\r\nconst globalConf = require('global_conf.json');\r\nconst mixpanelToken = globalConf.mixpanel_connection.token;\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst thirdPartySettings = JSON.parse(UserData.getItem(userDataKeys.third_party_settings)) || {};\r\n\r\nif (thirdPartySettings[userDataKeys.third_party_cookies.mixpanel]) {\r\n mixpanel.init(mixpanelToken);\r\n}\r\n\r\nexport const Mixpanel = {\r\n identify: (id) => {\r\n mixpanel.identify(id);\r\n },\r\n alias: (newID, oldID) => {\r\n mixpanel.alias(newID, oldID);\r\n },\r\n getDistinctId: () => {\r\n let distinctId;\r\n try {\r\n distinctId = mixpanel.get_distinct_id();\r\n\t\t} catch(e) {\r\n distinctId = null;\r\n\t\t}\r\n return distinctId;\r\n },\r\n init: () => {\r\n mixpanel.init(mixpanelToken);\r\n },\r\n trackByEvent: (currentEvent) => {\r\n const thirdPartySettings = JSON.parse(UserData.getItem(userDataKeys.third_party_settings)) || {};\r\n const mixpanelAccepted = thirdPartySettings[userDataKeys.third_party_cookies.mixpanel];\r\n\r\n if (mixpanelAccepted && currentEvent) {\r\n const props = Object.assign({}, currentEvent.target.dataset);\r\n const { event } = props;\r\n delete props.event;\r\n mixpanel.track(event, props);\r\n }\r\n },\r\n trackByArgs: (event, properties) => {\r\n const thirdPartySettings = JSON.parse(UserData.getItem(userDataKeys.third_party_settings)) || {};\r\n const mixpanelAccepted = thirdPartySettings[userDataKeys.third_party_cookies.mixpanel];\r\n\r\n if (!mixpanelAccepted) {\r\n return;\r\n }\r\n mixpanel.track(event, properties);\r\n },\r\n reset: () => {\r\n mixpanel.reset();\r\n }\r\n};","import React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport UserData from 'User_Data.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst queryVariables = configuration.query_variables;\r\nconst languageUrlCodes = configuration.languages.map(lang => lang.url_code);\r\n\r\nconst generateRouteWithLang = (to) => {\r\n const langForUrl =\r\n UserData.getItem(userDataKeys.language)?.slice(0, 2) !== 'en'\r\n ? '/' + UserData.getItem(userDataKeys.language)?.slice(0, 2)\r\n : '';\r\n\r\n let normalizedPath = window.location.pathname.split('/').pop();\r\n if (languageUrlCodes.includes(normalizedPath)) {\r\n normalizedPath = '';\r\n }\r\n let goingToSamePage = (('/' + normalizedPath) === to);\r\n\r\n let queryParams = \"\";\r\n let searchParams;\r\n if (goingToSamePage) {\r\n searchParams = new URLSearchParams(window.location.search);\r\n searchParams.delete(queryVariables.token);\r\n searchParams.delete(queryVariables.source);\r\n }\r\n else {\r\n searchParams = new URLSearchParams();\r\n }\r\n\r\n const isAuthorized = ApiFacade.isLoggedIn();\r\n const userIdentifiedInMixpanel = UserData.getItem(userDataKeys.mixpanel_user_identified);\r\n\r\n if (!isAuthorized || isAuthorized && userIdentifiedInMixpanel !== \"1\" && to === configuration.paths.welcome) {\r\n const utmSource = UserData.getItem(userDataKeys.utm_source);\r\n const utmMedium = UserData.getItem(userDataKeys.utm_medium);\r\n const utmCampaign = UserData.getItem(userDataKeys.utm_campaign);\r\n const utmContent = UserData.getItem(userDataKeys.utm_content);\r\n const utmTerm = UserData.getItem(userDataKeys.utm_term);\r\n\r\n if (utmSource !== null && !searchParams.has(queryVariables.utm_source)) {\r\n searchParams.append(queryVariables.utm_source, utmSource);\r\n }\r\n if (utmMedium !== null && !searchParams.has(queryVariables.utm_medium)) {\r\n searchParams.append(queryVariables.utm_medium, utmMedium);\r\n }\r\n if (utmCampaign !== null && !searchParams.has(queryVariables.utm_campaign)) {\r\n searchParams.append(queryVariables.utm_campaign, utmCampaign);\r\n }\r\n if (utmContent !== null && !searchParams.has(queryVariables.utm_content)) {\r\n searchParams.append(queryVariables.utm_content, utmContent);\r\n }\r\n if (utmTerm !== null && !searchParams.has(queryVariables.utm_term)) {\r\n searchParams.append(queryVariables.utm_term, utmTerm);\r\n }\r\n\r\n if (!isAuthorized) {\r\n const fbclid = UserData.getItem(userDataKeys.fbclid);\r\n const emailSignup = UserData.getItem(userDataKeys.email_signup);\r\n\r\n if (fbclid !== null && !searchParams.has(queryVariables.fbclid)) {\r\n searchParams.append(queryVariables.fbclid, fbclid.split('.').pop());\r\n }\r\n if (emailSignup !== null && !searchParams.has(queryVariables.email)) {\r\n searchParams.append(queryVariables.email, emailSignup);\r\n }\r\n }\r\n }\r\n\r\n let paramsString = searchParams.toString();\r\n queryParams = ((paramsString.length > 0) ? '?': '') + paramsString;\r\n\r\n const urlFragment = (goingToSamePage && window.location.href.split(\"#\").length === 2) ? `#${window.location.href.split(\"#\")[1]}`: \"\";\r\n\r\n const routeWithLang = `${langForUrl}${to}${queryParams}${urlFragment}`;\r\n\r\n return routeWithLang;\r\n\r\n}\r\nconst RedirectWithLang = ({ onClick, props, to, text, isButton, children, disabled, allowRedirect = true }) => {\r\n \r\n let routeWithLang;\r\n if (isButton) {\r\n const { onClickHandler } = props;\r\n return {\r\n if (onClick) {\r\n onClick();\r\n }\r\n if (allowRedirect) {\r\n routeWithLang = generateRouteWithLang(to);\r\n window.location.replace(routeWithLang);\r\n }\r\n onClickHandler(event);\r\n }}\r\n disabled={disabled}\r\n {...props}\r\n >\r\n {text}\r\n {children}\r\n ;\r\n } else {\r\n routeWithLang = generateRouteWithLang(to);\r\n return (\r\n \r\n {text}\r\n {children}\r\n \r\n );\r\n }\r\n};\r\n\r\nconst redirectWithLangFunc = (to) => {\r\n\r\n const routeWithLang = generateRouteWithLang(to);\r\n \r\n window.location.replace(routeWithLang);\r\n};\r\n\r\nexport { RedirectWithLang, redirectWithLangFunc };","import Content from 'utils/Content.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport UserData from 'User_Data.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst welcomeUrl = configuration.paths.welcome;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass Redirects {\r\n\r\n static recommendedOrEmailOfferSet() {\r\n return (UserData.getItem(userDataKeys.recommended_offer) !== null && UserData.getItem(userDataKeys.offer_recommender) !== null ||\r\n UserData.getItem(userDataKeys.email_offer));\r\n }\r\n\r\n static isCurrentWebpage(webpageUrl) {\r\n return window.location.pathname.endsWith(webpageUrl);\r\n }\r\n\r\n static makeRedirectAfterLogin(existingAccount) {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const homeOption = menuOptions.home;\r\n const playgroundOption = menuOptions.playground;\r\n\r\n if (Redirects.recommendedOrEmailOfferSet()) {\r\n redirectWithLangFunc(playgroundOption.url);\r\n }\r\n else if (existingAccount) {\r\n redirectWithLangFunc(homeOption.url);\r\n }\r\n else {\r\n redirectWithLangFunc(welcomeUrl);\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\nexport default Redirects;","import UserData from 'User_Data.js';\r\nimport Backend from 'Backend.js';\r\nimport queryString from 'query-string';\r\nimport SanitizeQueryParams from './utils/Sanitize_Query_Params';\r\nimport jwt from 'jwt-decode';\r\nimport { NoEncryption } from '@mui/icons-material';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport Redirects from 'utils/Redirects.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst welcomeUrl = configuration.paths.welcome;\r\nconst cookies = configuration.cookies;\r\n\r\nconst MAXRETRY = 2;\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst paymentMethodTypes = configuration.payment_method_types;\r\n\r\nclass ApiFacade {\r\n\r\n static isLoggedIn(){\r\n if (UserData.getItem(userDataKeys.jwt_token)){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n static async top100Users(language){\r\n let url = Backend.backendURLs.top100URL;\r\n if (language){\r\n url+=`?language=${encodeURIComponent(language)}`;\r\n }\r\n //let r = ApiHelpers.callApiWithRetry(url, Backend.apiLevels.ANONYMOUS);\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.ANONYMOUS/*, alwaysSendGuest: true*/});\r\n return r;\r\n }\r\n\r\n static async topScoreHistory(month, year, language){\r\n let url = `${Backend.backendURLs.scoreHistoryURL}?month=${encodeURIComponent(month)}&year=${encodeURIComponent(year)}`;\r\n if (language){\r\n url+=`&language=${encodeURIComponent(language)}`;\r\n }\r\n //let r = ApiHelpers.callApiWithRetry(url, Backend.apiLevels.MEMBER);\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async conversionRate(){\r\n //let r = ApiHelpers.callApiWithRetry(Backend.backendURLs.conversionDataURL, Backend.apiLevels.MEMBER);\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.conversionDataURL});\r\n return r;\r\n }\r\n\r\n static async connectedToBot(){\r\n //let r = ApiHelpers.callApiWithRetry(Backend.backendURLs.connectedToBotURL, Backend.apiLevels.MEMBER);\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.connectedToBotURL});\r\n return r;\r\n }\r\n\r\n static async lifetimeTeamStats(){\r\n //let r = ApiHelpers.callApiWithRetry(Backend.backendURLs.lifetimeTeamStats, Backend.apiLevels.MEMBER);\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.lifetimeTeamStats});\r\n return r;\r\n }\r\n\r\n static async monthlyTeamStats(month, year){\r\n let url = `${Backend.backendURLs.monthlyTeamStatsUrl}?month=${encodeURIComponent(month)}&year=${encodeURIComponent(year)}`;\r\n //let r = ApiHelpers.callApiWithRetry(url, Backend.apiLevels.MEMBER);\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async myEarningsHistory(month, year, minutesOffset, platform, excludeList = 0){\r\n let url = `${Backend.backendURLs.myEarningsHistoryURL}?month=${encodeURIComponent(month)}&year=${encodeURIComponent(year)}&minutesOffset=${encodeURIComponent(minutesOffset)}&platformName=${encodeURIComponent(platform)}&excludeList=${encodeURIComponent(excludeList)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async myPayoutHistory(minutesOffset){\r\n let url = `${Backend.backendURLs.myPayoutHistoryURL}?minutesOffset=${encodeURIComponent(minutesOffset)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async myCoins(){\r\n let url = `${Backend.backendURLs.myCoinsURL}`;\r\n //let r = ApiHelpers.callApiWithRetry(url, Backend.apiLevels.MEMBER);\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async withdrawCoins(treatCoinAmount, cryptoCurrency, fiatCurrency, platform){\r\n const postBody = {\r\n treatCoinAmount: treatCoinAmount,\r\n cryptoCurrency: cryptoCurrency,\r\n fiatCurrency: fiatCurrency,\r\n platform: platform\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.withdrawCoinsURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async convertCoins(treatCoinAmount){\r\n const postBody = {\r\n treatCoinAmount: treatCoinAmount\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.convertCoinsURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n } \r\n\r\n static async paymentMethodsList(){\r\n let url = `${Backend.backendURLs.paymentMethodsListURL}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async removePaymentMethod(paymentMethod){\r\n const postBody = {};\r\n const body = JSON.stringify(postBody);\r\n\r\n let url = null;\r\n if (paymentMethod === paymentMethodTypes.plum) {\r\n url = Backend.backendURLs.removePlumURL;\r\n } else if (paymentMethod === paymentMethodTypes.paxum) {\r\n url = Backend.backendURLs.removePaxumURL;\r\n } else if (paymentMethod === paymentMethodTypes.faucetpay) {\r\n url = Backend.backendURLs.removeFaucetPayURL;\r\n } else{\r\n return null;\r\n }\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async addFaucetPay(email, walletAddress){\r\n const postBody = {\r\n email: email,\r\n walletAddress: walletAddress\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.addFaucetPayURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async addPaxum(email, fullName, birthDate){\r\n const postBody = {\r\n email: email,\r\n fullName: fullName,\r\n birthDate: birthDate\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.addPaxumURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async requestPlum(email){\r\n const postBody = {\r\n email: email\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.requestPlumURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async addPlum(email, code){\r\n const postBody = {\r\n email: email,\r\n code: code\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.addPlumURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async dailyEarningPlans(platform){\r\n let url = `${Backend.backendURLs.dailyEarningPlansURL}?platformName=${encodeURIComponent(platform)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async userStats(){\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.userStatsUrl});\r\n return r;\r\n }\r\n\r\n static async fetchResourceContent(language){\r\n let url = Backend.backendURLs.fetchContentURL;\r\n if (language){\r\n url+=`?language=${encodeURIComponent(language)}`;\r\n }\r\n\r\n //let r = ApiHelpers.callApiWithRetry(url, Backend.apiLevels.ANONYMOUS, true);\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.ANONYMOUS, alwaysSendGuest: true});\r\n return r;\r\n }\r\n\r\n static async currentRewards(language){\r\n let url = `${Backend.backendURLs.currentRewardsURL}?language=${encodeURIComponent(language)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.ANONYMOUS, alwaysSendGuest: true});\r\n return r;\r\n }\r\n\r\n static async updateLanguage(language){\r\n let url = `${Backend.backendURLs.updateLanguageURL}`;\r\n const postBody = {\r\n language: language\r\n };\r\n const body = JSON.stringify(postBody);\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.ANONYMOUS, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async faq(language){ \r\n let url = `${Backend.backendURLs.faqURL}`;\r\n if (language){\r\n url+=`?language=${encodeURIComponent(language)}`;\r\n }\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.ANONYMOUS, alwaysSendGuest: true});\r\n return r;\r\n }\r\n\r\n static async deleteAccount(){\r\n const postBody = {};\r\n const body = JSON.stringify(postBody);\r\n\r\n let url = `${Backend.backendURLs.deleteAccountURL}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async changePassword(oldPassword, password){\r\n const postBody = {\r\n oldPassword: oldPassword,\r\n password: password\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.changePasswordURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async requestPasswordReset(email){\r\n const postBody = {\r\n email: email\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.requestPasswordResetURL, apiLevel: Backend.apiLevels.ANONYMOUS, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async resetPassword(email, verificationCode, password){\r\n const postBody = {\r\n email: email,\r\n verificationCode: verificationCode,\r\n password: password\r\n };\r\n\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.resetPasswordURL, apiLevel: Backend.apiLevels.ANONYMOUS, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async activityPreferences(){\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.activityPreferencesURL});\r\n return r;\r\n }\r\n\r\n static async updateActivityPreferences(displayAdultOffers){\r\n const postBody = {};\r\n if (displayAdultOffers){\r\n postBody.displayAdultOffers = displayAdultOffers;\r\n }\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.updateActivityPreferencesURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async emailSubscriptionSettings(){\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.emailSubscriptionSettingsURL});\r\n return r;\r\n }\r\n\r\n static async updateEmailSubscriptionSettings(receiveNotificationsEmail){\r\n const postBody = {\r\n receiveNotificationsEmail: receiveNotificationsEmail\r\n }\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.updateEmailSubscriptionSettingsURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async subscriptionSettings(){\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.subscriptionSettingsURL});\r\n return r;\r\n }\r\n\r\n static async updateSubscriptionSettings(receiveNotificationsTelegram, \r\n receiveOfferCompletionTelegram,\r\n receiveReferralOfferCompletionTelegram,\r\n receiveReferralRegistrationTelegram,\r\n receiveNotificationsEmail){\r\n const postBody = {};\r\n if (receiveNotificationsTelegram!==undefined && receiveNotificationsTelegram!=null){\r\n postBody.receiveNotificationsTelegram=receiveNotificationsTelegram;\r\n }\r\n if (receiveOfferCompletionTelegram!==undefined && receiveOfferCompletionTelegram!=null){\r\n postBody.receiveOfferCompletionTelegram=receiveOfferCompletionTelegram;\r\n }\r\n if (receiveReferralOfferCompletionTelegram!==undefined && receiveReferralOfferCompletionTelegram!=null){\r\n postBody.receiveReferralOfferCompletionTelegram=receiveReferralOfferCompletionTelegram;\r\n }\r\n if (receiveReferralRegistrationTelegram!==undefined && receiveReferralRegistrationTelegram!=null){\r\n postBody.receiveReferralRegistrationTelegram=receiveReferralRegistrationTelegram;\r\n }\r\n if (receiveNotificationsEmail!==undefined && receiveNotificationsEmail!=null){\r\n postBody.receiveNotificationsEmail=receiveNotificationsEmail;\r\n }\r\n\r\n const body = JSON.stringify(postBody);\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.updateSubscriptionSettingsURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async enableAdultOffers(uniqueID){\r\n const postBody = {\r\n uniqueID: uniqueID\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.enableAdultOffersURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async hotOffers(platform){\r\n let url = `${Backend.backendURLs.hotOfferUrl}?platformName=${encodeURIComponent(platform)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async favouriteOffers(platform){\r\n let url = `${Backend.backendURLs.favouriteOffersURL}?platformName=${encodeURIComponent(platform)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async offers(language, country, platform, isCashBack, isSpecial){\r\n const cashBackParam = ApiHelpers.getIntParam(isCashBack);\r\n const specialParam = ApiHelpers.getIntParam(isSpecial);\r\n const url = `${Backend.backendURLs.offersURL}?language=${encodeURIComponent(language)}&country=${encodeURIComponent(country)}&platformName=${encodeURIComponent(platform)}&isCashback=${cashBackParam}&specialOffers=${specialParam}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.ANONYMOUS});\r\n return r;\r\n }\r\n\r\n static async additionalOffers(platform, country, language) {\r\n let url = `${Backend.backendURLs.additionalOffersURL}?country=${country}&platformName=${platform}`;\r\n if (!language) {\r\n url = url + `&language=${language} `;\r\n }\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.ANONYMOUS});\r\n return r;\r\n }\r\n\r\n static async completedOffers(platform){\r\n let url = `${Backend.backendURLs.completedOffersURL}?platformName=${encodeURIComponent(platform)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async recommendedOffer(recommendedOffer, offerRecommender, platform){\r\n let url = `${Backend.backendURLs.recommendedOfferURL}?recommendedOffer=${encodeURIComponent(recommendedOffer)}&platform=${encodeURIComponent(platform)}`;\r\n if (offerRecommender){\r\n url += `&offerRecommender=${encodeURIComponent(offerRecommender)}`;\r\n }\r\n let r = ApiHelpers.callApiWithRetry({url: url, alwaysSendGuest: true, apiLevel: Backend.apiLevels.ANONYMOUS});\r\n return r;\r\n }\r\n\r\n static async top12Offers(language, country, platform){\r\n const url = `${Backend.backendURLs.top12OffersURL}?language=${encodeURIComponent(language)}&country=${encodeURIComponent(country)}&platformName=${encodeURIComponent(platform)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.ANONYMOUS });\r\n return r;\r\n }\r\n\r\n static async recordOfferEvent(params){\r\n const body = JSON.stringify(params);\r\n let r = ApiHelpers.callApiWithRetry({url: Backend.backendURLs.recordOfferEventURL, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async recordOfferEventNew(queryParams) {\r\n let r = ApiHelpers.callApiWithRetry({\r\n url: Backend.backendURLs.offerEventsURL + '?' + queryParams,\r\n apiLevel: Backend.apiLevels.MEMBER,\r\n method: Backend.backendMethods.get\r\n });\r\n return r;\r\n }\r\n\r\n static async offerSharingStatus(offerID){\r\n const url = `${Backend.backendURLs.offerSharingStatusURL}?offerID=${encodeURIComponent(offerID)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url });\r\n return r;\r\n }\r\n\r\n static async markShareTeaserDisplayed(){\r\n const postBody = {};\r\n const body = JSON.stringify(postBody);\r\n\r\n let url = `${Backend.backendURLs.markShareTeaserDisplayedURL}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async markCoinsDisclaimerDisplayed(){\r\n const postBody = {};\r\n const body = JSON.stringify(postBody);\r\n\r\n let url = `${Backend.backendURLs.markCoinsDisclaimerDisplayedURL}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async allowSurveyDataSharing(){\r\n const postBody = {};\r\n const body = JSON.stringify(postBody);\r\n\r\n let url = `${Backend.backendURLs.allowSurveyDataSharingUrl}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async submitIntroSurvey(platform, answers, timeTaken){\r\n const postBody = {\r\n answers: answers,\r\n timeTaken: timeTaken\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let url = `${Backend.backendURLs.submitIntroSurveyUrl}?platformName=${encodeURIComponent(platform)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async introSurveyAvailable(){\r\n let url = `${Backend.backendURLs.introSurveyAvailableUrl}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url});\r\n return r;\r\n }\r\n\r\n static async userUpdateLiveNewsPref(receiveLiveNews){\r\n const receiveLiveNewsParam = ApiHelpers.getIntParam(receiveLiveNews);\r\n const postBody = {\r\n receiveLiveNews: receiveLiveNewsParam\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let url = Backend.backendURLs.userUpdateLiveNewsPrefURL;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async recordThirdPartyConsent(){\r\n const postBody = {};\r\n const body = JSON.stringify(postBody);\r\n\r\n let url = `${Backend.backendURLs.recordThirdPartyConsentURL}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.ANONYMOUS, alwaysSendGuest: true, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async saveDeliveredNotifications(notifications){\r\n const postBody = {\r\n notifications: notifications\r\n };\r\n const body = JSON.stringify(postBody);\r\n\r\n let url = Backend.backendURLs.saveDeliveredNotificationsUrl;\r\n let r = ApiHelpers.callApiWithRetry({url: url, apiLevel: Backend.apiLevels.MEMBER, body: body, method: Backend.backendMethods.post});\r\n return r;\r\n }\r\n\r\n static async incomingNotifications(enforceLiveNews){\r\n const url = `${Backend.backendURLs.incomingNotificationsUrl}?enforceLiveNews=${encodeURIComponent(enforceLiveNews)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url });\r\n return r;\r\n }\r\n\r\n static async receiveTopOffers(language, country, platform) {\r\n let url = `${Backend.backendURLs.top12OffersURL}?language=${encodeURIComponent(language)}&country=${encodeURIComponent(country)}&platformName=${encodeURIComponent(platform)}`;\r\n let r = ApiHelpers.callApiWithRetry({url: url,apiLevel: Backend.apiLevels.ANONYMOUS });\r\n return r;\r\n }\r\n\r\n static async receiveClickedOffers({ amount = 50, page = 1, order = 1, status }) {\r\n const queryParams = queryString.stringify(SanitizeQueryParams({ amount, page, order, status }));\r\n let url = `${Backend.backendURLs.offersClickedURL}?${queryParams}`;\r\n let r = ApiHelpers.callApiWithRetry({ url: url, method: Backend.backendMethods.get });\r\n return r;\r\n }\r\n\r\n static async getReportTicketProperties() {\r\n let r = ApiHelpers.callApiWithRetry({ url: Backend.backendURLs.getTicketReportPropertiesURL, method: Backend.backendMethods.get });\r\n return r;\r\n }\r\n\r\n static async getReportTicketLinks(body) {\r\n let r = ApiHelpers.callApiWithRetry({\r\n url: Backend.backendURLs.getTicketReportImgLinksURL,\r\n method: Backend.backendMethods.post,\r\n body: JSON.stringify(body)\r\n });\r\n return r;\r\n }\r\n\r\n static async getReportToken() {\r\n let r = ApiHelpers.callApiWithRetry({ url: Backend.backendURLs.getTicketReportTokenURL, method: Backend.backendMethods.get });\r\n return r;\r\n }\r\n\r\n static async submitTicketReport(body) {\r\n let r = ApiHelpers.callApiWithRetry({ \r\n url: Backend.backendURLs.submitTicketReportURL, \r\n method: Backend.backendMethods.post,\r\n body: JSON.stringify(body) });\r\n return r;\r\n }\r\n\r\n static async getLinkedOffers({ platformName, uniqueOfferID }) {\r\n let url = `${Backend.backendURLs.getLinkedOffersURL}?platformName=${encodeURIComponent(platformName)}&uniqueOfferID=${encodeURIComponent(uniqueOfferID)}`;\r\n let r = ApiHelpers.callApiWithRetry({\r\n url,\r\n method: Backend.backendMethods.get\r\n });\r\n return r;\r\n }\r\n\r\n static async refreshToken(){\r\n return ApiHelpers.prepareForRetry(Backend.apiLevels.MEMBER);\r\n }\r\n\r\n static async registerWithEmail(body) {\r\n UserData.setItem(userDataKeys.email_register, body.email);\r\n const url = Backend.backendURLs.startRegistrationURL;\r\n let r = ApiHelpers.callApiWithRetry({\r\n url,\r\n apiLevel: Backend.apiLevels.ANONYMOUS,\r\n method: Backend.backendMethods.post,\r\n body: JSON.stringify(body)\r\n });\r\n return r;\r\n }\r\n\r\n static async loginWithEmail(postBody) {\r\n UserData.setItem(userDataKeys.email_register, postBody.email);\r\n const url = Backend.backendURLs.signInURL;\r\n let r = ApiHelpers.callApiWithRetry({\r\n url,\r\n alwaysSendGuest: true,\r\n apiLevel: Backend.apiLevels.ANONYMOUS,\r\n method: Backend.backendMethods.post,\r\n body: JSON.stringify(postBody)\r\n });\r\n return r;\r\n }\r\n\r\n static processVerification(registerToken, menuOptions) {\r\n const startRegistration = function () {\r\n const gclient_id = UserData.getItem(userDataKeys.gclient_id);\r\n const fbclid = UserData.getCookie(cookies.fbc) || UserData.getItem(userDataKeys.fbclid);\r\n const fbp = UserData.getCookie(cookies.fbp);\r\n fetch(Backend.backendURLs.registerURL, {\r\n credentials: \"include\",\r\n method: Backend.backendMethods.post,\r\n headers: Backend.generateHeader(true),\r\n body: JSON.stringify({\r\n registerToken,\r\n url: Backend.backendURLs.registerURL,\r\n gclient_id: gclient_id,\r\n fbclid: fbclid,\r\n fbp: fbp\r\n })\r\n }).then(async res => {\r\n let result = await res.json();\r\n let success = result.registerSuccess;\r\n\r\n if (success) {\r\n\r\n await Backend.setEmailSessionData(result);\r\n UserData.removeItem(userDataKeys.referrer_code);\r\n Redirects.makeRedirectAfterLogin(false);\r\n\r\n } else {\r\n if (ApiFacade.isLoggedIn()) {\r\n redirectWithLangFunc(menuOptions.home.url);\r\n }\r\n else {\r\n redirectWithLangFunc(menuOptions.login.url);\r\n }\r\n\r\n }\r\n })\r\n };\r\n\r\n Backend.startAfterAnalyticsInitialized(startRegistration);\r\n\r\n }\r\n\r\n}\r\n\r\nclass ApiHelpers{\r\n static getIntParam(param){\r\n let intParam = 0;\r\n if (param === true){\r\n intParam = 1;\r\n } else if (param === false){\r\n intParam = 0;\r\n } else if (param !== undefined){\r\n intParam = param;\r\n }\r\n return intParam;\r\n }\r\n\r\n static shouldRetry(response){\r\n const shouldRetry = !response.ok && (response.unauthorized);\r\n return shouldRetry;\r\n }\r\n\r\n static getOwnLSKey(){\r\n return userDataKeys.refresh_call_time+\"_api\";\r\n }\r\n\r\n static lastPromise = null;\r\n static lastReloadTime = null;\r\n\r\n static _secondsLeft() {\r\n const now = Date.now();\r\n //const refreshKey = ApiHelpers.getOwnLSKey();\r\n let lastTime = ApiHelpers.lastReloadTime; //UserData.getItem(refreshKey);\r\n let seconds = 30;\r\n if (lastTime){\r\n lastTime = parseInt(lastTime);\r\n seconds = (now - lastTime) / 1000;\r\n }\r\n return seconds;\r\n }\r\n\r\n static setLastTokenRefreshTime(){\r\n const now = Date.now();\r\n //const refreshKey = ApiHelpers.getOwnLSKey();\r\n //UserData.setItem(refreshKey, now);\r\n ApiHelpers.lastReloadTime = now;\r\n return now;\r\n }\r\n\r\n static async refreshTheTokenAndUpdateTime() {\r\n let temp = await Backend.refreshToken();\r\n const now = ApiHelpers.setLastTokenRefreshTime();\r\n UserData.setItem(userDataKeys.refresh_call_time, now);\r\n return temp;\r\n }\r\n\r\n static async prepareForRetry(apiLevel){\r\n const user_token = UserData.getItem(userDataKeys.jwt_token);\r\n if ((!user_token) && (Backend.apiLevels.MEMBER <= apiLevel)){\r\n return false;\r\n }\r\n \r\n let rand = Math.random();\r\n\r\n let seconds = ApiHelpers._secondsLeft();\r\n if (seconds >= 30) {\r\n if (ApiHelpers.lastPromise !== null) {\r\n const res = await ApiHelpers.lastPromise;\r\n seconds = ApiHelpers._secondsLeft();\r\n if (seconds < 30){\r\n return res;\r\n }\r\n }\r\n ApiHelpers.lastPromise = ApiHelpers.refreshTheTokenAndUpdateTime();\r\n const refreshRes = await ApiHelpers.lastPromise;\r\n return refreshRes;\r\n } else {\r\n if (ApiHelpers.lastPromise !== null){\r\n const refreshRes = await ApiHelpers.lastPromise;\r\n return refreshRes;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n static isBadHeader(headers, apiLevel){\r\n if (Backend.apiLevels.MEMBER === apiLevel){\r\n if (!headers.get(Backend.serverHeaders.authorization)){\r\n return true;\r\n }\r\n } else if (Backend.apiLevels.ANONYMOUS === apiLevel){\r\n if (!headers.get(Backend.serverHeaders.authorization) && !headers.get(Backend.serverHeaders.guest_auth)){\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n static async callApiWithRetry( { url=\"\", \r\n apiLevel = Backend.apiLevels.MEMBER, \r\n alwaysSendGuest = false, \r\n maxretry = MAXRETRY,\r\n method = Backend.backendMethods.get,\r\n body}){\r\n let retries = maxretry;\r\n let response = { ok: false};\r\n for (let i=0; i=retries;\r\n response = await ApiHelpers.callApi({url: url, \r\n apiLevel: apiLevel, \r\n alwaysSendGuest: alwaysSendGuest, \r\n last: lastAttempt,\r\n method: method, \r\n body: body});\r\n if (!lastAttempt && ApiHelpers.shouldRetry(response)){\r\n let canRetry = await ApiHelpers.prepareForRetry(apiLevel);\r\n if (canRetry) {\r\n continue; // to next itereation/retry\r\n }\r\n }\r\n break;\r\n }\r\n return response;\r\n }\r\n\r\n static async callApi({ url=\"\", \r\n apiLevel = Backend.apiLevels.MEMBER, \r\n alwaysSendGuest = false, \r\n last = false,\r\n method = Backend.backendMethods.get,\r\n body}\r\n /*url, apiLevel, alwaysSendGuest, last*/){\r\n const response = { ok: false};\r\n if (last === undefined){\r\n last = true;\r\n }\r\n try {\r\n const requestHeaders = Backend.generateHeaderApi(apiLevel, alwaysSendGuest);\r\n if (ApiHelpers.isBadHeader(requestHeaders, apiLevel)){\r\n response.error = \"no authentication headers\";\r\n response.status = 0;\r\n return response;\r\n }\r\n\r\n var options = {\r\n method: method,\r\n headers: requestHeaders,\r\n redirect: \"manual\"\r\n };\r\n if (body){\r\n options.body = body;\r\n }\r\n const fetchResponse = await fetch(url, options);\r\n\r\n response.ok = fetchResponse.ok || fetchResponse.redirected;\r\n response.redirectUrl = fetchResponse.url;\r\n response.status = fetchResponse.status;\r\n response.statusText = fetchResponse.statusText;\r\n response.unauthorized = Backend.backendResponseCodes.unauthorizedCode == response.status;\r\n response.forbidden = Backend.backendResponseCodes.forbiddenCode == response.status;\r\n response.badRequest = Backend.backendResponseCodes.badRequestCode == response.status;\r\n response.baseCall = fetchResponse; // for debug only!\r\n\r\n if (response.ok || response.unauthorized){\r\n response.response = await fetchResponse.json();\r\n if (response.ok || last){\r\n // This logic will not be triggered if there's a retry on the way\r\n if (response.response.tokenValid){\r\n //Backend.clearTokenIfRequired(response.response.tokenValid, false);\r\n // We'll clear token only on refreshToken case\r\n }\r\n }\r\n };\r\n if (!response.ok){\r\n response.error = (response.statusText || !response.ok);\r\n }\r\n }\r\n catch (e){\r\n response.ok = false;\r\n response.error = e;\r\n }\r\n return response;\r\n }\r\n}\r\n\r\nexport default ApiFacade;","import React from 'react';\r\nimport UserData from 'User_Data.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst languages = configuration.languages;\r\n\r\nclass Content extends React.Component {\r\n\r\n static storeContent(content) {\r\n if (content) {\r\n UserData.setItem(userDataKeys.content, JSON.stringify(content));\r\n } \r\n }\r\n\r\n static clearContent() {\r\n UserData.removeItem(userDataKeys.content);\r\n }\r\n\r\n static getContent() {\r\n return UserData.getItem(userDataKeys.content);\r\n }\r\n\r\n static getValue(key) {\r\n let content = JSON.parse(UserData.getItem(userDataKeys.content));\r\n return content[key];\r\n }\r\n\r\n static getPreferredLanguage() {\r\n let language = UserData.getItem(userDataKeys.language);\r\n if (language === null || language === undefined) {\r\n UserData.setItem(userDataKeys.language, languages[0].code);\r\n return languages[0].code;\r\n } else {\r\n return language;\r\n }\r\n }\r\n\r\n static async updatePreferredLanguage(language) {\r\n UserData.setItem(userDataKeys.enforce_live_news, 1);\r\n UserData.setItem(userDataKeys.language, language);\r\n await ApiFacade.fetchResourceContent(language);\r\n }\r\n\r\n}\r\n\r\nexport default Content;","import React from 'react';\r\nimport UserData from 'User_Data.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst globalConf = require('global_conf.json');\r\nconst mixpanelToken = globalConf.mixpanel_connection.token;\r\nconst analyticsId = globalConf.google_analytics_connection.analytics_id;\r\nconst gtagStreamId = globalConf.google_analytics_connection.measurement_id;\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst urls = configuration.urls;\r\n\r\nconst googleTagManagerURL = urls.google_tag_manager_url;\r\n\r\nclass Consent extends React.Component {\r\n\r\n static addGoogleAnalyticsScripts() {\r\n const pregoogleAnalyitcsScript = document.createElement(\"script\");\r\n pregoogleAnalyitcsScript.innerHTML =\r\n `window.dataLayer = window.dataLayer || [];\r\n var gclient_id = null;\r\n function gtag(){dataLayer.push(arguments);};\r\n gtag('get', '${gtagStreamId}', 'client_id', function(clientId) {\r\n if (clientId){\r\n gclient_id = clientId;\r\n if (window.localStorage){\r\n window.localStorage.setItem('gclient_id', clientId);\r\n if(window.onAnalyticsInitialize){\r\n var onAnalyticsInitialize = window.onAnalyticsInitialize;\r\n window.onAnalyticsInitialize = null;\r\n onAnalyticsInitialize();\r\n }\r\n }\r\n } else {\r\n // console.warn('No client id returned');\r\n } }\r\n );\r\n function get_gclient_id(){\r\n if (!gclient_id && window.localStorage){\r\n gclient_id = window.localStorage.getItem('gclient_id');\r\n }\r\n return gclient_id;\r\n }`;\r\n \r\n document.head.appendChild(pregoogleAnalyitcsScript); \r\n\r\n const googleAnalyticsScript = document.createElement(\"script\");\r\n googleAnalyticsScript.innerHTML = `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push(\r\n {'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\r\n '${googleTagManagerURL}'+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer',\r\n '${analyticsId}');`;\r\n document.head.appendChild(googleAnalyticsScript);\r\n\r\n setTimeout(function() { \r\n if(window.onAnalyticsInitialize) {\r\n var onAnalyticsInitialize = window.onAnalyticsInitialize;\r\n window.onAnalyticsInitialize = null;\r\n onAnalyticsInitialize();\r\n }\r\n }, 3000);\r\n\r\n }\r\n\r\n static addMixpanel() {\r\n Mixpanel.init(mixpanelToken);\r\n }\r\n\r\n static sendThirdPartyConsent() {\r\n const req = ApiFacade.recordThirdPartyConsent();\r\n req.then(function (res) {\r\n if (res.ok) {\r\n let result = res.response;\r\n UserData.setItem(userDataKeys.guest_token, result.token);\r\n }\r\n },\r\n (error) => { \r\n }\r\n );\r\n }\r\n \r\n static approveThirdParty() {\r\n Consent.addGoogleAnalyticsScripts();\r\n Consent.addMixpanel();\r\n }\r\n\r\n}\r\n\r\nexport default Consent;","const configuration = require('configuration.json');\r\n\r\nconst platformTypes = configuration.platform_types;\r\n\r\nconst desktopPlatformType = platformTypes.desktop;\r\nconst androidPlatformType = platformTypes.android;\r\nconst iOSPlatformType = platformTypes.ios;\r\n\r\nclass Platform {\r\n\r\n static getPlatformName() {\r\n var userAgent = navigator.userAgent || navigator.vendor || window.opera;\r\n\r\n if (/windows phone/i.test(userAgent)) {\r\n return desktopPlatformType;\r\n }\r\n\r\n if (/android/i.test(userAgent)) {\r\n return androidPlatformType;\r\n }\r\n\r\n if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\r\n return iOSPlatformType;\r\n }\r\n\r\n return desktopPlatformType;\r\n }\r\n\r\n\r\n}\r\n\r\nexport default Platform;","import Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport jwt from 'jwt-decode';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport Consent from 'utils/Consent.js';\r\nimport Images from 'utils/Images.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util';\r\nimport Platform from 'utils/Platform.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nconst configuration = require('configuration.json');\r\nconst globalConf = require('global_conf.json');\r\n\r\n\r\nconst accessPoints = configuration.access_points;\r\nconst serverHeaders = configuration.server_headers;\r\nconst methods = configuration.methods;\r\nconst responseCodes = configuration.response_codes;\r\nconst paths = configuration.paths;\r\nconst loginTypes = configuration.login_types;\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst queryVariables = configuration.query_variables;\r\nconst broadcastChannels = configuration.broadcast_channels;\r\nconst languageItems = configuration.languages;\r\nconst tokenSourceToLoginType = configuration.token_source_to_login_type;\r\n\r\nconst botDetails = globalConf.bot_details;\r\n\r\nconst websiteConnection = globalConf.website_connection;\r\n\r\nconst gatewayHost = websiteConnection.gateway_host;\r\nconst cloudfrontHost = websiteConnection.cloudfront_host;\r\nconst frontendHost = websiteConnection.frontend_host;\r\n\r\nconst incomingNotifications = accessPoints.incoming_notifications;\r\nconst saveDeliveredNotifications = accessPoints.save_delivered_notifications;\r\nconst currentRewardsPoint = accessPoints.current_rewards;\r\nconst top10Point = accessPoints.top_10_users;\r\nconst top100Point = accessPoints.top_100_users;\r\nconst scoreHistoryPoint = accessPoints.score_history;\r\nconst offersPoint = accessPoints.offers;\r\nconst completedOffersPoint = accessPoints.completed_offers;\r\nconst favouriteOffersPoint = accessPoints.favourite_offers;\r\nconst fetchContentPoint = accessPoints.fetch_content;\r\nconst fetchUserDataPoint = accessPoints.fetch_user_data;\r\nconst createCookiePoint = accessPoints.create_cookie;\r\nconst myCoinsPoint = accessPoints.my_coins;\r\nconst convertCoinsPoint = accessPoints.convert_coins;\r\nconst conversionDataPoint = accessPoints.conversion_data;\r\nconst withdrawCoinsPoint = accessPoints.withdraw_coins;\r\nconst markCoinsDisclaimerDisplayedPoint = accessPoints.mark_coins_disclaimer_displayed;\r\nconst myEarningsHistoryPoint = accessPoints.my_earnings_history;\r\nconst myPayoutHistoryPoint = accessPoints.my_payout_history;\r\nconst faqPoint = accessPoints.faq;\r\nconst blogPostsPoint = accessPoints.blog_posts;\r\nconst signInPoint = accessPoints.sign_in;\r\nconst requestPasswordResetPoint = accessPoints.request_password_reset;\r\nconst resetPasswordPoint = accessPoints.reset_password;\r\nconst startRegistrationPoint = accessPoints.start_registration;\r\nconst registerPoint = accessPoints.register;\r\nconst subscriptionSettingsPoint = accessPoints.subscription_settings;\r\nconst updateSubscriptionSettingsPoint = accessPoints.update_subscription_settings;\r\nconst emailSubscriptionSettingsPoint = accessPoints.email_subscription_settings;\r\nconst updateEmailSubscriptionSettingsPoint = accessPoints.update_email_subscription_settings;\r\nconst activityPreferencesPoint = accessPoints.activity_preferences;\r\nconst updateActivityPreferencesPoint = accessPoints.update_activity_preferences;\r\nconst changePasswordPoint = accessPoints.change_password;\r\nconst enableAdultOffersPoint = accessPoints.enable_adult_offers;\r\nconst notifyAdultOffersPoint = accessPoints.notify_adult_offers;\r\nconst deleteAccountPoint = accessPoints.delete_account;\r\nconst googleLoginPoint = accessPoints.google_login;\r\nconst facebookLoginPoint = accessPoints.facebook_login;\r\nconst discordLoginPoint = accessPoints.discord_login;\r\nconst mergeDiscordPoint = accessPoints.merge_discord;\r\nconst connectedToBotPoint = accessPoints.connected_to_bot;\r\nconst recordOfferEventPoint = accessPoints.record_offer_event;\r\nconst paymentMethodsListPoint = accessPoints.payment_methods_list;\r\nconst requestPlumPoint = accessPoints.request_plum;\r\nconst addPlumPoint = accessPoints.add_plum;\r\nconst addPaxumPoint = accessPoints.add_paxum;\r\nconst addFaucetPayPoint = accessPoints.add_faucetpay;\r\nconst removePlumPoint = accessPoints.remove_plum;\r\nconst removePaxumPoint = accessPoints.remove_paxum;\r\nconst removeFaucetPayPoint = accessPoints.remove_faucetpay;\r\nconst recommendedOfferPoint = accessPoints.recommended_offer;\r\nconst recordThirdPartyConsentPoint = accessPoints.record_third_party_consent;\r\nconst offerSharingStatusPoint = accessPoints.offer_sharing_status;\r\nconst dailyEarningPlans = accessPoints.daily_earning_plans;\r\nconst markShareTeaserDisplayedPoint = accessPoints.mark_share_teaser_displayed;\r\nconst hotOfferPoint = accessPoints.hot_offer;\r\nconst userStatsPoint = accessPoints.user_stats;\r\nconst monthlyTeamStatsPoint = accessPoints.monthly_team_stats;\r\nconst lifetimeTeamStats = accessPoints.lifetime_team_stats;\r\nconst submitIntroSurveyPoint = accessPoints.submit_intro_survey;\r\nconst introSurveyAvailableEndpoint = accessPoints.intro_survey_available;\r\nconst allowSurveyDataSharingEndpoint = accessPoints.allow_survey_data_sharing;\r\nconst updateLanguageEndpoint = accessPoints.update_language;\r\nconst refreshTokenEndpoint = accessPoints.refresh_token;\r\nconst logOutEndpoint = accessPoints.log_out;\r\nconst approveYourIdentityEndpoint = accessPoints.approve_your_identity;\r\nconst receiveUploadLinksEndpoint = accessPoints.receive_upload_links;\r\nconst userUpdateLiveNewsPrefEndpoint = accessPoints.user_update_live_news_preferences;\r\nconst verifyBotEndpoint = accessPoints.verify_bot;\r\nconst top12OffersEndpoint = accessPoints.top_12_offers;\r\nconst additionalOffersEndpoint = accessPoints.additional_offers;\r\nconst offerEventsEndpoint = accessPoints.offer_events;\r\nconst offersClickedEndpoit = accessPoints.offers_clicked;\r\nconst getTicketReportPropertiesEndpoint = accessPoints.user_get_ticket_report_properties;\r\nconst getTicketReportImgLinksEndpoint = accessPoints.user_get_ticket_report_presigned_links;\r\nconst getTicketReportTokenEndpoint = accessPoints.user_get_ticket_report_token;\r\nconst submitTicketReportEndpoint = accessPoints.user_submitt_ticket_report;\r\nconst getLinkedOffersEndpoint = accessPoints.linked_offers;\r\n\r\nconst getMethod = methods.get;\r\nconst postMethod = methods.post;\r\nconst putMethod = methods.put;\r\n\r\nconst OKCode = responseCodes.OK;\r\nconst badRequestCode = responseCodes.bad_request;\r\nconst unauthorizedCode = responseCodes.unauthorized;\r\nconst forbiddenCode = responseCodes.forbidden;\r\nconst internalBackendErrorCode = responseCodes.internal_server_error;\r\nconst serviceUnavailableCode = responseCodes.service_unavailable;\r\n\r\nconst botProtocol = botDetails.bot_protocol;\r\nconst telegramDomain = botDetails.telegram_domain;\r\nconst botName = botDetails.bot_name;\r\nconst joinSuffix = botDetails.join_suffix;\r\n\r\nconst userPath = paths.user_path;\r\nconst guestPath = paths.guest_path;\r\n\r\nconst liveNewsPreferencesChannel = new BroadcastChannel(broadcastChannels.live_news_preferences_channel);\r\n\r\nwindow.expiredShown = false;\r\n\r\nconst pathSuffix = (UserData.getItem(userDataKeys.jwt_token) !== null) ? userPath : guestPath;\r\nconst dynamicHost = (UserData.getItem(userDataKeys.jwt_token) !== null) ? gatewayHost : cloudfrontHost;\r\n\r\nconst backendURLs = {\r\n incomingNotificationsUrl: gatewayHost + incomingNotifications,\r\n saveDeliveredNotificationsUrl: gatewayHost + saveDeliveredNotifications,\r\n currentRewardsURL: cloudfrontHost + currentRewardsPoint,\r\n top10URL: dynamicHost + pathSuffix + top10Point,\r\n top100URL: dynamicHost + pathSuffix + top100Point,\r\n scoreHistoryURL: dynamicHost + pathSuffix + scoreHistoryPoint,\r\n updateLanguageURL: gatewayHost + pathSuffix + updateLanguageEndpoint,\r\n offersURL: dynamicHost + pathSuffix + offersPoint,\r\n completedOffersURL: gatewayHost + completedOffersPoint,\r\n fetchContentURL: cloudfrontHost + fetchContentPoint,\r\n fetchUserDataURL: gatewayHost + fetchUserDataPoint,\r\n createCookieURL: gatewayHost + createCookiePoint,\r\n favouriteOffersURL: gatewayHost + favouriteOffersPoint,\r\n recommendedOfferURL: gatewayHost + recommendedOfferPoint,\r\n recordThirdPartyConsentURL: gatewayHost + recordThirdPartyConsentPoint,\r\n offerSharingStatusURL: gatewayHost + offerSharingStatusPoint,\r\n dailyEarningPlansURL: gatewayHost + dailyEarningPlans,\r\n markShareTeaserDisplayedURL: gatewayHost + markShareTeaserDisplayedPoint,\r\n hotOfferUrl: gatewayHost + hotOfferPoint,\r\n userStatsUrl: gatewayHost + userStatsPoint,\r\n monthlyTeamStatsUrl: gatewayHost + monthlyTeamStatsPoint,\r\n lifetimeTeamStats: gatewayHost + lifetimeTeamStats,\r\n submitIntroSurveyUrl: gatewayHost + submitIntroSurveyPoint,\r\n introSurveyAvailableUrl: gatewayHost + introSurveyAvailableEndpoint,\r\n allowSurveyDataSharingUrl: gatewayHost + allowSurveyDataSharingEndpoint,\r\n myCoinsURL: gatewayHost + myCoinsPoint,\r\n convertCoinsURL: gatewayHost + convertCoinsPoint,\r\n conversionDataURL: gatewayHost + conversionDataPoint,\r\n withdrawCoinsURL: gatewayHost + withdrawCoinsPoint,\r\n markCoinsDisclaimerDisplayedURL: gatewayHost + markCoinsDisclaimerDisplayedPoint,\r\n myEarningsHistoryURL: gatewayHost + myEarningsHistoryPoint,\r\n myPayoutHistoryURL: gatewayHost + myPayoutHistoryPoint,\r\n faqURL: cloudfrontHost + faqPoint,\r\n blogPostsURL: gatewayHost + blogPostsPoint,\r\n signInURL: gatewayHost + signInPoint,\r\n requestPasswordResetURL: gatewayHost + requestPasswordResetPoint,\r\n resetPasswordURL: gatewayHost + resetPasswordPoint,\r\n startRegistrationURL: gatewayHost + startRegistrationPoint,\r\n registerURL: gatewayHost + registerPoint,\r\n subscriptionSettingsURL: gatewayHost + subscriptionSettingsPoint,\r\n updateSubscriptionSettingsURL: gatewayHost + updateSubscriptionSettingsPoint,\r\n activityPreferencesURL: gatewayHost + activityPreferencesPoint,\r\n updateActivityPreferencesURL: gatewayHost + updateActivityPreferencesPoint,\r\n changePasswordURL: gatewayHost + changePasswordPoint,\r\n emailSubscriptionSettingsURL: gatewayHost + emailSubscriptionSettingsPoint,\r\n updateEmailSubscriptionSettingsURL: gatewayHost + updateEmailSubscriptionSettingsPoint,\r\n enableAdultOffersURL: gatewayHost + enableAdultOffersPoint,\r\n notifyAdultOffersURL: gatewayHost + notifyAdultOffersPoint,\r\n deleteAccountURL: gatewayHost + deleteAccountPoint,\r\n googleLoginURL: gatewayHost + googleLoginPoint,\r\n facebookLoginURL: gatewayHost + facebookLoginPoint,\r\n discordLoginURL: gatewayHost + discordLoginPoint,\r\n mergeDiscordURL: gatewayHost + mergeDiscordPoint,\r\n connectedToBotURL: gatewayHost + connectedToBotPoint,\r\n recordOfferEventURL: gatewayHost + recordOfferEventPoint,\r\n paymentMethodsListURL: gatewayHost + paymentMethodsListPoint,\r\n requestPlumURL: gatewayHost + requestPlumPoint,\r\n addPlumURL: gatewayHost + addPlumPoint,\r\n addPaxumURL: gatewayHost + addPaxumPoint,\r\n addFaucetPayURL: gatewayHost + addFaucetPayPoint,\r\n removePlumURL: gatewayHost + removePlumPoint,\r\n removePaxumURL: gatewayHost + removePaxumPoint,\r\n removeFaucetPayURL: gatewayHost + removeFaucetPayPoint,\r\n refreshTokenURL: gatewayHost + refreshTokenEndpoint,\r\n logOutURL: gatewayHost + logOutEndpoint,\r\n approveYourIdentityURL: gatewayHost + approveYourIdentityEndpoint,\r\n receiveUploadLinksURL: gatewayHost + receiveUploadLinksEndpoint,\r\n userUpdateLiveNewsPrefURL: gatewayHost + userUpdateLiveNewsPrefEndpoint,\r\n verifyBotURL: gatewayHost + verifyBotEndpoint,\r\n top12OffersURL: dynamicHost + pathSuffix + top12OffersEndpoint,\r\n additionalOffersURL: dynamicHost + pathSuffix + additionalOffersEndpoint,\r\n offerEventsURL: dynamicHost + userPath + offerEventsEndpoint,\r\n offersClickedURL: dynamicHost + offersClickedEndpoit,\r\n getTicketReportPropertiesURL: dynamicHost + getTicketReportPropertiesEndpoint,\r\n getTicketReportImgLinksURL: dynamicHost + getTicketReportImgLinksEndpoint,\r\n getTicketReportTokenURL: dynamicHost + getTicketReportTokenEndpoint,\r\n submitTicketReportURL: dynamicHost + submitTicketReportEndpoint,\r\n getLinkedOffersURL: gatewayHost + getLinkedOffersEndpoint,\r\n \r\n};\r\n\r\nconst ANONYMOUS_API_LEVEL = 1;\r\nconst MEMBER_API_LEVEL = 2;\r\n\r\nlet backendMessages = {\r\n\r\n};\r\n\r\nconst backendResponseCodes = {\r\n OKCode: OKCode,\r\n badRequestCode: badRequestCode,\r\n unauthorizedCode: unauthorizedCode,\r\n forbiddenCode: forbiddenCode,\r\n internalBackendErrorCode: internalBackendErrorCode,\r\n serviceUnavailableCode: serviceUnavailableCode\r\n};\r\n\r\nconst backendMethods = {\r\n get: getMethod,\r\n post: postMethod,\r\n put: putMethod\r\n};\r\n\r\nclass ApiLevels {\r\n static get ANONYMOUS() {\r\n return ANONYMOUS_API_LEVEL;\r\n }\r\n\r\n static get MEMBER() {\r\n return MEMBER_API_LEVEL;\r\n }\r\n}\r\n\r\nclass Backend {\r\n\r\n static get backendURLs() {\r\n return backendURLs;\r\n }\r\n\r\n static get backendMessages() {\r\n return backendMessages;\r\n }\r\n\r\n static get backendResponseCodes() {\r\n return backendResponseCodes;\r\n }\r\n\r\n static get backendMethods() {\r\n return backendMethods;\r\n }\r\n\r\n static get apiLevels(){\r\n return ApiLevels;\r\n }\r\n\r\n static get serverHeaders(){\r\n return serverHeaders;\r\n }\r\n\r\n static loadBackendMessages() {\r\n backendMessages = {\r\n loadingMessage: Content.getValue(\"loading_message\"),\r\n errorMessage: Content.getValue(\"error_message\"),\r\n restrictedMessage: Content.getValue(\"restricted_message\"),\r\n requestsExceededMessage: Content.getValue(\"requests_exceeded_message\")\r\n };\r\n return backendMessages;\r\n }\r\n\r\n \r\n static generateHeaderApi(apiLevel, alwaysSendGuest = false) {\r\n\r\n let items = { 'Content-Type': 'application/json' };\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null && !alwaysSendGuest) {\r\n items[serverHeaders.authorization] = serverHeaders.jwt_prefix + ' ' + UserData.getItem(userDataKeys.jwt_token);\r\n }\r\n else if ((apiLevel<=ANONYMOUS_API_LEVEL) && (UserData.getItem(userDataKeys.guest_token) !== null)) {\r\n items[serverHeaders.guest_auth] = serverHeaders.jwt_prefix + ' ' + UserData.getItem(userDataKeys.guest_token);\r\n }\r\n\r\n return new Headers(items);\r\n }\r\n\r\n static generateHeader(alwaysSendGuest = false) {\r\n\r\n let items = { 'Content-Type': 'application/json' };\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null && !alwaysSendGuest) {\r\n items[serverHeaders.authorization] = serverHeaders.jwt_prefix + ' ' + UserData.getItem(userDataKeys.jwt_token);\r\n }\r\n else if (UserData.getItem(userDataKeys.guest_token) !== null) {\r\n items[serverHeaders.guest_auth] = serverHeaders.jwt_prefix + ' ' + UserData.getItem(userDataKeys.guest_token);\r\n }\r\n\r\n return new Headers(items);\r\n }\r\n\r\n static generateVerificationHeader(verificationToken) {\r\n let items = { 'Content-Type': 'application/json' };\r\n items[serverHeaders.verification_auth] = serverHeaders.jwt_prefix + ' ' + verificationToken;\r\n\r\n return new Headers(items);\r\n }\r\n\r\n static clearTokenIfRequired(tokenValid, accountSuspended){\r\n Backend.clearToken(tokenValid, accountSuspended);\r\n }\r\n\r\n static clearToken(tokenValid, accountSuspended) {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n if (tokenValid === false && accountSuspended === false) {\r\n let botLinkAddress = botProtocol + \"://\" + telegramDomain + \"/\" + botName;\r\n botLinkAddress += joinSuffix;\r\n if (window.expiredShown === false) {\r\n let loginType = UserData.getItem(userDataKeys.login_type);\r\n if (loginType === loginTypes.email || loginType === loginTypes.google || loginType === loginTypes.facebook || loginType === loginTypes.discord) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"session_expired_alert_title\") + '

    ',\r\n html: '

    ' + Content.getValue(\"session_expired_alert_text_email\") + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: true,\r\n confirmButtonText: Content.getValue(\"sign_in_button_text\"),\r\n cancelButtonText: Content.getValue(\"continue_as_guest_button_text\"),\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n customClass: {\r\n confirmButton: 'standard-confirm-button',\r\n cancelButton: 'standard-cancel-button',\r\n }\r\n }).then((result) => {\r\n window.expiredShown = false;\r\n if (result.isConfirmed) {\r\n redirectWithLangFunc(menuOptions.login.url)\r\n }\r\n else {\r\n redirectWithLangFunc(menuOptions.home.url);\r\n }\r\n });\r\n }\r\n else if (loginType === loginTypes.telegram) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"session_expired_alert_title\") + '

    ',\r\n html: '

    ' + Content.getValue(\"session_expired_alert_text_telegram\") + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: true,\r\n confirmButtonText: Content.getValue(\"go_to_treatsbot_button_text\"),\r\n cancelButtonText: Content.getValue(\"continue_as_guest_button_text\"),\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n customClass: {\r\n confirmButton: 'standard-confirm-button',\r\n cancelButton: 'standard-cancel-button',\r\n }\r\n }).then((result) => {\r\n window.expiredShown = false;\r\n if (result.isConfirmed) {\r\n window.location.href = botLinkAddress;\r\n }\r\n else {\r\n redirectWithLangFunc(menuOptions.home.url);\r\n }\r\n });\r\n }\r\n Backend.clearSessionData();\r\n window.expiredShown = true;\r\n }\r\n }\r\n else if (accountSuspended) {\r\n Backend.clearSessionData();\r\n redirectWithLangFunc(menuOptions.account_suspended.url)\r\n }\r\n }\r\n\r\n static fetchUserData(renderFunc, loginToken, tokenSource) {\r\n\r\n const platform = Platform.getPlatformName();\r\n let fetchURL = `${this.backendURLs.fetchUserDataURL}?platformName=${encodeURIComponent(platform)}&loginToken=${encodeURIComponent(loginToken)}&tokenSource=${encodeURIComponent(tokenSource)}`;\r\n fetch(fetchURL, {\r\n credentials: 'include',\r\n method: this.backendMethods.get,\r\n headers: this.generateHeader()\r\n })\r\n .then(async function (res) {\r\n let result = await res.json();\r\n const currentUrl = window.location.href;\r\n const url = new URL(currentUrl);\r\n url.searchParams.delete(queryVariables.token);\r\n url.searchParams.delete(queryVariables.source);\r\n window.history.replaceState({}, document.title, url.href);\r\n if (res.status === Backend.backendResponseCodes.OKCode) {\r\n await Backend.setUserData(result, tokenSource);\r\n }\r\n renderFunc();\r\n }\r\n );\r\n }\r\n\r\n static async fetchContent() {\r\n let preferredLanguage = Content.getPreferredLanguage();\r\n let fetchURL = `${this.backendURLs.fetchContentURL}?language=${encodeURIComponent(preferredLanguage)}`;\r\n\r\n const response = await fetch(fetchURL, {\r\n method: this.backendMethods.get,\r\n headers: this.generateHeader(true)\r\n });\r\n const result = await response.json();\r\n const content = result.content;\r\n Content.storeContent(content);\r\n\r\n }\r\n\r\n static createGuestCookie(renderFunc, shouldFetchAuthTokenData, loginToken, tokenSource) {\r\n fetch(this.backendURLs.createCookieURL, {\r\n method: this.backendMethods.get,\r\n headers: this.generateHeader()\r\n })\r\n .then(async function (res) {\r\n let result = await res.json();\r\n await Backend.setGuestData(result);\r\n if (shouldFetchAuthTokenData) {\r\n const fetchUserDataAfterAnalytics = function () {\r\n Backend.fetchUserData(renderFunc, loginToken, tokenSource);\r\n };\r\n Backend.startAfterAnalyticsInitialized(fetchUserDataAfterAnalytics);\r\n }\r\n else {\r\n renderFunc();\r\n }\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n static async setGuestData(result) {\r\n let token = result.token;\r\n let country = result.country;\r\n let language = result.language;\r\n UserData.setItem(userDataKeys.guest_token, token);\r\n UserData.setItem(userDataKeys.country, country);\r\n UserData.setItem(userDataKeys.language, language);\r\n }\r\n\r\n static setRefreshTokenData(result) {\r\n let token = result.token;\r\n Backend.setUserDataFromJwt(token)\r\n }\r\n\r\n static setUserDataFromJwt(token){\r\n let data = jwt(token);\r\n UserData.setItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.username, data.username);\r\n UserData.setItem(userDataKeys.country, data.country);\r\n UserData.setItem(userDataKeys.language, data.language);\r\n UserData.setItem(userDataKeys.kyc_status, data.KYCStatus);\r\n UserData.setItem(userDataKeys.uniqueUserID, data.uniqueUserID);\r\n }\r\n\r\n static startAfterAnalyticsInitialized(actionToStart) {\r\n const thirdPartySettings = JSON.parse(UserData.getItem(userDataKeys.third_party_settings)) || {};\r\n const mixpanelAccepted = thirdPartySettings[userDataKeys.third_party_cookies.mixpanel] || false;\r\n const googleAnalyticsAccepted = thirdPartySettings[userDataKeys.third_party_cookies.google_analytics] || false;\r\n\r\n if (!mixpanelAccepted) {\r\n Consent.addMixpanel();\r\n }\r\n\r\n if (!googleAnalyticsAccepted) {\r\n window.onAnalyticsInitialize = function () {\r\n setTimeout(function() {\r\n actionToStart();\r\n }, 300);\r\n };\r\n Consent.addGoogleAnalyticsScripts();\r\n }\r\n else {\r\n actionToStart();\r\n }\r\n }\r\n\r\n static async setUserData(result, tokenSource) {\r\n await Backend.logOutIfRequired();\r\n let token = result.token;\r\n let accountMergeCode = result.accountMergeCode;\r\n let country = result.country;\r\n let registrationMonth = result.registrationMonth;\r\n let registrationYear = result.registrationYear;\r\n let username = result.username;\r\n let language = result.language;\r\n let websiteReferralLink = result.websiteReferralLink;\r\n let telegramReferralLink = result.telegramReferralLink;\r\n let registrationTime = result.registrationTime;\r\n let KYCStatus = result.KYCStatus;\r\n let receiveLiveNews = result.receiveLiveNews;\r\n UserData.removeItem(userDataKeys.referrer_code);\r\n UserData.removeItem(userDataKeys.email_signup);\r\n UserData.removeItem(userDataKeys.redirect_to_discord_community_after_auth);\r\n\r\n if (token) {\r\n UserData.setItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.account_merge_code, accountMergeCode);\r\n UserData.setItem(userDataKeys.login_type, tokenSourceToLoginType[tokenSource.toString()]);\r\n UserData.setItem(userDataKeys.registration_month, registrationMonth);\r\n UserData.setItem(userDataKeys.registration_year, registrationYear);\r\n UserData.setItem(userDataKeys.username, username);\r\n UserData.setItem(userDataKeys.country, country);\r\n UserData.setItem(userDataKeys.language, language);\r\n UserData.setItem(userDataKeys.website_referral_link, websiteReferralLink);\r\n UserData.setItem(userDataKeys.telegram_referral_link, telegramReferralLink);\r\n UserData.setItem(userDataKeys.registration_time, registrationTime);\r\n UserData.setItem(userDataKeys.kyc_status, KYCStatus);\r\n UserData.setItem(userDataKeys.receive_live_news, receiveLiveNews);\r\n Backend.allowAllThirdPartyForRegisteringUser();\r\n UserData.setItem(userDataKeys.enforce_live_news, 1);\r\n if (receiveLiveNews) {\r\n liveNewsPreferencesChannel.postMessage({receiveLiveNews: true});\r\n }\r\n }\r\n Backend.setUrls();\r\n await Backend.fetchContent(false);\r\n if (!token && UserData.getItem(userDataKeys.jwt_token) === null) {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n redirectWithLangFunc(menuOptions.login.url);\r\n }\r\n \r\n }\r\n\r\n static async setEmailSessionData(result) {\r\n await Backend.logOutIfRequired();\r\n let token = result.token;\r\n let accountMergeCode = result.accountMergeCode;\r\n let country = result.country;\r\n let registrationMonth = result.registrationMonth;\r\n let registrationYear = result.registrationYear;\r\n let username = result.username;\r\n let language = result.language;\r\n let websiteReferralLink = result.websiteReferralLink;\r\n let telegramReferralLink = result.telegramReferralLink;\r\n let registrationTime = result.registrationTime;\r\n let KYCStatus = result.KYCStatus;\r\n let receiveLiveNews = result.receiveLiveNews;\r\n UserData.removeItem(userDataKeys.referrer_code);\r\n UserData.removeItem(userDataKeys.email_signup);\r\n UserData.removeItem(userDataKeys.redirect_to_discord_community_after_auth);\r\n\r\n if (token) {\r\n UserData.setItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.account_merge_code, accountMergeCode);\r\n UserData.setItem(userDataKeys.login_type, loginTypes.email);\r\n UserData.setItem(userDataKeys.registration_month, registrationMonth);\r\n UserData.setItem(userDataKeys.registration_year, registrationYear);\r\n UserData.setItem(userDataKeys.username, username);\r\n UserData.setItem(userDataKeys.country, country);\r\n UserData.setItem(userDataKeys.language, language);\r\n UserData.setItem(userDataKeys.website_referral_link, websiteReferralLink);\r\n UserData.setItem(userDataKeys.telegram_referral_link, telegramReferralLink);\r\n UserData.setItem(userDataKeys.registration_time, registrationTime);\r\n UserData.setItem(userDataKeys.kyc_status, KYCStatus);\r\n UserData.setItem(userDataKeys.receive_live_news, receiveLiveNews);\r\n Backend.allowAllThirdPartyForRegisteringUser();\r\n UserData.setItem(userDataKeys.enforce_live_news, 1);\r\n if (receiveLiveNews) {\r\n liveNewsPreferencesChannel.postMessage({receiveLiveNews: true});\r\n }\r\n }\r\n else {\r\n UserData.removeItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.language, languageItems[0].code);\r\n }\r\n Backend.setUrls();\r\n await Backend.fetchContent(false);\r\n \r\n }\r\n\r\n static async setGoogleSessionData(result) {\r\n await Backend.logOutIfRequired();\r\n let token = result.token;\r\n let accountMergeCode = result.accountMergeCode;\r\n let country = result.country;\r\n let registrationMonth = result.registrationMonth;\r\n let registrationYear = result.registrationYear;\r\n let username = result.username;\r\n let language = result.language;\r\n let websiteReferralLink = result.websiteReferralLink;\r\n let telegramReferralLink = result.telegramReferralLink;\r\n let registrationTime = result.registrationTime;\r\n let KYCStatus = result.KYCStatus;\r\n let receiveLiveNews = result.receiveLiveNews;\r\n UserData.removeItem(userDataKeys.referrer_code);\r\n UserData.removeItem(userDataKeys.email_signup);\r\n UserData.removeItem(userDataKeys.redirect_to_discord_community_after_auth);\r\n\r\n if (token) {\r\n UserData.setItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.account_merge_code, accountMergeCode);\r\n UserData.setItem(userDataKeys.login_type, loginTypes.google);\r\n UserData.setItem(userDataKeys.registration_month, registrationMonth);\r\n UserData.setItem(userDataKeys.registration_year, registrationYear);\r\n UserData.setItem(userDataKeys.username, username);\r\n UserData.setItem(userDataKeys.country, country);\r\n UserData.setItem(userDataKeys.language, language);\r\n UserData.setItem(userDataKeys.website_referral_link, websiteReferralLink);\r\n UserData.setItem(userDataKeys.telegram_referral_link, telegramReferralLink);\r\n UserData.setItem(userDataKeys.registration_time, registrationTime);\r\n UserData.setItem(userDataKeys.kyc_status, KYCStatus);\r\n UserData.setItem(userDataKeys.receive_live_news, receiveLiveNews);\r\n Backend.allowAllThirdPartyForRegisteringUser();\r\n UserData.setItem(userDataKeys.enforce_live_news, 1);\r\n if (receiveLiveNews) {\r\n liveNewsPreferencesChannel.postMessage({receiveLiveNews: true});\r\n }\r\n }\r\n else {\r\n UserData.removeItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.language, languageItems[0].code);\r\n }\r\n Backend.setUrls();\r\n await Backend.fetchContent(false);\r\n \r\n }\r\n\r\n static async setFacebookSessionData(result) {\r\n await Backend.logOutIfRequired();\r\n let token = result.token;\r\n let accountMergeCode = result.accountMergeCode;\r\n let country = result.country;\r\n let registrationMonth = result.registrationMonth;\r\n let registrationYear = result.registrationYear;\r\n let username = result.username;\r\n let language = result.language;\r\n let websiteReferralLink = result.websiteReferralLink;\r\n let telegramReferralLink = result.telegramReferralLink;\r\n let registrationTime = result.registrationTime;\r\n let KYCStatus = result.KYCStatus;\r\n let receiveLiveNews = result.receiveLiveNews;\r\n UserData.removeItem(userDataKeys.referrer_code);\r\n UserData.removeItem(userDataKeys.email_signup);\r\n UserData.removeItem(userDataKeys.redirect_to_discord_community_after_auth);\r\n\r\n if (token) {\r\n UserData.setItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.account_merge_code, accountMergeCode);\r\n UserData.setItem(userDataKeys.login_type, loginTypes.facebook);\r\n UserData.setItem(userDataKeys.registration_month, registrationMonth);\r\n UserData.setItem(userDataKeys.registration_year, registrationYear);\r\n UserData.setItem(userDataKeys.username, username);\r\n UserData.setItem(userDataKeys.country, country);\r\n UserData.setItem(userDataKeys.language, language);\r\n UserData.setItem(userDataKeys.website_referral_link, websiteReferralLink);\r\n UserData.setItem(userDataKeys.telegram_referral_link, telegramReferralLink);\r\n UserData.setItem(userDataKeys.registration_time, registrationTime);\r\n UserData.setItem(userDataKeys.kyc_status, KYCStatus);\r\n UserData.setItem(userDataKeys.receive_live_news, receiveLiveNews);\r\n Backend.allowAllThirdPartyForRegisteringUser();\r\n UserData.setItem(userDataKeys.enforce_live_news, 1);\r\n if (receiveLiveNews) {\r\n liveNewsPreferencesChannel.postMessage({receiveLiveNews: true});\r\n }\r\n }\r\n else {\r\n UserData.removeItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.language, languageItems[0].code);\r\n }\r\n Backend.setUrls();\r\n await Backend.fetchContent(false);\r\n \r\n }\r\n\r\n static async setDiscordSessionData(result) {\r\n await Backend.logOutIfRequired();\r\n let token = result.token;\r\n let accountMergeCode = result.accountMergeCode;\r\n let country = result.country;\r\n let registrationMonth = result.registrationMonth;\r\n let registrationYear = result.registrationYear;\r\n let username = result.username;\r\n let language = result.language;\r\n let websiteReferralLink = result.websiteReferralLink;\r\n let telegramReferralLink = result.telegramReferralLink;\r\n let registrationTime = result.registrationTime;\r\n let KYCStatus = result.KYCStatus;\r\n let receiveLiveNews = result.receiveLiveNews;\r\n UserData.removeItem(userDataKeys.referrer_code);\r\n UserData.removeItem(userDataKeys.email_signup);\r\n\r\n if (token) {\r\n UserData.setItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.account_merge_code, accountMergeCode);\r\n UserData.setItem(userDataKeys.login_type, loginTypes.discord);\r\n UserData.setItem(userDataKeys.registration_month, registrationMonth);\r\n UserData.setItem(userDataKeys.registration_year, registrationYear);\r\n UserData.setItem(userDataKeys.username, username);\r\n UserData.setItem(userDataKeys.country, country);\r\n UserData.setItem(userDataKeys.language, language);\r\n UserData.setItem(userDataKeys.website_referral_link, websiteReferralLink);\r\n UserData.setItem(userDataKeys.telegram_referral_link, telegramReferralLink);\r\n UserData.setItem(userDataKeys.registration_time, registrationTime);\r\n UserData.setItem(userDataKeys.kyc_status, KYCStatus);\r\n UserData.setItem(userDataKeys.receive_live_news, receiveLiveNews);\r\n Backend.allowAllThirdPartyForRegisteringUser();\r\n UserData.setItem(userDataKeys.enforce_live_news, 1);\r\n UserData.setItem(userDataKeys.connected_to_discord, 1);\r\n if (receiveLiveNews) {\r\n liveNewsPreferencesChannel.postMessage({receiveLiveNews: true});\r\n }\r\n }\r\n else {\r\n UserData.removeItem(userDataKeys.jwt_token, token);\r\n UserData.setItem(userDataKeys.language, languageItems[0].code);\r\n }\r\n Backend.setUrls();\r\n await Backend.fetchContent(false);\r\n \r\n }\r\n\r\n static allowAllThirdPartyForRegisteringUser() {\r\n const thirdPartySettings = {};\r\n thirdPartySettings[userDataKeys.third_party_cookies.mixpanel] = true;\r\n thirdPartySettings[userDataKeys.third_party_cookies.google_analytics] = true;\r\n UserData.setItem(userDataKeys.third_party_settings, JSON.stringify(thirdPartySettings));\r\n }\r\n\r\n static setUrls() {\r\n const pathSuffix = (UserData.getItem(userDataKeys.jwt_token) !== null) ? userPath : guestPath;\r\n const dynamicHost = (UserData.getItem(userDataKeys.jwt_token) !== null) ? gatewayHost : cloudfrontHost;\r\n\r\n //this.backendURLs.top10URL = dynamicHost + pathSuffix + top10Point;\r\n this.backendURLs.top100URL = dynamicHost + pathSuffix + top100Point;\r\n this.backendURLs.scoreHistoryURL = dynamicHost + pathSuffix + scoreHistoryPoint;\r\n this.backendURLs.updateLanguageURL = gatewayHost + pathSuffix + updateLanguageEndpoint;\r\n this.backendURLs.offersURL = dynamicHost + pathSuffix + offersPoint;\r\n this.backendURLs.top12OffersURL = dynamicHost + pathSuffix + top12OffersEndpoint;\r\n this.backendURLs.additionalOffersURL = dynamicHost + pathSuffix + additionalOffersEndpoint;\r\n\r\n }\r\n\r\n static askAdultOffers() {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"adult_offers_alert_title\") + '

    ',\r\n html: '

    ' + Content.getValue(\"adult_offers_alert_text\") + '

    ' + Content.getValue(\"adult_offers_alert_hint\") + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: true,\r\n confirmButtonText: Content.getValue(\"show_adult_offers_button_text\"),\r\n cancelButtonText: Content.getValue(\"not_for_now_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button',\r\n cancelButton: 'standard-cancel-button',\r\n }\r\n }).then((result) => {\r\n if (result.isConfirmed) this.enableAdultOffers();\r\n else this.notifyAdultOffers();\r\n });\r\n }\r\n\r\n static enableAdultOffers() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n const postBody = {\r\n };\r\n\r\n fetch(this.backendURLs.enableAdultOffersURL, {\r\n method: this.backendMethods.post,\r\n headers: this.generateHeader(),\r\n body: JSON.stringify(postBody)\r\n })\r\n .then(async function (res) {\r\n setTimeout(function () {\r\n redirectWithLangFunc(menuOptions.playground.url);\r\n }, 2000);\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n static notifyAdultOffers() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n const postBody = {\r\n };\r\n\r\n fetch(this.backendURLs.notifyAdultOffersURL, {\r\n method: this.backendMethods.post,\r\n headers: this.generateHeader(),\r\n body: JSON.stringify(postBody)\r\n })\r\n .then(async function (res) {\r\n setTimeout(function () {\r\n redirectWithLangFunc(menuOptions.playground.url);\r\n }, 2000);\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n static async refreshToken() {\r\n let res = null;\r\n try{\r\n res = await fetch(this.backendURLs.refreshTokenURL, {\r\n credentials: \"include\",\r\n method: this.backendMethods.get,\r\n headers: this.generateHeader()\r\n });\r\n\r\n let result = await res.json();\r\n if (res.status === Backend.backendResponseCodes.unauthorizedCode) {\r\n Backend.clearToken(false, false);\r\n return false;\r\n }\r\n else if (res.status === Backend.backendResponseCodes.forbiddenCode) {\r\n Backend.clearToken(false, true);\r\n return false;\r\n }\r\n else if (res.status === Backend.backendResponseCodes.OKCode) {\r\n Backend.setRefreshTokenData(result);\r\n return true;\r\n }\r\n return false;\r\n }\r\n catch (ex){\r\n return false;\r\n }\r\n }\r\n\r\n static logOut() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n Mixpanel.reset();\r\n\r\n fetch(this.backendURLs.logOutURL, {\r\n credentials: \"include\",\r\n method: this.backendMethods.post,\r\n headers: this.generateHeader()\r\n }).then((res) => {\r\n Backend.clearSessionData();\r\n redirectWithLangFunc(menuOptions.home.url);\r\n });\r\n }\r\n\r\n static async logOutIfRequired() {\r\n\r\n if (UserData.getItem(userDataKeys.jwt_token)) {\r\n\r\n Mixpanel.reset();\r\n\r\n await fetch(this.backendURLs.logOutURL, {\r\n credentials: \"include\",\r\n method: this.backendMethods.post,\r\n headers: this.generateHeader()\r\n }).then(async res => {\r\n let utmSource = UserData.getItem(userDataKeys.utm_source);\r\n let utmMedium = UserData.getItem(userDataKeys.utm_medium);\r\n let utmCampaign = UserData.getItem(userDataKeys.utm_campaign);\r\n let utmContent = UserData.getItem(userDataKeys.utm_content);\r\n let utmTerm = UserData.getItem(userDataKeys.utm_term);\r\n let fbclid = UserData.getItem(userDataKeys.fbclid);\r\n let oldDeviceId = UserData.getItem(userDataKeys.device_id)\r\n Backend.clearSessionData();\r\n UserData.setItemWithValueCheck(userDataKeys.utm_source, utmSource);\r\n UserData.setItemWithValueCheck(userDataKeys.utm_medium, utmMedium);\r\n UserData.setItemWithValueCheck(userDataKeys.utm_campaign, utmCampaign);\r\n UserData.setItemWithValueCheck(userDataKeys.utm_content, utmContent);\r\n UserData.setItemWithValueCheck(userDataKeys.utm_term, utmTerm);\r\n UserData.setItemWithValueCheck(userDataKeys.fbclid, fbclid);\r\n UserData.setItemWithValueCheck(userDataKeys.device_id, oldDeviceId);\r\n });\r\n }\r\n }\r\n\r\n static clearSessionData() {\r\n let language = UserData.getItem(userDataKeys.language);\r\n let content = UserData.getItem(userDataKeys.content);\r\n let contentVersion = UserData.getItem(userDataKeys.content_version);\r\n let guestToken = UserData.getItem(userDataKeys.guest_token);\r\n let receiveLiveNews = UserData.getItem(userDataKeys.receive_live_news);\r\n let thirdPartyAccepted = JSON.parse(UserData.getItem(userDataKeys.third_party_settings));\r\n let homeShownSections = UserData.getItem(userDataKeys.home_show_sections);\r\n let gclient_id = UserData.getItem(userDataKeys.gclient_id);\r\n UserData.clear();\r\n UserData.setItem(userDataKeys.language, language);\r\n UserData.setItem(userDataKeys.content, content);\r\n UserData.setItem(userDataKeys.content_version, contentVersion);\r\n UserData.setItem(userDataKeys.guest_token, guestToken);\r\n UserData.setItem(userDataKeys.receive_live_news, receiveLiveNews);\r\n UserData.setItem(userDataKeys.third_party_settings, JSON.stringify(thirdPartyAccepted));\r\n UserData.setItem(userDataKeys.home_show_sections, homeShownSections);\r\n UserData.setItem(userDataKeys.gclient_id, gclient_id);\r\n\r\n liveNewsPreferencesChannel.postMessage({receiveLiveNews: false});\r\n }\r\n\r\n static async receiveUploadEndpoints(setStep) {\r\n await fetch(this.backendURLs.receiveUploadLinksURL, {\r\n method: this.backendMethods.get,\r\n headers: this.generateHeader(),\r\n }).then(async res => {\r\n const result = await res.json();\r\n UserData.setItem(userDataKeys.upload_links, JSON.stringify(result.uploadLinks));\r\n await setStep(2)\r\n }).catch(e => {\r\n console.log(e);\r\n });\r\n }\r\n\r\n static async sendFileViaLink(file, link) {\r\n await fetch(link, {\r\n method: this.backendMethods.put,\r\n headers: { \"Content-Type\": file.type },\r\n body: file,\r\n }).then().catch(e => {\r\n alert(e.message);\r\n window.location.reload();\r\n });\r\n }\r\n\r\n static async approveYourIdentityRequest(links, successFunction) {\r\n\r\n const platform = Platform.getPlatformName();\r\n\r\n fetch(`${this.backendURLs.approveYourIdentityURL}?platformName=${encodeURIComponent(platform)}`, {\r\n method: this.backendMethods.post,\r\n headers: this.generateHeader(),\r\n body: JSON.stringify(links)\r\n }).then(async (res) => {\r\n if (res.status === Backend.backendResponseCodes.internalServerErrorCode || res.status === Backend.backendResponseCodes.serviceUnavailableCode) {\r\n let robotIconURL = Images.imageURL('robot-icon.png');\r\n successFunction(0)\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"kyc_approval_failed\") + '

    ',\r\n html: '

    ' + Backend.loadBackendMessages().errorMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n else if (res.status === Backend.backendResponseCodes.unauthorizedCode) {\r\n let result = await res.json();\r\n Backend.clearToken(result.tokenValid, false);\r\n successFunction(0)\r\n }\r\n else {\r\n let result = await res.json();\r\n Backend.clearToken(result.tokenValid, false);\r\n UserData.removeItem(userDataKeys.upload_links);\r\n UserData.setItem(userDataKeys.kyc_status, result.KYCStatus);\r\n UserData.setItem(userDataKeys.jwt_token, result.token);\r\n window.dispatchEvent(new CustomEvent('approveSuccess', { detail: { KYCStatus: result.KYCStatus }}))\r\n successFunction(result.KYCStatus)\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Backend;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport OneTwoTreatAlert from 'components/one_two_treat_area/One_Two_Treat_Alert.js';\r\nimport AnimatedNotification from 'components/one_two_treat_area/Animated_Notification.js';\r\nimport UserData from 'User_Data.js';\r\n\r\nlet thisComponent;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst broadcastChannels = configuration.broadcast_channels;\r\n\r\nclass OneTwoTreatIcon extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isFirstOpen: true,\r\n isBadgeActive: false,\r\n newHotOffers: 0,\r\n animationText: null,\r\n links: props.links\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n componentDidMount() {\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null) { \r\n\r\n const incomingHotOfferChannel = new BroadcastChannel(broadcastChannels.incoming_hot_offer_channel);\r\n const coinsEarningChannel = new BroadcastChannel(broadcastChannels.coins_earning_channel);\r\n incomingHotOfferChannel.addEventListener('message', (event) => {\r\n const newHotOffers = event.data.newHotOffers;\r\n const text = event.data.text;\r\n thisComponent.setState(prev => (\r\n {\r\n ...prev,\r\n newHotOffers: prev.newHotOffers + newHotOffers,\r\n animationText: text,\r\n isBadgeActive: false\r\n }\r\n )\r\n );\r\n setTimeout(function () {\r\n thisComponent.setState(\r\n {\r\n isBadgeActive: true\r\n }\r\n );\r\n }, 100\r\n );\r\n\r\n });\r\n\r\n coinsEarningChannel.addEventListener('message', (event) => {\r\n const text = event.data.text;\r\n thisComponent.setState(\r\n {\r\n animationText: text,\r\n isBadgeActive: false\r\n }\r\n );\r\n setTimeout(function () {\r\n thisComponent.setState(\r\n {\r\n isBadgeActive: true\r\n }\r\n );\r\n }, 100\r\n );\r\n\r\n });\r\n\r\n }\r\n \r\n }\r\n\r\n static openDialog(isOpen) {\r\n const { links } = thisComponent.state;\r\n let referUsersTeaser = document.getElementById('one-two-treat-users-teaser');\r\n if (referUsersTeaser !== null) referUsersTeaser.parentNode.removeChild(referUsersTeaser);\r\n if (!window.isOpen && isOpen) thisComponent.setState(prev => ({ ...prev, isFirstOpen: false }))\r\n OneTwoTreatAlert.showOneTwoTreatAlert(links?.telegramReferralLink, links?.websiteReferralLink, isOpen);\r\n }\r\n\r\n render() {\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null) {\r\n const { isFirstOpen, isBadgeActive, newHotOffers, animationText } = thisComponent.state;\r\n const section = document.getElementsByTagName('section')[0];\r\n const menuBar = document.getElementById('menu-bar');\r\n\r\n if (section && menuBar) {\r\n setTimeout(function () {\r\n section.onclick = function () {\r\n let referUsersTeaser = document.getElementById('one-two-treat-users-teaser');\r\n if (referUsersTeaser !== null) referUsersTeaser.parentNode.removeChild(referUsersTeaser);\r\n };\r\n\r\n menuBar.onclick = function () {\r\n let referUsersTeaser = document.getElementById('one-two-treat-users-teaser');\r\n if (referUsersTeaser !== null) referUsersTeaser.parentNode.removeChild(referUsersTeaser);\r\n };\r\n }, 1000);\r\n }\r\n\r\n return <>\r\n {
    \r\n {(isBadgeActive && isFirstOpen) ? : null}\r\n \r\n
    }\r\n ;\r\n }\r\n else return (null);\r\n }\r\n\r\n}\r\n\r\nexport default OneTwoTreatIcon;","import React, { useEffect, useState } from 'react';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nexport default function AnimatedNotification(props) {\r\n const [dataValueText, setDataValueText] = useState(\"\");\r\n const [animationText, setAnimationText] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (props.newHotOffers > 0) {\r\n setAnimationText(props.animationText);\r\n setTimeout(() => {\r\n setDataValueText(props.newHotOffers);\r\n }, 1000);\r\n }\r\n else {\r\n setAnimationText(props.animationText);\r\n setTimeout(() => {\r\n setDataValueText(Content.getValue(\"exclamation_mark\"));\r\n }, 1000);\r\n }\r\n \r\n }, []);\r\n\r\n return (\r\n
    \r\n {animationText}\r\n
    \r\n )\r\n}","import Content from 'utils/Content.js';\r\n\r\nclass Formatting {\r\n\r\n static format(text, formats, values) {\r\n for (let i = 0, len = Math.min(formats.length, values.length); i < len; i++) {\r\n if(text.indexOf(\"{{\") > -1){\r\n if(formats[i].startsWith(\"(\") && formats[i].endsWith(\")\")){\r\n formats[i] = `{{${(formats[i].slice(1, -1))}}}`\r\n }\r\n }\r\n text = text?.replace(formats[i], (values[i] !== null) ? values[i]: '');\r\n }\r\n\r\n return text;\r\n }\r\n\r\n static formatUSDAmount(number, showDecimals = false) {\r\n let amountStr;\r\n if (showDecimals) amountStr = number.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n else amountStr = number.toLocaleString();\r\n return this.format(Content.getValue(\"usd_amount_label\"), [\"(amount)\"], [amountStr]);\r\n }\r\n\r\n static formatThousandAmount(number, currency) {\r\n let amountStr;\r\n if (number > 1000) {\r\n let amount = number/1000;\r\n amountStr = this.format(\r\n Content.getValue(\"amount_label_thousand\"), \r\n [\"(currency)\", \"(amount)\"], \r\n [currency, Math.round(amount * 10) / 10]\r\n );\r\n }\r\n else amountStr = this.format(\r\n Content.getValue(\"amount_label\"),\r\n [\"(currency)\", \"(amount)\"], \r\n [currency, number]\r\n );\r\n\r\n return amountStr;\r\n }\r\n\r\n static formatTreatCoinAmount(number) {\r\n return (number !== undefined && number !== null) ? number.toLocaleString() : null;\r\n }\r\n\r\n static createOrdinal(number) {\r\n let j = number % 10,\r\n k = number % 100;\r\n if (j === 1 && k !== 11) {\r\n return number + \"st\";\r\n }\r\n if (j === 2 && k !== 12) {\r\n return number + \"nd\";\r\n }\r\n if (j === 3 && k !== 13) {\r\n return number + \"rd\";\r\n }\r\n return number + \"th\";\r\n }\r\n\r\n static shortenText(str, maxLength) {\r\n let wideLetters = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"];\r\n let strToCompare = str;\r\n if (!strToCompare) return '';\r\n let wideLetter;\r\n for (let i = 0, len = wideLetters.length; i < len; i++) {\r\n wideLetter = wideLetters[i];\r\n strToCompare = strToCompare.replaceAll(wideLetter, wideLetter + wideLetter);\r\n }\r\n if (strToCompare.length > maxLength) {\r\n let stringToReturn = strToCompare.substring(0, maxLength) + '...';\r\n for (let i = 0, len = wideLetters.length; i < len; i++) {\r\n wideLetter = wideLetters[i];\r\n stringToReturn = stringToReturn.replaceAll( wideLetter + wideLetter, wideLetter);\r\n }\r\n return stringToReturn;\r\n }\r\n else {\r\n return str;\r\n }\r\n }\r\n}\r\n\r\nexport default Formatting;","import UserData from 'User_Data.js';\r\nimport jwt from 'jwt-decode';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass JWTUtils {\r\n\r\n static getJWTCountry() {\r\n let userJWTToken = UserData.getItem(userDataKeys.jwt_token);\r\n let guestJWTToken = UserData.getItem(userDataKeys.guest_token);\r\n let token = userJWTToken ? userJWTToken: guestJWTToken;\r\n return jwt(token).country;\r\n }\r\n\r\n\r\n}\r\n\r\nexport default JWTUtils;","import UserData from 'User_Data.js';\r\nimport { createContext, useState } from 'react';\r\nimport OfferEvents from \"utils/Offer_Events.js\";\r\nimport Platform from 'utils/Platform.js';\r\n\r\nconst configuration = require(\"configuration.json\");\r\n\r\nconst eventTypes = configuration.event_types;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst OfferPopupContext = createContext();\r\n\r\nconst OfferPopupContextProvider = ({ children }) => {\r\n const [isOpenedOfferPopup, setIsOpenedOfferPopup] = useState(false);\r\n const [offer, setOffer] = useState(null);\r\n\r\n const handleOfferIsOpened = async ({ isOpened = true, offer = null }) => {\r\n if (isOpened === true) {\r\n setOffer(offer);\r\n await OfferEvents.sendEvent({\r\n eventType: eventTypes.click,\r\n offerID: offer.ID,\r\n appName: offer.appName,\r\n category: offer.category,\r\n offerType: offer.offerType,\r\n UserPayout: Number(UserData.getItem(userDataKeys.offer_coins_amount)),\r\n isFree: offer.isFree,\r\n platformName: Platform.getPlatformName(),\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id),\r\n uniqueID: offer.uniqueID,\r\n url: offer.url,\r\n providerID: offer.providerID,\r\n isSystem: offer.isSystem,\r\n })\r\n }\r\n setIsOpenedOfferPopup(isOpened);\r\n };\r\n \r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { OfferPopupContext, OfferPopupContextProvider };\r\n","import ApiFacade from 'ApiFacade.js';\r\nimport UserData from 'User_Data.js';\r\nimport jwt from 'jwt-decode';\r\nimport queryString from 'query-string';\r\nimport Backend from '../Backend';\r\nimport JWTUtils from 'utils/JWT_Utils.js';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n\r\n//const recordOfferEventURL = backendURLs.recordOfferEventURL;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst eventTypes = configuration.event_types;\r\nconst businessLogic = configuration.business_logic;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst uniqueIDLength = businessLogic.unique_id_length;\r\n\r\n\r\nclass OfferTracking {\r\n\r\n static contextType = OfferPopupContext;\r\n\r\n static generateOfferWallVisitID() {\r\n let result = '';\r\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n const charactersLength = characters.length;\r\n for (let i = 0; i < uniqueIDLength; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n UserData.setItem(userDataKeys.offer_wall_visit_id, result);\r\n }\r\n\r\n static async sendEvent(offerEvent, redirectUrl = null, openInNewTab = true, closePopup) {\r\n const postBody = {\r\n eventType: offerEvent.eventType,\r\n offerWallVisitID: offerEvent.offerWallVisitID\r\n };\r\n let jwtToken = UserData.getItem(userDataKeys.jwt_token);\r\n\r\n if (offerEvent.offerID !== undefined) {\r\n postBody.offerID = offerEvent.offerID;\r\n }\r\n if (offerEvent.impressions !== undefined) {\r\n postBody.impressions = offerEvent.impressions;\r\n }\r\n if (offerEvent.duration !== undefined) {\r\n postBody.duration = offerEvent.duration;\r\n }\r\n if (offerEvent.impressionIDs !== undefined) {\r\n postBody.impressionIDs = offerEvent.impressionIDs;\r\n }\r\n if (offerEvent.offerStartType !== undefined) {\r\n postBody.offerStartType = offerEvent.offerStartType;\r\n }\r\n if (offerEvent.platformName !== undefined) {\r\n postBody.platformName = offerEvent.platformName;\r\n }\r\n if (offerEvent.provider !== undefined) {\r\n postBody.provider = offerEvent.provider;\r\n }\r\n if (offerEvent.category !== undefined) {\r\n postBody.category = offerEvent.category;\r\n }\r\n if (offerEvent.payout !== undefined) {\r\n postBody.payout = offerEvent.payout;\r\n }\r\n if (offerEvent.UserPayout !== undefined) {\r\n postBody.UserPayout = offerEvent.UserPayout;\r\n }\r\n if (offerEvent.isFree !== undefined) {\r\n postBody.isFree = offerEvent.isFree;\r\n }\r\n if (offerEvent.offerType !== undefined) {\r\n postBody.offerType = offerEvent.offerType;\r\n }\r\n if (offerEvent.appName !== undefined) {\r\n postBody.appName = offerEvent.appName;\r\n }\r\n if (offerEvent.uniqueID !== undefined) {\r\n postBody.uniqueID = offerEvent.uniqueID;\r\n }\r\n if (offerEvent.eventType === eventTypes.clickthrough) {\r\n const queryParams = queryString.stringify({\r\n a:1,\r\n eventType: offerEvent.eventType,\r\n offerID: offerEvent.offerID,\r\n offerType: offerEvent.offerType,\r\n offerStartType: offerEvent.offerStartType,\r\n offerWallVisitID: offerEvent.offerWallVisitID,\r\n platformName: offerEvent.platformName,\r\n uniqueUserID: UserData.getItem(userDataKeys.jwt_token) ? jwt(UserData.getItem(userDataKeys.jwt_token)).uniqueUserID : '',\r\n country: JWTUtils.getJWTCountry()\r\n });\r\n const constructedURL = Backend.backendURLs.offerEventsURL + '?' + queryParams;\r\n if (offerEvent?.uniqueID?.substring(0, 3) === 'cpx') {\r\n closePopup();\r\n const iframe = document.getElementById('cpx-iframe-container');\r\n const iframeUrl = document.getElementById('cpx-iframe-src');\r\n iframeUrl.src = constructedURL;\r\n iframe.style.display = 'block';\r\n } else if (offerEvent.isSystem) {\r\n const req = await ApiFacade.recordOfferEventNew(queryParams);\r\n if (redirectUrl){\r\n window.location.href = redirectUrl;\r\n }\r\n } else {\r\n window.open(constructedURL, '_blank');\r\n /*if (offerEvent.platformName === 'iOS') {\r\n setTimeout(() => {\r\n window.open(constructedURL, '_blank');\r\n });\r\n }\r\n else {\r\n window.open(constructedURL, '_blank');\r\n }*/\r\n }\r\n } else {\r\n await ApiFacade.recordOfferEvent(postBody);\r\n }\r\n }\r\n\r\n static recordOfferPageVisit() {\r\n const visitStartEpochTime = UserData.getItem(userDataKeys.offer_page_visit_start);\r\n if (visitStartEpochTime !== null) {\r\n UserData.removeItem(userDataKeys.offer_page_visit_start);\r\n const currentEpochTime = Math.round(new Date().getTime() / 1000);\r\n this.sendEvent({\r\n offerID: document.getElementById('offer-details-id').value,\r\n offerType: document.getElementById('offer-details-type').value,\r\n duration: currentEpochTime - visitStartEpochTime,\r\n eventType: eventTypes.offer_page_visit,\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id)\r\n });\r\n }\r\n }\r\n\r\n static recordOfferWallVisit() {\r\n const visitStartEpochTime = UserData.getItem(userDataKeys.offer_wall_visit_start);\r\n if (visitStartEpochTime !== null) {\r\n UserData.removeItem(userDataKeys.offer_wall_visit_start);\r\n const currentEpochTime = Math.round(new Date().getTime() / 1000); \r\n this.sendEvent({\r\n duration: currentEpochTime - visitStartEpochTime,\r\n eventType: eventTypes.offer_wall_visit,\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id)\r\n });\r\n UserData.removeItem(userDataKeys.offer_wall_visit_id);\r\n }\r\n }\r\n\r\n static storeEventsOnRefresh() {\r\n let offerTrackingEvents = [];\r\n let event;\r\n const currentEpochTime = Math.round(new Date().getTime() / 1000);\r\n if (UserData.getItem(userDataKeys.offer_wall_visit_start) !== null) {\r\n event = {\r\n duration: currentEpochTime - UserData.getItem(userDataKeys.offer_wall_visit_start),\r\n eventType: eventTypes.offer_wall_visit,\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id)\r\n };\r\n offerTrackingEvents.push(event);\r\n UserData.removeItem(userDataKeys.offer_wall_visit_start);\r\n }\r\n if (UserData.getItem(userDataKeys.offer_page_visit_start) !== null) {\r\n let event = {\r\n offerID: document.getElementById('offer-details-id').value,\r\n offerType: document.getElementById('offer-details-type').value,\r\n duration: currentEpochTime - UserData.getItem(userDataKeys.offer_page_visit_start), eventType: eventTypes.offer_page_visit,\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id)\r\n };\r\n offerTrackingEvents.push(event);\r\n UserData.removeItem(userDataKeys.offer_page_visit_start);\r\n }\r\n UserData.removeItem(userDataKeys.offer_wall_visit_id);\r\n UserData.setItem(userDataKeys.offer_events, JSON.stringify(offerTrackingEvents));\r\n }\r\n\r\n}\r\n\r\nexport default OfferTracking;","import * as queryString from 'query-string';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport UserData from 'User_Data.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst botDetails = globalConf.bot_details;\r\nconst websiteConnection = globalConf.website_connection;\r\nconst discordConnection = globalConf.discord_connection;\r\n\r\nconst botSuffixes = configuration.bot_suffixes;\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst queryVariables = configuration.query_variables;\r\nconst urls = configuration.urls;\r\n\r\nconst botProtocol = botDetails.bot_protocol;\r\nconst telegramDomain = botDetails.telegram_domain;\r\nconst botName = botDetails.bot_name;\r\n\r\nconst joinSuffix = botSuffixes.join_suffix;\r\nconst refSuffix = botSuffixes.ref_suffix;\r\nconst mergeSuffix = botSuffixes.merge_suffix;\r\n\r\nconst websiteURL = websiteConnection.website_url;\r\n\r\nconst discordClientID = discordConnection.client_id;\r\nconst discordRedirectUrl = discordConnection.redirect_url;\r\n\r\nconst discordAuthURL = urls.discord_auth_url;\r\n\r\nconst stringifiedDiscordParams = queryString.stringify({\r\n client_id: discordClientID,\r\n response_type: 'code',\r\n redirect_uri: discordRedirectUrl,\r\n scope: ['identify', 'email', 'guilds.join', 'guilds.members.read'].join(' '),\r\n prompt: 'none'\r\n});\r\n\r\nconst discordLoginUrl = Formatting.format(discordAuthURL, [\"(stringifiedParams)\"], [stringifiedDiscordParams]);\r\n\r\nclass LinkCreator {\r\n\r\n static createBotLink() {\r\n\r\n let botLinkAddress;\r\n let basicBotLinkAddress = botProtocol + \"://\" + telegramDomain + \"/\" + botName;\r\n\r\n if (UserData.getItem(userDataKeys.referrer_code) !== null) {\r\n botLinkAddress = basicBotLinkAddress + Formatting.format(refSuffix, [\"(referrerCode)\"], [UserData.getItem(userDataKeys.referrer_code)]);\r\n }\r\n else if (UserData.getItem(userDataKeys.account_merge_code) !== null) {\r\n botLinkAddress = basicBotLinkAddress + Formatting.format(mergeSuffix, [\"(accountMergeCode)\"], [UserData.getItem(userDataKeys.account_merge_code)]);\r\n }\r\n else {\r\n botLinkAddress = basicBotLinkAddress + joinSuffix;\r\n }\r\n\r\n return botLinkAddress;\r\n }\r\n\r\n static createOfferShareLink(recommendedOffer, offerRecommender) {\r\n let offerShareLink = websiteURL + '?' + queryVariables.recommended_offer + '=' + recommendedOffer + '&' + queryVariables.offer_recommender + '=' + offerRecommender;\r\n return offerShareLink;\r\n }\r\n\r\n static createDiscordLink() {\r\n return discordLoginUrl;\r\n }\r\n \r\n\r\n}\r\n\r\nexport default LinkCreator;","import * as queryString from 'query-string';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Images from 'utils/Images.js';\r\nimport LinkCreator from 'utils/Link_Creator.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from './User_Events_Util';\r\nimport { redirectWithLangFunc } from './RedirectWithLang';\r\nimport UserData from 'User_Data.js';\r\n\r\nconst globalConf = require('global_conf.json');\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst urls = configuration.urls;\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst emailSignupModes = configuration.email_signup_modes;\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nconst facebookConnection = globalConf.facebook_connection;\r\nconst discordConnection = globalConf.discord_connection;\r\n\r\nconst facebookAppID = facebookConnection.app_id;\r\nconst facebookRedirectUrl = facebookConnection.redirect_url;\r\n\r\nconst discordClientID = discordConnection.client_id;\r\nconst discordRedirectUrl = discordConnection.redirect_url;\r\n\r\nconst facebookAuthURL = urls.facebook_auth_url;\r\nconst discordAuthURL = urls.discord_auth_url;\r\n\r\nclass Joining {\r\n static showPopup() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const emailSignupOption = menuOptions.email_signup;\r\n\r\n const emailSignup = UserData.getItem(userDataKeys.email_signup);\r\n\r\n if (emailSignup === emailSignupModes.direct || \r\n emailSignup === emailSignupModes.join_button) {\r\n redirectWithLangFunc(emailSignupOption.url); \r\n } \r\n else {\r\n const termsOfUseOption = menuOptions.terms_of_use;\r\n const privacyPolicyOption = menuOptions.privacy_policy;\r\n const cookiePolicyOption = menuOptions.cookie_policy;\r\n\r\n const stringifiedFacebookParams = queryString.stringify({\r\n client_id: facebookAppID,\r\n redirect_uri: facebookRedirectUrl,\r\n scope: ['email'].join(','),\r\n response_type: 'code',\r\n auth_type: 'rerequest',\r\n display: 'popup',\r\n });\r\n\r\n const stringifiedDiscordParams = queryString.stringify({\r\n client_id: discordClientID,\r\n response_type: 'code',\r\n redirect_uri: discordRedirectUrl,\r\n scope: ['identify', 'email', 'guilds.join', 'guilds.members.read'].join(' '),\r\n prompt: 'none'\r\n });\r\n\r\n const facebookLoginUrl = Formatting.format(facebookAuthURL, [\"(stringifiedParams)\"], [stringifiedFacebookParams]);\r\n const discordLoginUrl = Formatting.format(discordAuthURL, [\"(stringifiedParams)\"], [stringifiedDiscordParams]);\r\n\r\n window.SubmitEmailClickPanel = function () {\r\n Mixpanel.trackByArgs(mixpanelEvents.continue_with_click, {});\r\n redirectWithLangFunc(emailSignupOption.url);\r\n };\r\n\r\n let botLinkAddress = LinkCreator.createBotLink();\r\n let alertTitle = Content.getValue(\"join_with_alert_title\");\r\n\r\n let swalHTML = '
    ';\r\n\r\n swalHTML += '
    \"Most ' + Content.getValue(\"most_popular_label\")\r\n + '\"Join
    '\r\n + Content.getValue(\"discord_join_alert_label\") + ''\r\n + Content.getValue(\"instantly_join_the_community_alert_label\") + '
    '\r\n + `\r\n \r\n `\r\n + '
    ';\r\n /*\r\n swalHTML += '
    \"Join' + Content.getValue(\"facebook_join_alert_label\") + ''\r\n + `\r\n \r\n `\r\n + '
    ';\r\n */\r\n swalHTML += '
    \"Join'\r\n + Content.getValue(\"email_join_alert_label\") + ''\r\n + `\r\n \r\n `\r\n + '
    ';\r\n\r\n swalHTML += '
    \"Join
    '\r\n + Content.getValue(\"telegram_join_alert_label\") + '
    '\r\n + `\r\n \r\n `\r\n + '
    ';\r\n\r\n swalHTML += '
    \"Join'\r\n + Content.getValue(\"google_join_alert_label\") + ''\r\n + `\r\n \r\n `\r\n + '
    ';\r\n swalHTML += '

    ' + Content.getValue(\"already_have_an_account\")+' ';\r\n swalHTML += `` + Content.getValue(\"sign_in_cta\") + '';\r\n swalHTML += '

    ';\r\n\r\n swalHTML += '

    ' + Formatting.format(Content.getValue(\"alert_join_consent\"), ['(termsOfUseOptionUrl)', '(privacyPolicyOptionUrl)', '(cookiePolicyOptionUrl)'], [termsOfUseOption.url, privacyPolicyOption.url, cookiePolicyOption.url]) + '

    ';\r\n swalHTML += '
    ';\r\n\r\n MySwal.fire({\r\n title: '

    ' + alertTitle + '

    ',\r\n html: swalHTML,\r\n background: '#FFFFFF',\r\n showCloseButton: true,\r\n showConfirmButton: false,\r\n customClass: {\r\n closeButton: 'swal2-join-close'\r\n },\r\n didClose: () => {\r\n Mixpanel.trackByArgs(mixpanelEvents.closed_join_popup, {});\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default Joining;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\n\r\nconst OfferDifficultyIndicator = ({ imageType, difficultyLevel, difficultyLevelID }) => {\r\n return (\r\n <>\r\n \r\n \r\n
    {Content.getValue(\"offer_difficulties\")[difficultyLevelID?.toString()]}
    \r\n \"Difficulty\r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default OfferDifficultyIndicator;","import React from 'react';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nclass ExpandableHashtags extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n let hashTags = [];\r\n let suppliedHashTags = props.content.split(' ');\r\n let selectedHashTags = (props.selectedHashTags !== undefined) ? props.selectedHashTags : [];\r\n\r\n suppliedHashTags.forEach(function (hashTag) {\r\n if (selectedHashTags.includes(hashTag)) hashTags.push(hashTag);\r\n });\r\n\r\n suppliedHashTags.forEach(function (hashTag) {\r\n if (!selectedHashTags.includes(hashTag)) hashTags.push(hashTag);\r\n });\r\n\r\n this.state = {\r\n opened: false,\r\n hashTags: hashTags,\r\n selectedHashTags: selectedHashTags\r\n };\r\n\r\n }\r\n\r\n render() {\r\n const { opened, hashTags, selectedHashTags } = this.state;\r\n\r\n if (opened) {\r\n return (\r\n <>\r\n {hashTags.map(\r\n function (hashTag) {\r\n return {hashTag}\r\n }\r\n )}\r\n this.setState({ opened: !(this.state.opened) })}>{Content.getValue(\"hashtag_close\")}\r\n \r\n );\r\n }\r\n else {\r\n let firstTwoHashTags = [hashTags[0], hashTags[1]];\r\n return (\r\n <>\r\n
    \r\n {firstTwoHashTags.splice(0,2).map(\r\n function (hashTag) {\r\n return {hashTag}\r\n }\r\n )}\r\n {(hashTags.length > 2) ? '...' : ''}\r\n {\r\n (hashTags.length > 2) ? (\r\n this.setState({ opened: !(this.state.opened) })}>{`+${hashTags.length - 2}`}\r\n ) : (null)\r\n }\r\n
    \r\n\r\n
    \r\n {\"#: \"}\r\n {hashTags\r\n .map(\r\n function (hashTag, idx) {\r\n return \r\n { \r\n idx !== hashTags?.length-1 ?\r\n (hashTag.replace(\"#\", ' ') + ' ') :\r\n hashTag.replace(\"#\", ' ')\r\n }\r\n \r\n }\r\n )}\r\n
    \r\n \r\n );\r\n }\r\n \r\n }\r\n\r\n}\r\n\r\nexport default ExpandableHashtags;","import React from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst OfferThemeIndicator = ({ offer }) => {\r\n const { offerThemeID, offerTheme } = offer;\r\n return (\r\n <>\r\n \r\n {Content.getValue(\"offer_themes\")[offerThemeID.toString()]}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default OfferThemeIndicator;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport ExpandableHashTags from 'components/offers/Expandable_Hashtags.js';\r\nimport OfferDifficultyIndicator from 'components/offers/Offer_Difficulty_Indicator.js';\r\nimport Offers from 'utils/Offers.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport OfferThemeIndicator from 'components/offers/Offer_Theme_Indicator.js'\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\nconst configuration = require('configuration.json');\r\n\r\nconst featuredOfferModes = configuration.featured_offer_modes;\r\n\r\nclass FeaturedOffer extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.offer = props.offer;\r\n this.mode = props.mode;\r\n this.isSpecial = props.isSpecial;\r\n this.selectedHashTags = props.selectedHashTags;\r\n }\r\n\r\n static contextType = OfferPopupContext;\r\n\r\n render() {\r\n const { handleOfferIsOpened } = this.context;\r\n let isSpecial = this.isSpecial;\r\n let offer = this.offer;\r\n let selectedHashTags = this.selectedHashTags;\r\n let multiSteps = offer && JSON.parse(offer.multiSteps || null);\r\n let multiStepsSum = Offers.getMultiStepsSum(multiSteps);\r\n let isTodaysBest = this.mode === featuredOfferModes.todays_best;\r\n\r\n let titleText = null;\r\n\r\n if (isTodaysBest) {\r\n titleText = Content.getValue(\"todays_best\");\r\n }\r\n else if (this.mode === featuredOfferModes.system) {\r\n titleText = Content.getValue(\"treatcoins_offer\");\r\n }\r\n\r\n return
    \r\n
    {titleText}
    \r\n
    \r\n
    handleOfferIsOpened({ offer })}>\r\n \r\n {offer.description}\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    handleOfferIsOpened({ offer })}>{offer.appName}
    \r\n
    handleOfferIsOpened({ offer })}>{offer.MainTitle}
    \r\n
    \r\n
    \r\n
    \r\n
    handleOfferIsOpened({ offer })}>\r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n\r\n\r\n}\r\n\r\nexport default FeaturedOffer;","import React from 'react';\r\nimport Joining from 'utils/Joining.js';\r\nimport Content from 'utils/Content.js';\r\nimport UserData from 'User_Data.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass ApproveButton extends React.Component {\r\n\r\n render() {\r\n const isOneTwoTreatArea = this.props.isOneTwoTreatArea;\r\n const menuOptions = Content.getValue('menu_options');\r\n const approveIdentityOption = menuOptions.approve_your_identity;\r\n \r\n return (\r\n \r\n {\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null) {\r\n redirectWithLangFunc(approveIdentityOption.url);\r\n return null;\r\n }\r\n else {\r\n return Joining.showPopup();\r\n }\r\n }}\r\n >\r\n { Content.getValue(\"approve\") }\r\n \r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default ApproveButton;","import ApproveButton from 'components/buttons/Approve_Button.js';\r\nimport React, { useState } from 'react';\r\nimport Content from 'utils/Content.js';\r\nimport Images from 'utils/Images.js';\r\n\r\nconst BlurProvider = ({ \r\n children, \r\n count, \r\n fullWidth, \r\n isOneTwoTreatArea,\r\n isCashbackList,\r\n isHelpInvisible,\r\n}) => {\r\n const [isInfoVisible, setIsInfoVisible] = useState(false);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n Locked \r\n
    \r\n Offer info help setIsInfoVisible(!isInfoVisible)}\r\n /> \r\n

    \r\n { \r\n count===1 ?\r\n Content.getValue(\"offer_blurred_text\") :\r\n Content.getValue(\"offers_blurred_text\") \r\n }\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n isInfoVisible ?\r\n (\r\n
    \r\n
    \r\n { Content.getValue(\"offer_blurred_info_text\") }\r\n
    \r\n
    \r\n ) : \r\n ( null )\r\n }\r\n { children }\r\n
    \r\n );\r\n};\r\n\r\nexport default BlurProvider;","import Formatting from 'utils/Formatting.js';\r\nimport OfferEvents from 'utils/Offer_Events.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Joining from 'utils/Joining.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport FeaturedOffer from 'components/offers/Featured_Offer.js';\r\nimport BlurProvider from 'components/offer_providers/Blur_Provider.js';\r\n\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst offerDisplayTypes = configuration.offer_display_types;\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const recommendedOfferURL = backendURLs.recommendedOfferURL;\r\n//const offerSharingStatusURL = backendURLs.offerSharingStatusURL;\r\n//const markShareTeaserDisplayedURL = backendURLs.markShareTeaserDisplayedURL;\r\n\r\nconst offerSortOptions = configuration.offer_sort_options;\r\nconst offerDifficulties = configuration.offer_difficulties;\r\nconst offerDifficultiesToValues = configuration.offer_difficulties_to_values;\r\nconst eventTypes = configuration.event_types;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst difficultyClasses = { 'Easy': 'green', 'Medium': 'yellow', 'Hard': 'red' };\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nclass Offers {\r\n constructor() {\r\n this.context = OfferPopupContext;\r\n }\r\n\r\n static hideOfferDetails() {\r\n if (document.getElementById('offer-details-div-overlay') === null) {\r\n return;\r\n }\r\n const useCompetitionContainer = document.getElementById('offer-details-use-competition-container');\r\n const completionDisclaimerContainer = document.getElementById('offer-completion-disclaimer-container');\r\n\r\n OfferEvents.recordOfferPageVisit();\r\n document.getElementById(\"offer-details-div-overlay\").className = \"offer-details-div-overlay hidden\";\r\n document.getElementById(\"offer-details-div\").className = \"offer-details-div hidden\";\r\n document.getElementById(\"offer-data-image-details\").src = \"\";\r\n document.getElementById(\"offer-data-difficulty-image\").src = \"\";\r\n document.getElementById(\"offer-data-difficulty-popup-text\").innerHTML = \"\";\r\n document.getElementById(\"offer-data-image\").src = \"\";\r\n document.getElementById(\"offer-data-app-name\").innerHTML = \"\";\r\n document.getElementById(\"offer-data-description\").innerHTML = \"\";\r\n document.getElementById(\"offer-data-detailed-description\").innerHTML = \"\";\r\n document.getElementById(\"offer-details-users-completed\").innerHTML = \"\";\r\n document.getElementById(\"offer-data-hash-tags\").innerHTML = \"\";\r\n document.getElementById(\"offer-data-difficulty-mark\").className = \"list-offer-container-difficulty-mark\";\r\n document.getElementById(\"offer-data-difficulty-level\").className = \"offer-difficulty-label\";\r\n document.getElementById(\"offer-data-difficulty-level\").innerHTML = \"\";\r\n if (useCompetitionContainer) useCompetitionContainer.style.display = 'none';\r\n if (completionDisclaimerContainer) completionDisclaimerContainer.className = 'offer-completion-disclaimer-container hidden';\r\n\r\n document.getElementById(\"offer-data-unlimited\").style.display = \"none\";\r\n document.getElementById(\"offer-data-unlimited-sign\").style.display = \"none\";\r\n document.getElementById(\"offer-data-unlimited\").innerHTML = \"\";\r\n\r\n document.getElementById(\"offer-data-percentage\").style.display = \"none\";\r\n document.getElementById(\"offer-data-percentage-sign\").style.display = \"none\";\r\n document.getElementById(\"offer-data-percentage\").innerHTML = \"\";\r\n\r\n document.getElementById(\"offer-data-daily\").style.display = \"none\";\r\n document.getElementById(\"offer-data-daily-sign\").style.display = \"none\";\r\n document.getElementById(\"offer-data-daily-amount\").innerHTML = \"\";\r\n document.getElementById(\"offer-data-daily\").innerHTML = \"\";\r\n\r\n document.getElementById(\"offer-data-button\").innerHTML = \"\";\r\n document.getElementById(\"offer-details-url\").value = \"\";\r\n document.getElementById(\"offer-details-id\").value = \"\";\r\n document.getElementById(\"offer-details-type\").value = \"\";\r\n document.getElementById(\"offer-details-referral-container\").className = \"offer-referral-content\";\r\n document.getElementById(\"offer-details-system-container\").className = \"offer-referral-content\";\r\n document.getElementById(\"offer-details-popup-id\").innerHTML = \"\";\r\n document.getElementById(\"offer-details-coins-referral\").innerHTML = \"\";\r\n document.getElementById(\"offer-details-coins-2nd-gen-referral\").innerHTML = \"\";\r\n document.getElementById(\"offer-details-coins-3rd-gen-referral\").innerHTML = \"\";\r\n document.getElementById(\"offer-details-unique-offer-id\").value = \"\";\r\n document.getElementById(\"offer-details-unique-user-id\").values = \"\";\r\n document.getElementById(\"share-offer-frame\").className = \"share-offer-frame hidden\";\r\n document.getElementById(\"share-teaser-container\").className = \"share-teaser-container hidden\";\r\n document.getElementById('offer-details-users-completed').className = \"offer-details-completed-users-container\";\r\n }\r\n\r\n static displayMissingOfferDialog(recommendedOfferID) {\r\n\r\n let platform = Platform.getPlatformName();\r\n\r\n const req = ApiFacade.recommendedOffer(recommendedOfferID, null, platform);\r\n req.then(function (res) {\r\n let resultOK = res.ok;\r\n let result = res.response;\r\n if (resultOK) {\r\n let offerStatus = result.offerStatus;\r\n\r\n let displayMessage = Content.getValue(\"recommended_offer_status_messages\")[offerStatus];\r\n\r\n if (displayMessage !== null) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"offer_not_available\") + '

    ',\r\n html: '

    ' + displayMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n }\r\n\r\n }); \r\n }\r\n\r\n static displayOffersPolicy() {\r\n let swalHTML = '

    ' + Content.getValue(\"offers_policy_alert_title\") + '

    ';\r\n swalHTML += \"
      \" + Content.getValue(\"offers_policy_alert_content\") + \"
    \";\r\n\r\n MySwal.fire({\r\n html: swalHTML,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'payment-method-add-confirm-button'\r\n }\r\n });\r\n }\r\n\r\n static filterAppOffers(allOffers, selectedHashTags, difficulty, selectedSortOption) {\r\n if (difficulty !== offerDifficulties.all) {\r\n allOffers.forEach(function (app) {\r\n app.offers = app.offers.filter(e => e.difficultyLevel === difficulty);\r\n });\r\n }\r\n\r\n selectedHashTags.forEach(function (hashTag) {\r\n allOffers = allOffers.filter(e => e.hashTags.includes(hashTag));\r\n allOffers.forEach(function (app) {\r\n app.offers = app.offers.filter(e => e.hashTags.includes(hashTag));\r\n });\r\n });\r\n\r\n allOffers = allOffers.filter(e => e.offers.length > 0);\r\n allOffers = this.adjustTotals(JSON.parse(JSON.stringify(allOffers)));\r\n allOffers = this.applySorting(JSON.parse(JSON.stringify(allOffers)), selectedSortOption);\r\n\r\n return allOffers;\r\n }\r\n\r\n static filterOffers(favouriteOffers, selectedHashTags, difficulty) {\r\n if (difficulty !== offerDifficulties.all) {\r\n favouriteOffers = favouriteOffers.filter(e => e.difficultyLevel === difficulty);\r\n }\r\n selectedHashTags.forEach(function (hashTag) {\r\n favouriteOffers = favouriteOffers.filter(e => e.hashTags.includes(hashTag));\r\n });\r\n\r\n return favouriteOffers;\r\n }\r\n\r\n static adjustTotals(offers) {\r\n offers.forEach(function (app) {\r\n let totalCoins = 0;\r\n let totalUsersParticipated = 0;\r\n let minimumDifficulty = offerDifficultiesToValues[offerDifficulties.hard];\r\n let timeAdded = 0;\r\n app.offers.forEach(offer => {\r\n totalCoins += offer.coins;\r\n totalUsersParticipated += offer.usersParticipated;\r\n if (offerDifficultiesToValues[offer.difficultyLevel] < minimumDifficulty) {\r\n minimumDifficulty = offerDifficultiesToValues[offer.difficultyLevel];\r\n }\r\n if (offer.timeAdded > timeAdded) {\r\n timeAdded = offer.timeAdded;\r\n }\r\n });\r\n app.totalCoins = totalCoins;\r\n app.totalUsersParticipated = totalUsersParticipated;\r\n app.difficultyLevel = Object.keys(offerDifficultiesToValues)[minimumDifficulty - 1];\r\n app.timeAdded = timeAdded;\r\n });\r\n\r\n return offers;\r\n\r\n }\r\n\r\n static applySorting(offers, selectedSortOption) {\r\n if (selectedSortOption === offerSortOptions.most_popular) {\r\n offers.sort((a, b) => (a.totalUsersParticipated < b.totalUsersParticipated ? 1 : b.totalUsersParticipated < a.totalUsersParticipated ? -1 : 0));\r\n }\r\n else if (selectedSortOption === offerSortOptions.highest_amount_offers) {\r\n offers.sort((a, b) => (a.totalCoins < b.totalCoins ? 1 : b.totalCoins < a.totalCoins ? -1 : 0));\r\n }\r\n else if (selectedSortOption === offerSortOptions.latest_offers) {\r\n offers.sort((a, b) => (a.latestTimeAdded < b.latestTimeAdded ? 1 : b.latestTimeAdded < a.latestTimeAdded ? -1 : 0));\r\n }\r\n\r\n return offers;\r\n }\r\n\r\n static showSpecial({ offers, selectedHashTags }) {\r\n const specialOffers = Offers.getBlurredOfferData(offers);\r\n\r\n const swalHTML = (\r\n
    \r\n
    \r\n

    { Content.getValue(\"special_offers\") }

    \r\n

    { Content.getValue(\"@_treatcoin\") }

    \r\n
    \r\n

    \r\n { Content.getValue(\"special_offer_modal_description\") }\r\n

    \r\n
    \r\n {\r\n specialOffers.map(item => (item.length===1) ?\r\n (\r\n \r\n \r\n \r\n ) :\r\n (item.length>1) ?\r\n (\r\n \r\n {item.offers.map(offer => (\r\n \r\n ))}\r\n \r\n ) :\r\n (\r\n \r\n )\r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n\r\n const title = '

    ' + (Content.getValue(\"special_offers\")) + '

    ' + \r\n '

    ' + (Content.getValue(\"@_treatcoin\")) + '

    ';\r\n\r\n MySwal.fire({\r\n title,\r\n imageUrl: Images.imageURL('robot-delete-account-icon.png'),\r\n html: swalHTML,\r\n background: 'linear-gradient(138.74deg, #8938B9 7.25%, #6219DE 65.79%)',\r\n showCloseButton: true,\r\n closeButtonHtml: '\"Close',\r\n showConfirmButton: false,\r\n allowOutsideClick: false,\r\n width: 600,\r\n customClass: {\r\n container: 'z-5 special-offers-container desktop',\r\n popup: 'special-offers-popup desktop',\r\n htmlContainer: \"overflow-visible desktop\",\r\n title: 'margin-top_80 special-offers-popup-swal-title mobile',\r\n image: 'special-offer-logo-image desktop',\r\n confirmButton: 'nfts-confirm-button',\r\n closeButton: 'swal2-nfts-close'\r\n }\r\n });\r\n }\r\n\r\n static getBlurredAppData(offers) {\r\n let start, isProcess=false, end, obj={}, result=[];\r\n for(let i=0; i {\r\n let final={};\r\n if(value===-1) {\r\n final.index=+key;\r\n final.apps=offers.slice(+key, +key+1);\r\n }\r\n else {\r\n final.index=+key;\r\n final.length=value-(+key)+1;\r\n final.apps=offers.slice(key, value+1);\r\n }\r\n result.push(final);\r\n })\r\n\r\n return result;\r\n }\r\n\r\n static getBlurredOfferData(offers) {\r\n let start, isProcess=false, end, obj={}, result=[];\r\n for(let i=0; i {\r\n let final={};\r\n if(value===-1) {\r\n final.index=+key;\r\n final.offers=offers.slice(+key, +key+1);\r\n }\r\n else {\r\n final.index=+key;\r\n final.length=value-(+key)+1;\r\n final.offers=offers.slice(key, value+1);\r\n }\r\n result.push(final);\r\n })\r\n\r\n return result;\r\n }\r\n\r\n static hasSpecialOffers(offers) {\r\n return offers.some(each => each.offers.some(item => !item.isSpecial));\r\n }\r\n\r\n static getMultiStepsSum(multiSteps) {\r\n const multiStepsSum = multiSteps ?\r\n multiSteps.reduce((res, item) => {\r\n res.total += item.coins;\r\n if (item.isCompleted) res.current += item.coins;\r\n\r\n return res;\r\n }, {\r\n current: 0,\r\n total: 0,\r\n }) :\r\n null;\r\n\r\n return multiStepsSum;\r\n }\r\n} \r\n\r\nexport default Offers;","import Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Images from 'utils/Images.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nclass Sharing {\r\n\r\n static async copyToClipboard(text, fallbackTitle, fallbackMessage) {\r\n if (navigator.clipboard && navigator.clipboard.writeText) {\r\n // preferred for modern development and suppported for most browsers\r\n try {\r\n return await navigator.clipboard.writeText(text);\r\n }\r\n catch(ex) {\r\n Sharing.fallbackToPopup(fallbackTitle, fallbackMessage, text);\r\n }\r\n }\r\n else {\r\n Sharing.fallbackToPopup(fallbackTitle, fallbackMessage, text);\r\n } \r\n return;\r\n }\r\n\r\n static async shareLink({ title, text, url, fallbackTitle, fallbackMessage, detailsImageURL }) {\r\n let imageFile;\r\n if (detailsImageURL) {\r\n const imageFileName = detailsImageURL.split('/').pop();\r\n imageFile = await Images.createImageFile(detailsImageURL, imageFileName);\r\n }\r\n else {\r\n imageFile = null;\r\n }\r\n const data = {\r\n title,\r\n text,\r\n url\r\n };\r\n if (imageFile) { data.files = [imageFile]; } \r\n if (navigator && navigator.share && navigator.canShare(data)) {\r\n return await navigator.share(data);\r\n }\r\n else if (window.AndroidShareHandler) {\r\n window.AndroidShareHandler.share(url);\r\n }\r\n else {\r\n MySwal.fire({\r\n title: '

    ' + fallbackTitle + '

    ',\r\n html: \"

    \" + fallbackMessage + \"

    \" + url + \"

    \",\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button',\r\n cancelButton: 'standard-cancel-button',\r\n }\r\n });\r\n }\r\n }\r\n\r\n static fallbackToPopup(title, message, text) {\r\n MySwal.fire({\r\n title: '

    ' + title + '

    ',\r\n html: \"

    \" + message + \"

    \" + text + \"

    \",\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button',\r\n cancelButton: 'standard-cancel-button',\r\n }\r\n });\r\n }\r\n\r\n}\r\n\r\nexport default Sharing;","import React from 'react';\r\nimport Images from 'utils/Images';\r\nimport Content from 'utils/Content';\r\n\r\nconst BenefitsList = () => {\r\n return (\r\n
    \r\n
    \r\n \r\n

    \r\n {Content.getValue('user_stats_benefits_desc_1')}\r\n

    \r\n
    \r\n
    \r\n \r\n

    \r\n {Content.getValue('user_stats_benefits_desc_2')}\r\n

    \r\n
    \r\n
    \r\n \r\n

    \r\n {Content.getValue('user_stats_benefits_desc_3')}\r\n

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default BenefitsList;","import React, { useState, useEffect, useRef, memo } from 'react';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Sharing from 'utils/Sharing.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport BenefitsList from 'components/one_two_treat_area/user_stats/Benefits_List';\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst uiSettings = configuration.ui_settings;\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const userStatsURL = backendURLs.userStatsUrl;\r\n\r\nconst animationDuration = uiSettings.user_stats_animation_duration;\r\n\r\nconst UserStats = React.forwardRef(({ webReferralLink, telegramReferralLink, isSpinning }, ref) => {\r\n const [isDetailsVisible, setIsDetailsVisible] = useState(false);\r\n const [isTelegramClicked, setIsTelegramClicked] = useState(false);\r\n const [link, setLink] = useState('');\r\n const [isCopied, setIsCopied] = useState(false);\r\n const [state, setState] = useState({\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n coinsEarnedToday: 0,\r\n myTeamMembers: 0,\r\n refCount: 0,\r\n refAmount: 0,\r\n ref2ndGenCount: 0,\r\n ref2ndGenAmount: 0,\r\n competitionValidCoins: 0,\r\n position: 0,\r\n availableToUse: 0,\r\n totalCoinsEarned: 0\r\n });\r\n //const loadURL = userStatsURL;\r\n\r\n const earnedRef = useRef();\r\n const membersRef = useRef();\r\n const refCountRef = useRef();\r\n const refAmountRef = useRef();\r\n const ref2ndGenCountRef = useRef();\r\n const ref2ndGenAmountRef = useRef();\r\n const ref3rdGenCountRef = useRef();\r\n const ref3rdGenAmountRef = useRef();\r\n const competitionValidCoinsRef = useRef();\r\n const availableToUseRef = useRef();\r\n const totalCoinsEarnedRef = useRef();\r\n\r\n const { refCount,\r\n refAmount,\r\n ref2ndGenCount,\r\n ref2ndGenAmount,\r\n ref3rdGenCount,\r\n ref3rdGenAmount,\r\n competitionValidCoins,\r\n position,\r\n availableToUse,\r\n totalCoinsEarned, } = state;\r\n\r\n const copyLink = async () => {\r\n await Sharing.copyToClipboard(link || webReferralLink, Content.getValue(\"copy_to_clipboard_fallback_title\"), Content.getValue(\"copy_to_clipboard_fallback_text\"));\r\n setIsCopied(true);\r\n setTimeout(() => setIsCopied(false), 1500);\r\n };\r\n\r\n const shareLink = () => Sharing.shareLink(\r\n {\r\n title: Content.getValue(\"join_treatcoin\"),\r\n text: Content.getValue(\"share_link_cta_message\"),\r\n url: link || webReferralLink,\r\n fallbackTitle: Content.getValue(\"share_link_fallback_title\"),\r\n fallbackMessage: Content.getValue(\"share_link_fallback_message\"),\r\n detailsImageURL: null\r\n }\r\n );\r\n\r\n const setInfo = (num) => {\r\n if (num === 1 ) {\r\n setIsTelegramClicked(false);\r\n setLink(webReferralLink);\r\n }\r\n if (num === 2 && !isTelegramClicked) {\r\n setIsTelegramClicked(true);\r\n setLink(telegramReferralLink);\r\n }\r\n };\r\n\r\n const animateHandler = (obj, prevValue, currValue) => {\r\n if (prevValue < currValue)\r\n animateValue(obj, prevValue || 0, currValue || 0, animationDuration);\r\n };\r\n\r\n const animateValue = (obj, start, end, duration) => {\r\n let startTimestamp = null;\r\n const step = (timestamp) => {\r\n if (!startTimestamp) startTimestamp = timestamp;\r\n const progress = Math.min((timestamp - startTimestamp) / duration, 1);\r\n const data = Math.floor(progress * (end - start) + start);\r\n obj.innerHTML = Formatting.formatTreatCoinAmount(data || 0);\r\n if (progress < 1) {\r\n window.requestAnimationFrame(step);\r\n }\r\n else window.cancelAnimationFrame(step);\r\n };\r\n window.requestAnimationFrame(step);\r\n };\r\n\r\n const setLocalStorageVisibleData = ({\r\n coinsEarnedToday,\r\n myTeamMembers,\r\n }) => {\r\n const ext = JSON.parse(UserData.getItem(userDataKeys.stats));\r\n const data = {\r\n ...ext,\r\n [userDataKeys.stats_values.earned_today]: coinsEarnedToday,\r\n [userDataKeys.stats_values.team_members]: myTeamMembers,\r\n };\r\n UserData.setItem(userDataKeys.stats, JSON.stringify(data));\r\n };\r\n\r\n const setLocalStorageExpandableData = ({\r\n refCount,\r\n refAmount,\r\n ref2ndGenCount,\r\n ref2ndGenAmount,\r\n ref3rdGenCount,\r\n ref3rdGenAmount,\r\n competitionValidCoins,\r\n availableToUse,\r\n totalCoinsEarned,\r\n }) => {\r\n const ext = JSON.parse(UserData.getItem(userDataKeys.stats));\r\n const data = {\r\n ...ext,\r\n [userDataKeys.stats_values.ref_count]: refCount,\r\n [userDataKeys.stats_values.ref_amount]: refAmount,\r\n [userDataKeys.stats_values.ref_2nd_gen_count]: ref2ndGenCount,\r\n [userDataKeys.stats_values.ref_2nd_gen_amount]: ref2ndGenAmount,\r\n [userDataKeys.stats_values.ref_3rd_gen_count]: ref3rdGenCount || 0,\r\n [userDataKeys.stats_values.ref_3rd_gen_amount]: ref3rdGenAmount || 0,\r\n [userDataKeys.stats_values.competition_valid_coins]: competitionValidCoins,\r\n [userDataKeys.stats_values.available_to_use]: availableToUse,\r\n [userDataKeys.stats_values.total_coins_earned]: totalCoinsEarned,\r\n };\r\n UserData.setItem(userDataKeys.stats, JSON.stringify(data));\r\n };\r\n\r\n useEffect(() => {\r\n if (isSpinning) {\r\n if (ApiFacade.isLoggedIn()) {\r\n const req = ApiFacade.userStats();\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n setState({\r\n isLoaded: true,\r\n ...result.userStats\r\n });\r\n\r\n const stats = JSON.parse(UserData.getItem(userDataKeys.stats));\r\n const prevCoinsEarnedToday = stats?.[userDataKeys.stats_values.earned_today] || 0;\r\n const prevMyTeamMembers = stats?.[userDataKeys.stats_values.team_members] || 0;\r\n\r\n Mixpanel.trackByArgs(mixpanelEvents['1_2_treat_view'], {\r\n my_team_members: prevMyTeamMembers,\r\n has_hot_offer: UserData.getItem(userDataKeys.has_hot_offers),\r\n first_gen_referrals: result.userStats.refCount,\r\n first_gen_treatcoins: result.userStats.refAmount,\r\n second_gen_referrals: result.userStats.ref2ndGenCount,\r\n second_gen_treatcoins: result.userStats.ref2ndGenAmount,\r\n third_gen_referrals: result.userStats.ref3rdGenCount,\r\n third_gen_treatcoins: result.userStats.ref3rdGenAmount,\r\n competition_valid_tc: result.userStats.competitionValidCoins,\r\n available_to_use_tc: result.userStats.availableToUse,\r\n total_tc_earned: result.userStats.totalCoinsEarned,\r\n });\r\n\r\n const { coinsEarnedToday, myTeamMembers } = result.userStats;\r\n\r\n if (prevCoinsEarnedToday < coinsEarnedToday)\r\n animateValue(earnedRef.current, prevCoinsEarnedToday, coinsEarnedToday, animationDuration);\r\n if (prevMyTeamMembers < myTeamMembers)\r\n animateValue(membersRef.current, prevMyTeamMembers, myTeamMembers, animationDuration);\r\n\r\n setLocalStorageVisibleData(result.userStats);\r\n } else if (res.unauthorized){\r\n setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n }\r\n else {\r\n setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n ).catch(error => setState({ isLoaded: true, error }));\r\n }\r\n }\r\n }, [isSpinning]);\r\n\r\n useEffect(() => {\r\n if (isDetailsVisible) {\r\n const stats = JSON.parse(UserData.getItem(userDataKeys.stats));\r\n const prevRefCount = +(stats?.[userDataKeys.stats_values.ref_count] || 0);\r\n const prevRefAmount = +(stats?.[userDataKeys.stats_values.ref_amount] || 0);\r\n const prevRef2ndGenCount = +(stats?.[userDataKeys.stats_values.ref_2nd_gen_count] || 0);\r\n const prevRef2ndGenAmount = +(stats?.[userDataKeys.stats_values.ref_2nd_gen_amount] || 0);\r\n const prevRef3rdGenCount = +(stats?.[userDataKeys.stats_values.ref_3rd_gen_count] || 0);\r\n const prevRef3rdGenAmount = +(stats?.[userDataKeys.stats_values.ref_3rd_gen_amount] || 0);\r\n const prevCompetitionValidCoins = +(stats?.[userDataKeys.stats_values.competition_valid_coins] || 0);\r\n const prevAvailableToUse = +(stats?.[userDataKeys.stats_values.available_to_use] || 0);\r\n const prevTotalCoinsEarned = +(stats?.[userDataKeys.stats_values.total_coins_earned] || 0);\r\n\r\n animateHandler(refCountRef.current, prevRefCount, refCount);\r\n animateHandler(refAmountRef.current, prevRefAmount, refAmount);\r\n animateHandler(ref2ndGenCountRef.current, prevRef2ndGenCount, ref2ndGenCount);\r\n animateHandler(ref2ndGenAmountRef.current, prevRef2ndGenAmount, ref2ndGenAmount);\r\n animateHandler(ref3rdGenCountRef.current, prevRef3rdGenCount, ref3rdGenCount);\r\n animateHandler(ref3rdGenAmountRef.current, prevRef3rdGenAmount, ref3rdGenAmount);\r\n animateHandler(competitionValidCoinsRef.current, prevCompetitionValidCoins, competitionValidCoins);\r\n animateHandler(availableToUseRef.current, prevAvailableToUse, availableToUse);\r\n animateHandler(totalCoinsEarnedRef.current, prevTotalCoinsEarned, totalCoinsEarned);\r\n\r\n setLocalStorageExpandableData({\r\n refCount,\r\n refAmount,\r\n ref2ndGenCount,\r\n ref2ndGenAmount,\r\n ref3rdGenCount,\r\n ref3rdGenAmount,\r\n competitionValidCoins,\r\n availableToUse,\r\n totalCoinsEarned,\r\n });\r\n }\r\n }, [isDetailsVisible]);\r\n\r\n const statsComponentTitle = Content.getValue(\"user_stats_title\").split(' ');\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"coins_earned_today\")}

    \r\n
    \r\n \r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.earned_today] || 0)}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"my_team_members\")}

    \r\n
    \r\n \r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.team_members] || 0)}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setIsDetailsVisible(prev => !prev)} />\r\n
    \r\n
    \r\n
    \r\n {link &&\r\n setLink('')}\r\n className='hidden-button wh-25 user-stats-button'\r\n >\r\n \r\n \r\n }\r\n

    \r\n {statsComponentTitle[0]} \r\n {statsComponentTitle[1] + ' ' + statsComponentTitle[2]}\r\n

    \r\n {isDetailsVisible ?\r\n (\r\n
    \r\n
    \r\n {Content.getValue(\"first_gen_ref\")}\r\n \r\n #\r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_count] || 0)}\r\n \r\n \r\n
    \r\n
    \r\n {Content.getValue(\"total_tc_earned\")}\r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_amount] || 0)}\r\n \r\n
    \r\n
    \r\n
    \r\n {Content.getValue(\"second_gen_ref\")}\r\n \r\n #\r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_2nd_gen_count] || 0)}\r\n \r\n \r\n
    \r\n
    \r\n {Content.getValue(\"total_tc_earned\")}\r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_2nd_gen_amount] || 0)}\r\n \r\n
    \r\n
    \r\n
    \r\n {Content.getValue(\"third_gen_ref\")}\r\n \r\n #\r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_3rd_gen_count] || 0)}\r\n \r\n \r\n
    \r\n
    \r\n {Content.getValue(\"total_tc_earned\")}\r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_3rd_gen_amount] || 0)}\r\n \r\n
    \r\n
    \r\n
    \r\n {Content.getValue(\"competition_valid_coins\") + ` (#${Formatting.formatTreatCoinAmount(position)})`}\r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.competition_valid_coins] || 0)}\r\n \r\n
    \r\n
    \r\n {Content.getValue(\"available_to_use\")}\r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.available_to_use] || 0)}\r\n \r\n
    \r\n
    \r\n {Content.getValue(\"total_tc_earned\")}\r\n \r\n {Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.total_coins_earned] || 0)}\r\n \r\n
    \r\n
    \r\n ) :\r\n (null)\r\n }\r\n
    \r\n \r\n

    \r\n {isTelegramClicked ? Content.getValue(\"user_stats_telegram_subtitle\") : Content.getValue(\"user_stats_subtitle_users\")}\r\n

    \r\n
    \r\n\r\n {!link ?\r\n <>\r\n
    \r\n {\r\n setInfo(1);\r\n }}\r\n />\r\n {Content.getValue(\"user_stats_web\")} \r\n
    \r\n
    \r\n {\r\n setInfo(2);\r\n }}\r\n />\r\n {Content.getValue(\"user_stats_telegram\")} \r\n
    \r\n \r\n :\r\n <>\r\n \r\n \r\n {Content.getValue(\"user_stats_share_link\")}\r\n
    \r\n

    {Content.getValue(\"or_label\")}

    \r\n \r\n \r\n {Content.getValue(\"user_stats_copy_link\")}\r\n
    \r\n \r\n\r\n }\r\n\r\n {isCopied ?

    {Content.getValue(\"copied_to_clipboard\")}

    : null}\r\n
    \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport default memo(UserStats);","import React, { useEffect, useState } from 'react';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n//const backendURLs = Backend.backendURLs;\r\n//const hotOfferURL = backendURLs.hotOfferUrl;\r\nconst secondToMillisecond = 1000;\r\n\r\nexport default function Tabs({ activeTab, setActiveTab, setOffers, hotOffers, surveyOffers, setSurveyOffers, dailyEarningPlanLength }) {\r\n const [showHotOfferTab, setShowHotOfferTab] = useState(false);\r\n const [showSurveysTab, setShowSurveysTab] = useState(false);\r\n\r\n useEffect(() => {\r\n\r\n if (ApiFacade.isLoggedIn()) {\r\n const platform = Platform.getPlatformName();\r\n const req = ApiFacade.hotOffers(platform);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n const offers = result.hotOffers.filter(item => item.expireTime * secondToMillisecond > Date.now() && !item.IsSurvey);\r\n UserData.setItem(userDataKeys.has_hot_offers, offers?.length > 0);\r\n\r\n const surveyOffers =result.hotOffers?.filter((hotOffer) => hotOffer.IsSurvey);\r\n if(surveyOffers?.length){\r\n setSurveyOffers(surveyOffers);\r\n setShowSurveysTab(true);\r\n }\r\n\r\n if (offers?.length > 0) {\r\n setOffers(offers);\r\n setShowHotOfferTab(true);\r\n }\r\n } else {\r\n return null;\r\n }\r\n } ).catch(error => null);\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n setActiveTab(1)}\r\n >\r\n \r\n

    {Content.getValue(\"daily_earning_plan\")} ({dailyEarningPlanLength})

    \r\n
    \r\n {\r\n \r\n showHotOfferTab ?\r\n (\r\n setActiveTab(2)}>\r\n \r\n

    {Content.getValue(\"hot_offer_text\")} ({hotOffers.length})

    \r\n \r\n ) :\r\n (null)\r\n }\r\n {\r\n showSurveysTab ?\r\n (\r\n setActiveTab(3)}>\r\n \r\n

    {Content.getValue(\"surveys\")} ({surveyOffers.length})

    \r\n \r\n ) :\r\n (null)\r\n }\r\n \r\n );\r\n}","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Offers from 'utils/Offers.js';\r\nimport OfferDifficultyIndicator from 'components/offers/Offer_Difficulty_Indicator.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\nimport BlurProvider from 'components/offer_providers/Blur_Provider.js';\r\nimport OfferThemeIndicator from 'components/offers/Offer_Theme_Indicator.js';\r\nimport { RedirectWithLang } from 'utils/RedirectWithLang.js';\r\nimport { useContext } from 'react';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\n\r\nexport default function DailyEarningList({ offers, isBlurred }) {\r\n const allOffers = !isBlurred ? Offers.getBlurredOfferData(offers) : offers;\r\n const { handleOfferIsOpened } = useContext(OfferPopupContext);\r\n return (\r\n (allOffers?.length > 0) ? (\r\n <>\r\n
    \r\n
    \r\n
    \r\n { \r\n isBlurred ?\r\n (\r\n <>\r\n
    \r\n

    \r\n { \r\n (offers.length === 1) ? \r\n Content.getValue(\"daily_earning_plan_offer_unavailable_text\") :\r\n Content.getValue(\"daily_earning_plan_offers_unavailable_text\") \r\n }\r\n

    \r\n \r\n
    \r\n\r\n {offers.map(function (offer, idx) {\r\n return (\r\n
    \r\n {\r\n !offer.isDailyAvailable || (offer.isDailyAvailable && offer.isCompletedToday && offer.isUnlimited) ?\r\n \"Icon\" :\r\n offer.isDailyAvailable && !offer.isCompletedToday ?\r\n \"Icon\" :\r\n offer.isDailyAvailable && offer.isCompletedToday && !offer.isUnlimited ?\r\n \"Icon\" :\r\n (null)\r\n }\r\n\r\n {/* { idx!==0 ? \r\n \"Line\" :\r\n null }\r\n { idx!==offers.length-1 ? \r\n \"Line\" :\r\n null } */}\r\n\r\n
    { handleOfferIsOpened({ offer }); }}>\r\n \r\n {offer.description}\r\n \r\n
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>{offer.MainTitle}
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>\r\n \r\n
    \r\n
    \r\n )\r\n }\r\n )}\r\n \r\n ) :\r\n allOffers.map((item, idx) => (item.length===1) ?\r\n (\r\n \r\n
    \r\n {\r\n !item.offers[0].isDailyAvailable || (item.offers[0].isDailyAvailable && item.offers[0].isCompletedToday && item.offers[0].isUnlimited) ?\r\n \"Icon\" :\r\n item.offers[0].isDailyAvailable && !item.offers[0].isCompletedToday ?\r\n \"Icon\" :\r\n item.offers[0].isDailyAvailable && item.offers[0].isCompletedToday && !item.offers[0].isUnlimited ?\r\n \"Icon\" :\r\n (null)\r\n }\r\n\r\n {/* { idx!==0 ? \r\n \"Line\" :\r\n null }\r\n { idx!==offers.length-1 ? \r\n \"Line\" :\r\n null } */}\r\n\r\n
    { handleOfferIsOpened({ offer: item.offers[0] }); }}>\r\n \r\n {item.offers[0].description}\r\n \r\n
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer: item.offers[0] }); }}>{item.offers[0].MainTitle}
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer: item.offers[0] }); }}>\r\n \r\n
    \r\n
    \r\n
    \r\n ) :\r\n (item.length>1) ?\r\n (\r\n \r\n {item.offers.map(offer => (\r\n
    \r\n {\r\n !offer.isDailyAvailable || (offer.isDailyAvailable && offer.isCompletedToday && offer.isUnlimited) ?\r\n \"Icon\" :\r\n offer.isDailyAvailable && !offer.isCompletedToday ?\r\n \"Icon\" :\r\n offer.isDailyAvailable && offer.isCompletedToday && !offer.isUnlimited ?\r\n \"Icon\" :\r\n (null)\r\n }\r\n \r\n {/* { idx!==0 ? \r\n \"Line\" :\r\n null }\r\n { idx!==offers.length-1 ? \r\n \"Line\" :\r\n null } */}\r\n \r\n
    { handleOfferIsOpened({ offer }); }}>\r\n \r\n {offer.description}\r\n \r\n
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>{offer.MainTitle}
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>\r\n \r\n
    \r\n
    \r\n ))}\r\n
    \r\n ) :\r\n (\r\n
    \r\n {\r\n !item.offers[0].isDailyAvailable || (item.offers[0].isDailyAvailable && item.offers[0].isCompletedToday && item.offers[0].isUnlimited) ?\r\n \"Icon\" :\r\n item.offers[0].isDailyAvailable && !item.offers[0].isCompletedToday ?\r\n \"Icon\" :\r\n item.offers[0].isDailyAvailable && item.offers[0].isCompletedToday && !item.offers[0].isUnlimited ?\r\n \"Icon\" :\r\n (null)\r\n }\r\n\r\n {/* { idx!==0 ? \r\n \"Line\" :\r\n null }\r\n { idx!==offers.length-1 ? \r\n \"Line\" :\r\n null } */}\r\n\r\n
    { handleOfferIsOpened({ offer: item.offers[0] }); }}>\r\n \r\n {item.offers[0].description}\r\n \r\n
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer: item.offers[0] }); }}>{item.offers[0].MainTitle}
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer: item.offers[0] }); }}>\r\n \r\n
    \r\n
    \r\n )\r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n ) : \r\n (\r\n null\r\n )\r\n )\r\n}\r\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopedSlidesLimit', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import Swiper from 'swiper';\nexport const calcLoopedSlides = (slides, swiperParams) => {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n};","import React from 'react';\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\n};","function _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); }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from '../components-shared/get-params.js';\nimport { mountSwiper } from '../components-shared/mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from '../components-shared/utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from '../components-shared/get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from '../components-shared/update-swiper.js';\nimport { renderVirtual } from './virtual.js';\nimport { updateOnVirtualData } from '../components-shared/update-on-virtual-data.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new SwiperCore(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj = {}, splitEvents = true) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","export const updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};","import React from 'react';\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual };","import React from 'react';\nimport { calcLoopedSlides } from '../shared/calc-looped-slides.js';\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n\n for (let i = 0; i < loopedSlides; i += 1) {\n const index = i - Math.floor(i / modifiedSlides.length) * modifiedSlides.length;\n appendSlides.push(duplicateSlide(modifiedSlides[index], i, 'append'));\n prependSlides.unshift(duplicateSlide(modifiedSlides[modifiedSlides.length - index - 1], i, 'prepend'));\n }\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","function _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); }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from '../components-shared/utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren()));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","import React from 'react';\r\nimport Content from 'utils/Content';\r\nimport Images from 'utils/Images';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\n\r\nconst DailyEarningPlanHint = () => {\r\n const desc = Content.getValue('user_stats_daily_hint_desc').split('$');\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n \r\n return (\r\n
    \r\n

    {Content.getValue('user_stats_daily_hint_heading')}

    \r\n

    \r\n {desc[0]}\r\n ${desc[1]}\r\n

    \r\n { redirectWithLangFunc(menuOptions.faq.url); }}\r\n className='daily-earnings-plan-hint_btn'>\r\n {Content.getValue('user_stats_daily_hint_btn')}\r\n \r\n \"Bubble\"\r\n \"Bubble\"\r\n
    \r\n );\r\n};\r\n\r\nexport default DailyEarningPlanHint;","import React, { useState } from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Content from 'utils/Content.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport DailyEarningList from 'components/offers/Daily_Earning_List.js';\r\nimport { SwiperSlide, Swiper } from 'swiper/react';\r\nimport DailyEarningPlanHint from 'components/one_two_treat_area/user_stats/Daily_Earning_Plan_Hint'\r\nimport 'swiper/css';\r\n\r\nexport default function DailyEarningPlan({ offers, isLoaded }) {\r\n const [isInfoVisible, setIsInfoVisible] = useState(false);\r\n const [activeindex, setActiveIndex] = useState(0);\r\n const dayName = new Date().toLocaleDateString('en-Gb', { weekday: 'short' }); \r\n const date = new Intl.DateTimeFormat('en-US', {\r\n month:'2-digit',\r\n day:'2-digit', \r\n year:'2-digit'\r\n }).format(new Date());\r\n\r\n const carouselData = offers && Object.keys(offers);\r\n const allOffers = offers?.[carouselData?.[activeindex]];\r\n\r\n const handleSlideChange = (data) => {\r\n setActiveIndex(data.realIndex);\r\n }\r\n\r\n const availableDailyOffers = allOffers?.filter(item => item.isDailyAvailable || item.isCompletedToday);\r\n const unavailableDailyOffers = allOffers?.filter(item => !item.isDailyAvailable && !item.isCompletedToday);\r\n if (isLoaded) {\r\n return (\r\n
    \r\n {availableDailyOffers?.length > 0 ?\r\n <>\r\n
    \r\n Daily earning plan info setIsInfoVisible(prev => !prev)}\r\n /> \r\n {\r\n isInfoVisible ?\r\n (\r\n
    \r\n { Content.getValue(\"daily_earning_plan_info_text\") }\r\n
    \r\n ) : \r\n ( null )\r\n }\r\n
    \r\n
    \r\n {\r\n carouselData?.length>0 ?\r\n (\r\n 1}\r\n updateOnWindowResize\r\n loop\r\n grabCursor\r\n spaceBetween={10}\r\n centerInsufficientSlides\r\n centeredSlides\r\n centeredSlidesBounds\r\n slidesPerView={carouselData.length}\r\n initialSlide={activeindex}\r\n slideToClickedSlide={true}\r\n onSlideChange={handleSlideChange} \r\n className='daily-swiper desktop one-two-treat-area'\r\n >\r\n {\r\n carouselData.length > 1 ?\r\n carouselData.map(\r\n function (data) {\r\n return \r\n
    \r\n {Formatting.format(Content.getValue(\"earning_plan_name\"), [\"(amount)\"], [data])}\r\n
    \r\n
    \r\n }\r\n )\r\n :\r\n \r\n
    \r\n {Formatting.format(Content.getValue(\"earning_plan_name\"), [\"(amount)\"], [carouselData])}\r\n
    \r\n
    \r\n }\r\n \r\n ) :\r\n null\r\n }\r\n
    \r\n
    \r\n

    { dayName }, { date }

    \r\n \r\n {\r\n availableDailyOffers?.length > 0 ?\r\n :\r\n null\r\n }\r\n
    \r\n \r\n :\r\n \r\n }\r\n\r\n
    \r\n );\r\n } else {\r\n return

    {Content.getValue('loading_message')}

    ;\r\n }\r\n}","import { useState, useEffect } from \"react\";\r\n\r\nconst SECOND = 1000;\r\nconst MINUTE = SECOND * 60;\r\nconst HOUR = MINUTE * 60;\r\nconst DAY = HOUR * 24;\r\n\r\nconst now = new Date();\r\nconst utcDate = Date.UTC(now.getUTCFullYear(), \r\n now.getUTCMonth(), \r\n now.getUTCDate(), \r\n now.getUTCHours(), \r\n now.getUTCMinutes(),\r\n now.getUTCSeconds(),\r\n now.getUTCMilliseconds());\r\n\r\nexport default function useTimer(deadline, interval = SECOND) {\r\n const [timespan, setTimespan] = useState(new Date(deadline) - new Date(utcDate));\r\n\r\n const days = Math.floor((timespan / DAY));\r\n const hours = Math.floor((timespan / HOUR) % 60);\r\n const minutes = Math.floor((timespan / MINUTE) % 60);\r\n const seconds = Math.floor((timespan / SECOND) % 60);\r\n useEffect(() => {\r\n let intervalId;\r\n if (hours + minutes + seconds > 0) {\r\n intervalId = setInterval(() => {\r\n setTimespan(_timespan => _timespan - interval);\r\n }, interval);\r\n }\r\n\r\n return () => {\r\n clearInterval(intervalId);\r\n };\r\n }, [hours, interval, minutes, seconds]);\r\n\r\n useEffect(() => {\r\n setTimespan(new Date(deadline) - Date.now());\r\n }, [deadline]);\r\n\r\n return {\r\n days,\r\n hours,\r\n minutes,\r\n seconds,\r\n };\r\n}","import React, { useEffect, useState } from 'react';\r\nimport OfferDifficultyIndicator from 'components/offers/Offer_Difficulty_Indicator.js';\r\nimport 'swiper/css';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport useTimer from 'utils/hooks/useTimer.js';\r\nimport Images from 'utils/Images.js';\r\nimport Offers from 'utils/Offers.js';\r\n\r\nimport BlurProvider from 'components/offer_providers/Blur_Provider.js';\r\nimport OfferThemeIndicator from 'components/offers/Offer_Theme_Indicator.js'\r\nimport ExpandableHashtags from 'components/offers/Expandable_Hashtags.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\nimport { useContext } from 'react';\r\nconst secondToMillisecond = 1000;\r\n\r\nconst HotOffer = ({\r\n offers,\r\n isFirstTime,\r\n setIsFirstTime\r\n}) => {\r\n const [state, setState] = useState({\r\n time: null,\r\n limited: false,\r\n });\r\n const [activeindex, setActiveIndex] = useState(0);\r\n const { handleOfferIsOpened } = useContext(OfferPopupContext);\r\n\r\n const padTo2Digits = (num) => {\r\n return num.toString().padStart(2, '0');\r\n }\r\n\r\n const handleSlideChange = (data) => setActiveIndex(data.realIndex);\r\n\r\n const ordinalSuffixOf = (i) => {\r\n const j = i % 10,\r\n k = i % 100;\r\n if (j === 1 && k !== 11) {\r\n return i + \"st\";\r\n }\r\n if (j === 2 && k !== 12) {\r\n return i + \"nd\";\r\n }\r\n if (j === 3 && k !== 13) {\r\n return i + \"rd\";\r\n }\r\n return i + \"th\";\r\n }\r\n\r\n const offer = offers[activeindex];\r\n const { hours, minutes, seconds } = useTimer(offer?.expireTime * secondToMillisecond);\r\n\r\n useEffect(() => {\r\n const isLimited = hours<=0 && minutes<=0 && seconds<=0;\r\n if (isLimited) {\r\n setState(prev => ({\r\n ...prev,\r\n limited: true\r\n }));\r\n return;\r\n }\r\n const time = (hours !== 0) ?\r\n (padTo2Digits(hours) + ':' + padTo2Digits(minutes) + ':' + padTo2Digits(seconds)) :\r\n (padTo2Digits(minutes) + ':' + padTo2Digits(seconds));\r\n setState(prev => ({\r\n ...prev,\r\n time\r\n }))\r\n if (time && !isFirstTime) setIsFirstTime(true);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [seconds]);\r\n\r\n const offerElement = (\r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>\r\n \r\n {offer?.description}\r\n \r\n
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>{offer?.appName}
    \r\n
    { handleOfferIsOpened({ offer }); }}>{offer?.MainTitle}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n\r\n return (\r\n <>\r\n {\r\n (!state.limited && isFirstTime) ?\r\n (\r\n
    \r\n
    \r\n
    \r\n {\r\n offers?.length>0 ?\r\n \r\n {\r\n offers.map((item, idx) => (\r\n \r\n
    \r\n
    \r\n { idx===0 ? 'Most recent' : ordinalSuffixOf(idx+1) + ' most recent' }\r\n
    \r\n
    \r\n

    {Content.getValue(\"hot_offer_time\")}

    \r\n

    {Content.getValue(\"hot_offer_award\")}

    \r\n

    \r\n \"Hot\r\n \r\n { state.time }\r\n \r\n

    \r\n
    \r\n
    \r\n
    \r\n ))\r\n }\r\n :\r\n null\r\n }\r\n
    \r\n
    \r\n\r\n {\r\n !offer.isAvailable ?\r\n (\r\n \r\n { offerElement }\r\n \r\n ) :\r\n offerElement\r\n }\r\n
    \r\n ) :\r\n null\r\n }\r\n \r\n );\r\n}\r\n\r\nexport default HotOffer;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport Offers from 'utils/Offers.js';\r\nimport UserStats from 'components/one_two_treat_area/User_Stats.js';\r\nimport UserData from 'User_Data.js';\r\nimport Tabs from 'components/one_two_treat_area/Tabs.js';\r\nimport OneTwoTreatSelection from './One_Two_Treat_Selection.js';\r\n\r\nlet thisComponent;\r\nconst swiperDiv = React.createRef();\r\nconst imgRef = React.createRef();\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass OneTwoTreatAlert extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.touchCoords = 0;\r\n this.state = {\r\n isLoaded: false,\r\n isSpinnerVisible: false,\r\n activeTab: 1,\r\n hotOffers: null,\r\n telegramReferralLink: null,\r\n webReferralLink: null,\r\n dailyEarningPlanLength: null,\r\n surveyOffers: null,\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n static openPopup = () => {\r\n return (\r\n dispatchEvent(new CustomEvent('openModal', { \r\n detail: {\r\n open: true\r\n }\r\n }))\r\n )}\r\n\r\n static closePopup = () => {\r\n dispatchEvent(new CustomEvent('openModal', { detail: false }));\r\n window.isOpen = false;\r\n }\r\n\r\n componentDidMount() {\r\n document.body.style.overflow = 'hidden';\r\n let resultHotOffers = [];\r\n thisComponent.hotOffers?.forEach((hotOffer) => {\r\n if (!hotOffer.IsSurvey) {\r\n resultHotOffers.push(hotOffer);\r\n }\r\n });\r\n thisComponent.setState(prev => ({ ...prev, surveyOffers: resultHotOffers }));\r\n swiperDiv.current.addEventListener(\"touchstart\", this.handleStart.bind(this), false);\r\n swiperDiv.current.addEventListener(\"touchmove\", this.handleMove.bind(this), false);\r\n swiperDiv.current.addEventListener(\"touchend\", this.handleEnd.bind(this), false);\r\n\r\n const oldHomePageContainer = document.querySelector('.intro-container');\r\n const homePageContainer = document.querySelector('#home-second-section');\r\n const buttonDivElem = document.getElementById('one-two-treat-button');\r\n const buttonElem = buttonDivElem.querySelector('#one-two-treat-button-btn');\r\n const referComponent = document.getElementById('stats-component');\r\n const observer = new IntersectionObserver(() => {\r\n const e = document.getElementById('stats-component');\r\n const purpleLogoSrc = Images.imageURL('one-two-treat-icon-purple.png');\r\n if (!e) {\r\n buttonElem.src = purpleLogoSrc; \r\n if (homePageContainer || oldHomePageContainer) {\r\n buttonDivElem.style.display = 'none';\r\n }\r\n }\r\n }, {\r\n root: window.document,\r\n })\r\n observer.observe(referComponent);\r\n\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null) {\r\n thisComponent.setState(prev => ({\r\n ...prev,\r\n isLoaded: true,\r\n telegramReferralLink: UserData.getItem(userDataKeys.telegram_referral_link),\r\n webReferralLink: UserData.getItem(userDataKeys.website_referral_link)\r\n }));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n document.body.style.overflow = 'visible';\r\n swiperDiv.current.removeEventListener(\"touchstart\", this.handleStart.bind(this), false);\r\n swiperDiv.current.removeEventListener(\"touchmove\", this.handleMove.bind(this), false);\r\n swiperDiv.current.removeEventListener(\"touchend\", this.handleEnd.bind(this), false);\r\n }\r\n\r\n static sectionClickHandler = (evt) => {\r\n if (evt.target.id === 'one-two-treat-button' || evt.target.id === 'one-two-treat-button-btn') {\r\n evt.stopPropagation();\r\n if (!window.isOpen) {\r\n OneTwoTreatIcon.openDialog(true);\r\n }\r\n else {\r\n OneTwoTreatIcon.openDialog(false);\r\n } \r\n return;\r\n }\r\n if (window.isOpen) OneTwoTreatAlert.closePopup();\r\n };\r\n\r\n static setDailyEarningPlanLength = (dailyEarningPlanLength) => {\r\n thisComponent.setState(prev => ({\r\n ...prev,\r\n dailyEarningPlanLength\r\n }));\r\n }\r\n\r\n static showOneTwoTreatAlert(telegramReferralLink, webReferralLink, isPopupOpen) {\r\n const buttonDivElem = document.getElementById('one-two-treat-button');\r\n const buttonElem = buttonDivElem.querySelector('#one-two-treat-button-btn');\r\n const whiteLogoSrc = Images.imageURL('one-two-treat-icon-white.png');\r\n const purpleLogoSrc = Images.imageURL('one-two-treat-icon-purple.png');\r\n window.isOpen = true;\r\n if (isPopupOpen) {\r\n OneTwoTreatAlert.openPopup(telegramReferralLink, webReferralLink);\r\n buttonDivElem.style.display = 'inline-block';\r\n buttonElem.src = whiteLogoSrc;\r\n }\r\n else {\r\n OneTwoTreatAlert.closePopup();\r\n Offers.hideOfferDetails();\r\n buttonElem.src = purpleLogoSrc;\r\n }\r\n }\r\n\r\n handleStart(e) {\r\n this.touchCoords = e.touches[0].clientY;\r\n }\r\n\r\n handleMove(e) {\r\n const { isSpinnerVisible } = this.state;\r\n if (!isSpinnerVisible) {\r\n const swipeEndCoords = e.changedTouches[0].clientY;\r\n if (this.touchCoords < swipeEndCoords) {\r\n this.setState(prev => ({\r\n ...prev,\r\n isSpinnerVisible: true,\r\n }))\r\n const anim = swiperDiv.current.animate([\r\n { marginTop: '0px' },\r\n { marginTop: '30px' }\r\n ], {\r\n fill: 'forwards',\r\n duration: 100,\r\n iterations: 1\r\n });\r\n anim.onfinish = () => imgRef.current.style.display = 'block';\r\n }\r\n }\r\n }\r\n\r\n handleEnd() {\r\n if (this.state.isSpinnerVisible) {\r\n this.setState(prev => ({\r\n ...prev,\r\n isSpinnerVisible: false\r\n }))\r\n const anim = swiperDiv.current.animate([\r\n { marginTop: '30px' },\r\n { marginTop: '0px' }\r\n ], {\r\n fill: 'forwards',\r\n duration: 100,\r\n iterations: 1\r\n });\r\n anim.onfinish = () => imgRef.current.style.display = 'none';\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n webReferralLink,\r\n telegramReferralLink,\r\n isSpinnerVisible,\r\n isDailyActive,\r\n hotOffers,\r\n surveyOffers,\r\n dailyEarningPlanLength,\r\n activeTab\r\n } = thisComponent.state;\r\n const badge = document.getElementById('hot-offer-absolute');\r\n if (badge) badge.style.display = 'none';\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n Loading... \r\n \r\n
    \r\n thisComponent.setState(prev => ({ ...prev, activeTab: value }))}\r\n hotOffers={hotOffers}\r\n surveyOffers={surveyOffers}\r\n dailyEarningPlanLength={dailyEarningPlanLength}\r\n setOffers={(hotOffers) => thisComponent.setState(prev => ({ ...prev, hotOffers }))}\r\n setSurveyOffers={(surveyOffers) => thisComponent.setState(prev => ({ ...prev, surveyOffers }))}\r\n />\r\n {\r\n thisComponent.setState(prev => ({ ...prev, dailyEarningPlanLength }))\r\n }}\r\n activeTab={activeTab} \r\n isSpinning={!isSpinnerVisible}\r\n hotOffers={hotOffers} \r\n surveyOffers={surveyOffers}\r\n />\r\n
    \r\n {\r\n isDailyActive ?\r\n Polygon :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default OneTwoTreatAlert;","import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\r\nimport OfferDifficultyIndicator from 'components/offers/Offer_Difficulty_Indicator.js';\r\nimport OfferThemeIndicator from 'components/offers/Offer_Theme_Indicator.js';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\nimport { useContext } from 'react';\r\nimport Content from 'utils/Content.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Images from 'utils/Images.js';\r\n\r\nconst Survey = ({ item }) => {\r\n const { handleOfferIsOpened } = useContext(OfferPopupContext);\r\n return (\r\n \r\n {\r\n !item.isDailyAvailable || (item.isDailyAvailable && item.isCompletedToday && item.isUnlimited) ?\r\n \"Icon\" :\r\n item.isDailyAvailable && !item.isCompletedToday ?\r\n \"Icon\" :\r\n item.isDailyAvailable && item.isCompletedToday && !item.isUnlimited ?\r\n \"Icon\" :\r\n (null)\r\n }\r\n\r\n {/* { idx!==0 ? \r\n \"Line\" :\r\n null }\r\n { idx!==offers.length-1 ? \r\n \"Line\" :\r\n null } */}\r\n\r\n
    { handleOfferIsOpened({offer: item}); }}>\r\n \r\n {item.description}\r\n \r\n
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({offer: item}); }}>{item.MainTitle}
    \r\n
    \r\n
    \r\n { handleOfferIsOpened({offer: item}); }}>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Survey;","import React from 'react';\r\nimport Survey from 'components/one_two_treat_area/survey/Survey';\r\n\r\nconst Surveys = ({ surveyOffers }) => {\r\n return (\r\n
    \r\n {surveyOffers?.map(item => )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Surveys;","import React, { useEffect, useState } from 'react';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport DailyEarningPlan from 'components/offers/Daily_Earning_Plan.js';\r\nimport HotOffer from 'components/offers/Hot_Offer.js';\r\nimport Surveys from 'components/one_two_treat_area/Surveys';\r\nimport Platform from 'utils/Platform.js';\r\n//import UserData from 'User_Data.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst incompleteOfferModes = configuration.incomplete_offer_modes;\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n\r\n//const dailyEarningPlansURL = backendURLs.dailyEarningPlansURL;\r\nconst platform = Platform.getPlatformName();\r\n\r\nexport default function OneTwoTreatSelection({ setDailyEarningPlanLength, activeTab, isSpinning, hotOffers, surveyOffers }) {\r\n const [state, setState] = useState({\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n offers: null\r\n });\r\n\r\n const [isFirstTime, setIsFirstTime] = useState(false);\r\n\r\n useEffect(() => {\r\n\r\n if (ApiFacade.isLoggedIn()) {\r\n const req = ApiFacade.dailyEarningPlans(platform);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n let dailyEarningPlansResult = result.dailyEarningPlans;\r\n let dailyEarningPlanOfferNumber =\r\n (dailyEarningPlansResult[\"$1\"] ? dailyEarningPlansResult[\"$1\"].length : 0) +\r\n (dailyEarningPlansResult[\"$2\"] ? dailyEarningPlansResult[\"$2\"].length : 0) +\r\n (dailyEarningPlansResult[\"$3\"] ? dailyEarningPlansResult[\"$3\"].length : 0);\r\n\r\n setDailyEarningPlanLength(dailyEarningPlanOfferNumber); \r\n\r\n setState(prev => ({\r\n ...prev,\r\n isLoaded: true,\r\n offers: dailyEarningPlansResult,\r\n }));\r\n } else if (res.unauthorized){\r\n setState(prev => ({\r\n ...prev,\r\n isLoaded: true,\r\n isRestricted: true\r\n }));\r\n } else {\r\n setState(prev => ({\r\n ...prev,\r\n isLoaded: true,\r\n error: res.error\r\n }));\r\n } \r\n },\r\n (error) => {\r\n setState(prev => ({\r\n ...prev,\r\n isLoaded: true,\r\n error\r\n }));\r\n }\r\n );\r\n }\r\n }, []);\r\n\r\n const offers = state.offers;\r\n if (activeTab === 1) {\r\n return ;\r\n } else if (activeTab === 2) {\r\n return ;\r\n } else if (activeTab === 3) {\r\n return ;\r\n }\r\n\r\n}\r\n","import React, { createContext, useState } from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst SpinnerContext = createContext();\r\n\r\nconst SpinnerContextProvider = ({ children }) => {\r\n const defaultSpinnerText = Content.getValue('loading_message')\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [spinnerText, setSpinnerText] = useState(defaultSpinnerText)\r\n\r\n const updateIsVisibleSpinner = ({ isVisible = true, contentKey}) => {\r\n setIsVisible(isVisible);\r\n setSpinnerText(Content.getValue(contentKey))\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { SpinnerContext, SpinnerContextProvider };","function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { cloneElement, createElement, useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Route, Switch, matchPath, useLocation } from 'react-router-dom';\nimport TransitionMotion from 'react-motion/lib/TransitionMotion';\nimport spring from 'react-motion/lib/spring'; // Helpers\n\nfunction ensureSpring(styles) {\n var obj = {};\n\n for (var key in styles) {\n var value = styles[key];\n\n if (typeof value === 'number') {\n obj[key] = spring(value);\n } else {\n obj[key] = value;\n }\n }\n\n return obj;\n}\n\nfunction identity(v) {\n return v;\n}\n\nfunction noop() {} // Components\n\n\nfunction RouteTransition(_ref) {\n var children = _ref.children,\n className = _ref.className,\n atEnter = _ref.atEnter,\n atActive = _ref.atActive,\n atLeave = _ref.atLeave,\n _ref$wrapperComponent = _ref.wrapperComponent,\n wrapperComponent = _ref$wrapperComponent === void 0 ? 'div' : _ref$wrapperComponent,\n _ref$didLeave = _ref.didLeave,\n didLeave = _ref$didLeave === void 0 ? noop : _ref$didLeave,\n _ref$mapStyles = _ref.mapStyles,\n mapStyles = _ref$mapStyles === void 0 ? identity : _ref$mapStyles,\n _ref$runOnMount = _ref.runOnMount,\n runOnMount = _ref$runOnMount === void 0 ? false : _ref$runOnMount;\n var defaultStyles = runOnMount === false ? null : children == undefined ? [] : [{\n key: children.key,\n data: children,\n style: atEnter\n }];\n var styles = children == undefined ? [] : [{\n key: children.key,\n data: children,\n style: ensureSpring(atActive)\n }];\n return React.createElement(TransitionMotion, {\n defaultStyles: defaultStyles,\n styles: styles,\n willEnter: function willEnter() {\n return atEnter;\n },\n willLeave: function willLeave() {\n return ensureSpring(atLeave);\n },\n didLeave: didLeave\n }, function (interpolatedStyles) {\n return React.createElement(\"div\", {\n className: className\n }, interpolatedStyles.map(function (config) {\n var props = {\n style: mapStyles(config.style),\n key: config.key\n };\n return wrapperComponent !== false ? createElement(wrapperComponent, props, config.data) : cloneElement(config.data, props);\n }));\n });\n}\n\nRouteTransition.propTypes = {\n className: PropTypes.string,\n wrapperComponent: PropTypes.oneOfType([PropTypes.bool, PropTypes.element, PropTypes.string, PropTypes.func]),\n atEnter: PropTypes.object.isRequired,\n atActive: PropTypes.object.isRequired,\n atLeave: PropTypes.object.isRequired,\n didLeave: PropTypes.func,\n mapStyles: PropTypes.func,\n runOnMount: PropTypes.bool\n}; // AnimatedRoute\n// The key-getter for RouteTransition. It's either on or off.\n\nfunction getKey(_ref2, path, exact) {\n var pathname = _ref2.pathname;\n return matchPath(pathname, {\n exact: exact,\n path: path\n }) ? 'match' : 'no-match';\n}\n\nfunction AnimatedRoute(_ref3) {\n var render = _ref3.render,\n component = _ref3.component,\n path = _ref3.path,\n exact = _ref3.exact,\n strict = _ref3.strict,\n sensitive = _ref3.sensitive,\n children = _ref3.children,\n routeTransitionProps = _objectWithoutProperties(_ref3, [\"render\", \"component\", \"path\", \"exact\", \"strict\", \"sensitive\", \"children\"]);\n\n var location = useLocation();\n return React.createElement(RouteTransition, routeTransitionProps, React.createElement(Route, {\n key: getKey(location, path, exact),\n path: path,\n exact: exact,\n strict: strict,\n sensitive: sensitive,\n location: location,\n component: component,\n render: render,\n children: children\n }));\n} // AnimatedSwitch\n\n\nvar NO_MATCH = {\n key: 'no-match'\n}; // Not every location object has a `key` property (e.g. HashHistory).\n\nfunction getLocationKey(location) {\n return typeof location.key === 'string' ? location.key : '';\n} // Some superfluous work, but something we need to do in order\n// to persist matches/allow for nesting/etc.\n\n\nfunction getMatchedRoute(children, _ref4) {\n var pathname = _ref4.pathname;\n var childrenArray = React.Children.toArray(children);\n\n for (var i = 0; i < childrenArray.length; i++) {\n var child = childrenArray[i];\n var matches = matchPath(pathname, {\n exact: child.props.exact,\n path: child.props.path\n });\n\n if (matches) {\n return child;\n }\n }\n\n return NO_MATCH;\n}\n\nvar counter = 0;\n\nfunction AnimatedSwitch(_ref5) {\n var children = _ref5.children,\n routeTransitionProps = _objectWithoutProperties(_ref5, [\"children\"]);\n\n var location = useLocation();\n var match = useRef(null);\n var key = useRef(null);\n var nextMatch = getMatchedRoute(children, location);\n\n if (match.current === null) {\n // Persist a reference to the most recent match\n match.current = nextMatch;\n key.current = getLocationKey(location);\n } else if (match.current.key !== nextMatch.key) {\n // Update the key given to Switch anytime the matched route changes\n match.current = nextMatch;\n key.current = getLocationKey(location) + ++counter;\n }\n\n return React.createElement(RouteTransition, routeTransitionProps, React.createElement(Switch, {\n key: key.current,\n location: location\n }, children));\n}\n\nexport { ensureSpring, spring, RouteTransition, AnimatedRoute, AnimatedSwitch };","import React from 'react';\r\nimport Images from 'utils/Images';\r\nimport Content from 'utils/Content.js';\r\nimport { RedirectWithLang, redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport UserData from 'User_Data.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass ContentPageLogo extends React.Component {\r\n\r\n render() {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const homeOption = menuOptions.home;\r\n return <>\r\n \r\n redirectWithLangFunc(homeOption.url)} src={Images.imageURL(`treat-coin-logo-beta${UserData.getItem(userDataKeys.jwt_token)?\"-new\":\"\"}.png`)} width=\"184\" height=\"49\" alt=\"Home\" className={`content-page-logo${UserData.getItem(userDataKeys.jwt_token)?\" new\":\"\"}`} />\r\n \r\n ;\r\n\r\n }\r\n\r\n}\r\n\r\nexport default ContentPageLogo;","import Backend from 'Backend.js';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Images from 'utils/Images.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nclass Logout {\r\n\r\n static showLogoutPopup() {\r\n let swalHTML = '
    ';\r\n swalHTML += '

    ' + Content.getValue(\"are_you_sure_title\") + '

    ';\r\n swalHTML += '

    ' + Content.getValue(\"log_out_description\") + '

    ';\r\n swalHTML += '
    ';\r\n\r\n MySwal.fire({\r\n html: swalHTML,\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: true,\r\n confirmButtonText: Content.getValue(\"log_out_button_text\"),\r\n cancelButtonText: Content.getValue(\"cancel_button_text\"),\r\n customClass: {\r\n popup: 'padding-top-30',\r\n confirmButton: 'standard-confirm-button',\r\n cancelButton: 'underlined-cancel-button margin-top-0',\r\n actions: 'flex-column',\r\n }\r\n })\r\n .then(res => res.isConfirmed && Backend.logOut());\r\n }\r\n\r\n}\r\n\r\nexport default Logout;","import Logout from 'utils/Logout.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { RedirectWithLang } from \"utils/RedirectWithLang.js\";\r\nimport Joining from \"utils/Joining\";\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst emailSignupModes = configuration.email_signup_modes;\r\n\r\nconst LoginLogoutButton = ({ isStyled, fromMainMenu, clickHandler }) => {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const loginOption = menuOptions.login;\r\n\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null) {\r\n return <>\r\n \r\n ;\r\n }\r\n else {\r\n if (isStyled) {\r\n const emailSignup = UserData.getItem(userDataKeys.email_signup);\r\n if (emailSignup !== emailSignupModes.direct &&\r\n emailSignup !== emailSignupModes.join_button) {\r\n return (\r\n <>\r\n {\r\n Mixpanel.trackByEvent(event);\r\n Joining.showPopup();\r\n }}\r\n >\r\n {Content.getValue(\"login_button_text_1\")}
    \r\n {Content.getValue(\"login_button_text_2\")}
    \r\n {Content.getValue(\"login_button_text_3\")}\r\n \r\n \r\n );\r\n }\r\n else {\r\n return (null);\r\n }\r\n }\r\n\r\n return {\r\n Mixpanel.trackByEvent(event);\r\n clickHandler();\r\n },\r\n \"data-event\": mixpanelEvents.login_click,\r\n \"data-from_main_menu\": fromMainMenu,\r\n }}\r\n />;\r\n }\r\n};\r\n\r\nexport default LoginLogoutButton;","import Content from 'utils/Content';\r\nimport Images from 'utils/Images';\r\n\r\nimport UserData from 'User_Data.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport { useEffect } from 'react';\r\nimport { useState } from 'react';\r\nimport Platform from 'utils/Platform';\r\nimport Backend from 'Backend';\r\nimport ApiFacade from 'ApiFacade.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst backendURLs = Backend.backendURLs;\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst myEarningsHistoryURL = backendURLs.myEarningsHistoryURL;\r\n\r\nfunction LoggedInHeading() {\r\n const [coins, setCoins] = useState(null)\r\n const [userName, setUserName] = useState(UserData.getItem(userDataKeys.username));\r\n let platform = Platform.getPlatformName();\r\n\r\n /*const getUserNameHandler = () => {\r\n Backend.fetchUserData();\r\n };*/\r\n\r\n useEffect(() => {\r\n if (userName === null) {\r\n //getUserNameHandler();\r\n const user = UserData.getItem(userDataKeys.username);\r\n if (user){\r\n userName = user;\r\n } else {\r\n console.error(\"User logged in but username is null\");\r\n }\r\n }\r\n }, [userName])\r\n\r\n\r\n const currentYear = new Date().getUTCFullYear();\r\n const currentMonth = new Date().getUTCMonth() + 1;\r\n const coinsYear = currentYear;\r\n const coinsMonth = currentMonth;\r\n const minutesOffset = new Date().getTimezoneOffset() * (-1);\r\n\r\n useEffect(() => {\r\n let platform = Platform.getPlatformName();\r\n let req = ApiFacade.myEarningsHistory(coinsMonth,coinsYear, minutesOffset, platform, 1);\r\n req.then(function (res) {\r\n if (res.ok){\r\n const result = res.response;\r\n setCoins({\r\n isLoaded: true,\r\n filter: null,\r\n lifetimeCoins: result.lifetimeCoins\r\n });\r\n } else if (res.unauthorized){\r\n setCoins({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n setCoins({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n setCoins({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n );\r\n }, [])\r\n \r\n return (\r\n
    \r\n

    {UserData.getItem(userDataKeys.username)}

    \r\n \"Burger\"\r\n

    {Formatting.formatTreatCoinAmount( coins?.lifetimeCoins)}

    \r\n
    \r\n );\r\n}\r\n\r\nexport default LoggedInHeading;","export default function _readOnlyError(name) {\n throw new TypeError(\"\\\"\" + name + \"\\\" is read-only\");\n}","import UserData from 'User_Data.js';\r\nimport LoginLogoutButton from 'components/buttons/Login_Logout_Button.js';\r\nimport React from 'react';\r\nimport LoggedInHeading from 'components/widgets/Logged_In_Heading';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass HeaderLoginButton extends React.Component {\r\n\r\n render() {\r\n\r\n return
    \r\n {\r\n (UserData.getItem(userDataKeys.jwt_token) === null) ?\r\n (\r\n \r\n ) :\r\n ()\r\n }\r\n
    ;\r\n\r\n }\r\n\r\n}\r\n\r\nexport default HeaderLoginButton;","import React from 'react';\r\nimport ContentPageLogo from \"components/graphics/Content_Page_Logo.js\";\r\nimport HeaderLoginButton from \"components/buttons/Header_Login_Button.js\";\r\nimport UserData from 'User_Data.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nclass ContentPageHeader extends React.Component {\r\n\r\n render() {\r\n let {showLoginButton} = this.props;\r\n \r\n return
    \r\n \r\n {\r\n (showLoginButton !== false) ? () : (null)\r\n }\r\n
    ;\r\n\r\n }\r\n\r\n}\r\n\r\nexport default ContentPageHeader;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst globalConf = require(\"global_conf.json\");\r\nconst configuration = require(\"configuration.json\");\r\n\r\nconst websiteConnection = globalConf.website_connection;\r\nconst social = configuration.social;\r\n\r\nconst host = websiteConnection.frontend_host;\r\n\r\nconst facebook = social.facebook;\r\nconst twitter = social.twitter;\r\nconst instagram = social.instagram;\r\nconst linkedin = social.linkedin;\r\n\r\nclass Organization extends React.Component {\r\n\r\n render() {\r\n\r\n let logoURL = Images.imageURL('treat-coin-logo-beta.png');\r\n\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default Organization;","import React from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst globalConf = require(\"global_conf.json\");\r\nconst websiteConnection = globalConf.website_connection;\r\n\r\n\r\nconst host = websiteConnection.frontend_host;\r\n\r\nclass Breadcrumb extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.title = props.title;\r\n this.path = props.path;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default Breadcrumb;","import React, { Component } from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nclass AboutText extends Component {\r\n\r\n render() {\r\n return (\r\n
    \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default AboutText;","export const TAG_PROPERTIES = {\n CHARSET: 'charset',\n CSS_TEXT: 'cssText',\n HREF: 'href',\n HTTPEQUIV: 'http-equiv',\n INNER_HTML: 'innerHTML',\n ITEM_PROP: 'itemprop',\n NAME: 'name',\n PROPERTY: 'property',\n REL: 'rel',\n SRC: 'src',\n};\n\nexport const ATTRIBUTE_NAMES = {\n BODY: 'bodyAttributes',\n HTML: 'htmlAttributes',\n TITLE: 'titleAttributes',\n};\n\nexport const TAG_NAMES = {\n BASE: 'base',\n BODY: 'body',\n HEAD: 'head',\n HTML: 'html',\n LINK: 'link',\n META: 'meta',\n NOSCRIPT: 'noscript',\n SCRIPT: 'script',\n STYLE: 'style',\n TITLE: 'title',\n FRAGMENT: 'Symbol(react.fragment)',\n};\n\nexport const SEO_PRIORITY_TAGS = {\n link: { rel: ['amphtml', 'canonical', 'alternate'] },\n script: { type: ['application/ld+json'] },\n meta: {\n charset: '',\n name: ['robots', 'description'],\n property: [\n 'og:type',\n 'og:title',\n 'og:url',\n 'og:image',\n 'og:image:alt',\n 'og:description',\n 'twitter:url',\n 'twitter:title',\n 'twitter:description',\n 'twitter:image',\n 'twitter:image:alt',\n 'twitter:card',\n 'twitter:site',\n ],\n },\n};\n\nexport const VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(name => TAG_NAMES[name]);\n\nexport const REACT_TAG_MAP = {\n accesskey: 'accessKey',\n charset: 'charSet',\n class: 'className',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n 'http-equiv': 'httpEquiv',\n itemprop: 'itemProp',\n tabindex: 'tabIndex',\n};\n\nexport const HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce((obj, key) => {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nexport const HELMET_ATTRIBUTE = 'data-rh';\n","import { TAG_NAMES, TAG_PROPERTIES, ATTRIBUTE_NAMES } from './constants';\n\nconst HELMET_PROPS = {\n DEFAULT_TITLE: 'defaultTitle',\n DEFER: 'defer',\n ENCODE_SPECIAL_CHARACTERS: 'encodeSpecialCharacters',\n ON_CHANGE_CLIENT_STATE: 'onChangeClientState',\n TITLE_TEMPLATE: 'titleTemplate',\n PRIORITIZE_SEO_TAGS: 'prioritizeSeoTags',\n};\n\nconst getInnermostProperty = (propsList, property) => {\n for (let i = propsList.length - 1; i >= 0; i -= 1) {\n const props = propsList[i];\n\n if (Object.prototype.hasOwnProperty.call(props, property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nconst getTitleFromPropsList = propsList => {\n let innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n const innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (Array.isArray(innermostTitle)) {\n innermostTitle = innermostTitle.join('');\n }\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, () => innermostTitle);\n }\n\n const innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nconst getOnChangeClientState = propsList =>\n getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || (() => {});\n\nconst getAttributesFromPropsList = (tagType, propsList) =>\n propsList\n .filter(props => typeof props[tagType] !== 'undefined')\n .map(props => props[tagType])\n .reduce((tagAttrs, current) => ({ ...tagAttrs, ...current }), {});\n\nconst getBaseTagFromPropsList = (primaryAttributes, propsList) =>\n propsList\n .filter(props => typeof props[TAG_NAMES.BASE] !== 'undefined')\n .map(props => props[TAG_NAMES.BASE])\n .reverse()\n .reduce((innermostBaseTag, tag) => {\n if (!innermostBaseTag.length) {\n const keys = Object.keys(tag);\n\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (\n primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 &&\n tag[lowerCaseAttributeKey]\n ) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n\n// eslint-disable-next-line no-console\nconst warn = msg => console && typeof console.warn === 'function' && console.warn(msg);\n\nconst getTagsFromPropsList = (tagName, primaryAttributes, propsList) => {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n const approvedSeenTags = {};\n\n return propsList\n .filter(props => {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== 'undefined') {\n warn(\n `Helmet: ${tagName} should be of type \"Array\". Instead found type \"${typeof props[\n tagName\n ]}\"`\n );\n }\n return false;\n })\n .map(props => props[tagName])\n .reverse()\n .reduce((approvedTags, instanceTags) => {\n const instanceSeenTags = {};\n\n instanceTags\n .filter(tag => {\n let primaryAttributeKey;\n const keys = Object.keys(tag);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (\n primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 &&\n !(\n primaryAttributeKey === TAG_PROPERTIES.REL &&\n tag[primaryAttributeKey].toLowerCase() === 'canonical'\n ) &&\n !(\n lowerCaseAttributeKey === TAG_PROPERTIES.REL &&\n tag[lowerCaseAttributeKey].toLowerCase() === 'stylesheet'\n )\n ) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (\n primaryAttributes.indexOf(attributeKey) !== -1 &&\n (attributeKey === TAG_PROPERTIES.INNER_HTML ||\n attributeKey === TAG_PROPERTIES.CSS_TEXT ||\n attributeKey === TAG_PROPERTIES.ITEM_PROP)\n ) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n const value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n })\n .reverse()\n .forEach(tag => approvedTags.push(tag));\n\n // Update seen tags with tags from this instance\n const keys = Object.keys(instanceSeenTags);\n for (let i = 0; i < keys.length; i += 1) {\n const attributeKey = keys[i];\n const tagUnion = {\n ...approvedSeenTags[attributeKey],\n ...instanceSeenTags[attributeKey],\n };\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, [])\n .reverse();\n};\n\nconst getAnyTrueFromPropsList = (propsList, checkedTag) => {\n if (Array.isArray(propsList) && propsList.length) {\n for (let index = 0; index < propsList.length; index += 1) {\n const prop = propsList[index];\n if (prop[checkedTag]) {\n return true;\n }\n }\n }\n return false;\n};\n\nconst reducePropsToState = propsList => ({\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(\n TAG_NAMES.LINK,\n [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF],\n propsList\n ),\n metaTags: getTagsFromPropsList(\n TAG_NAMES.META,\n [\n TAG_PROPERTIES.NAME,\n TAG_PROPERTIES.CHARSET,\n TAG_PROPERTIES.HTTPEQUIV,\n TAG_PROPERTIES.PROPERTY,\n TAG_PROPERTIES.ITEM_PROP,\n ],\n propsList\n ),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(\n TAG_NAMES.SCRIPT,\n [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML],\n propsList\n ),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList),\n prioritizeSeoTags: getAnyTrueFromPropsList(propsList, HELMET_PROPS.PRIORITIZE_SEO_TAGS),\n});\n\nexport const flattenArray = possibleArray =>\n Array.isArray(possibleArray) ? possibleArray.join('') : possibleArray;\n\nexport { reducePropsToState };\n\nconst checkIfPropsMatch = (props, toMatch) => {\n const keys = Object.keys(props);\n for (let i = 0; i < keys.length; i += 1) {\n // e.g. if rel exists in the list of allowed props [amphtml, alternate, etc]\n if (toMatch[keys[i]] && toMatch[keys[i]].includes(props[keys[i]])) {\n return true;\n }\n }\n return false;\n};\n\nexport const prioritizer = (elementsList, propsToMatch) => {\n if (Array.isArray(elementsList)) {\n return elementsList.reduce(\n (acc, elementAttrs) => {\n if (checkIfPropsMatch(elementAttrs, propsToMatch)) {\n acc.priority.push(elementAttrs);\n } else {\n acc.default.push(elementAttrs);\n }\n return acc;\n },\n { priority: [], default: [] }\n );\n }\n return { default: elementsList };\n};\n\nexport const without = (obj, key) => {\n return {\n ...obj,\n [key]: undefined,\n };\n};\n","import React from 'react';\nimport {\n HELMET_ATTRIBUTE,\n TAG_NAMES,\n REACT_TAG_MAP,\n TAG_PROPERTIES,\n ATTRIBUTE_NAMES,\n SEO_PRIORITY_TAGS,\n} from './constants';\nimport { flattenArray, prioritizer } from './utils';\n\nconst SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nconst encodeSpecialCharacters = (str, encode = true) => {\n if (encode === false) {\n return String(str);\n }\n\n return String(str)\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n};\n\nconst generateElementAttributesAsString = attributes =>\n Object.keys(attributes).reduce((str, key) => {\n const attr = typeof attributes[key] !== 'undefined' ? `${key}=\"${attributes[key]}\"` : `${key}`;\n return str ? `${str} ${attr}` : attr;\n }, '');\n\nconst generateTitleAsString = (type, title, attributes, encode) => {\n const attributeString = generateElementAttributesAsString(attributes);\n const flattenedTitle = flattenArray(title);\n return attributeString\n ? `<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeString}>${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`\n : `<${type} ${HELMET_ATTRIBUTE}=\"true\">${encodeSpecialCharacters(\n flattenedTitle,\n encode\n )}`;\n};\n\nconst generateTagsAsString = (type, tags, encode) =>\n tags.reduce((str, tag) => {\n const attributeHtml = Object.keys(tag)\n .filter(\n attribute =>\n !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT)\n )\n .reduce((string, attribute) => {\n const attr =\n typeof tag[attribute] === 'undefined'\n ? attribute\n : `${attribute}=\"${encodeSpecialCharacters(tag[attribute], encode)}\"`;\n return string ? `${string} ${attr}` : attr;\n }, '');\n\n const tagContent = tag.innerHTML || tag.cssText || '';\n\n const isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return `${str}<${type} ${HELMET_ATTRIBUTE}=\"true\" ${attributeHtml}${\n isSelfClosing ? `/>` : `>${tagContent}`\n }`;\n }, '');\n\nconst convertElementAttributesToReactProps = (attributes, initProps = {}) =>\n Object.keys(attributes).reduce((obj, key) => {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n\nconst generateTitleAsReactComponent = (type, title, attributes) => {\n // assigning into an array to define toString function on it\n const initProps = {\n key: title,\n [HELMET_ATTRIBUTE]: true,\n };\n const props = convertElementAttributesToReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nconst generateTagsAsReactComponent = (type, tags) =>\n tags.map((tag, i) => {\n const mappedTag = {\n key: i,\n [HELMET_ATTRIBUTE]: true,\n };\n\n Object.keys(tag).forEach(attribute => {\n const mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (\n mappedAttribute === TAG_PROPERTIES.INNER_HTML ||\n mappedAttribute === TAG_PROPERTIES.CSS_TEXT\n ) {\n const content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n\nconst getMethodsForTag = (type, tags, encode) => {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: () =>\n generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode),\n toString: () => generateTitleAsString(type, tags.title, tags.titleAttributes, encode),\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: () => convertElementAttributesToReactProps(tags),\n toString: () => generateElementAttributesAsString(tags),\n };\n default:\n return {\n toComponent: () => generateTagsAsReactComponent(type, tags),\n toString: () => generateTagsAsString(type, tags, encode),\n };\n }\n};\n\nconst getPriorityMethods = ({ metaTags, linkTags, scriptTags, encode }) => {\n const meta = prioritizer(metaTags, SEO_PRIORITY_TAGS.meta);\n const link = prioritizer(linkTags, SEO_PRIORITY_TAGS.link);\n const script = prioritizer(scriptTags, SEO_PRIORITY_TAGS.script);\n\n // need to have toComponent() and toString()\n const priorityMethods = {\n toComponent: () => [\n ...generateTagsAsReactComponent(TAG_NAMES.META, meta.priority),\n ...generateTagsAsReactComponent(TAG_NAMES.LINK, link.priority),\n ...generateTagsAsReactComponent(TAG_NAMES.SCRIPT, script.priority),\n ],\n toString: () =>\n // generate all the tags as strings and concatenate them\n `${getMethodsForTag(TAG_NAMES.META, meta.priority, encode)} ${getMethodsForTag(\n TAG_NAMES.LINK,\n link.priority,\n encode\n )} ${getMethodsForTag(TAG_NAMES.SCRIPT, script.priority, encode)}`,\n };\n\n return {\n priorityMethods,\n metaTags: meta.default,\n linkTags: link.default,\n scriptTags: script.default,\n };\n};\n\nconst mapStateOnServer = props => {\n const {\n baseTag,\n bodyAttributes,\n encode,\n htmlAttributes,\n noscriptTags,\n styleTags,\n title = '',\n titleAttributes,\n prioritizeSeoTags,\n } = props;\n let { linkTags, metaTags, scriptTags } = props;\n let priorityMethods = {\n toComponent: () => {},\n toString: () => '',\n };\n if (prioritizeSeoTags) {\n ({ priorityMethods, linkTags, metaTags, scriptTags } = getPriorityMethods(props));\n }\n return {\n priority: priorityMethods,\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title, titleAttributes }, encode),\n };\n};\n\nexport default mapStateOnServer;\n","import mapStateOnServer from './server';\n\nconst instances = [];\n\nexport function clearInstances() {\n instances.length = 0;\n}\n\nexport default class HelmetData {\n instances = [];\n\n value = {\n setHelmet: serverState => {\n this.context.helmet = serverState;\n },\n helmetInstances: {\n get: () => (this.canUseDOM ? instances : this.instances),\n add: instance => {\n (this.canUseDOM ? instances : this.instances).push(instance);\n },\n remove: instance => {\n const index = (this.canUseDOM ? instances : this.instances).indexOf(instance);\n (this.canUseDOM ? instances : this.instances).splice(index, 1);\n },\n },\n };\n\n constructor(context, canUseDOM = typeof document !== 'undefined') {\n this.context = context;\n this.canUseDOM = canUseDOM;\n\n if (!canUseDOM) {\n context.helmet = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: '',\n titleAttributes: {},\n });\n }\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport HelmetData from './HelmetData';\n\nconst defaultValue = {};\n\nexport const Context = React.createContext(defaultValue);\n\nexport const providerShape = PropTypes.shape({\n setHelmet: PropTypes.func,\n helmetInstances: PropTypes.shape({\n get: PropTypes.func,\n add: PropTypes.func,\n remove: PropTypes.func,\n }),\n});\n\nconst canUseDOM = typeof document !== 'undefined';\n\nexport default class Provider extends Component {\n static canUseDOM = canUseDOM;\n\n static propTypes = {\n context: PropTypes.shape({\n helmet: PropTypes.shape(),\n }),\n children: PropTypes.node.isRequired,\n };\n\n static defaultProps = {\n context: {},\n };\n\n static displayName = 'HelmetProvider';\n\n constructor(props) {\n super(props);\n\n this.helmetData = new HelmetData(this.props.context, Provider.canUseDOM);\n }\n\n render() {\n return {this.props.children};\n }\n}\n","import { HELMET_ATTRIBUTE, TAG_NAMES, TAG_PROPERTIES } from './constants';\nimport { flattenArray } from './utils';\n\nconst updateTags = (type, tags) => {\n const headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n const tagNodes = headElement.querySelectorAll(`${type}[${HELMET_ATTRIBUTE}]`);\n const oldTags = [].slice.call(tagNodes);\n const newTags = [];\n let indexToDelete;\n\n if (tags && tags.length) {\n tags.forEach(tag => {\n const newElement = document.createElement(type);\n\n // eslint-disable-next-line\n for (const attribute in tag) {\n if (Object.prototype.hasOwnProperty.call(tag, attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n const value = typeof tag[attribute] === 'undefined' ? '' : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, 'true');\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (\n oldTags.some((existingTag, index) => {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })\n ) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(tag => tag.parentNode.removeChild(tag));\n newTags.forEach(tag => headElement.appendChild(tag));\n\n return {\n oldTags,\n newTags,\n };\n};\n\nconst updateAttributes = (tagName, attributes) => {\n const elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n const helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n const helmetAttributes = helmetAttributeString ? helmetAttributeString.split(',') : [];\n const attributesToRemove = [].concat(helmetAttributes);\n const attributeKeys = Object.keys(attributes);\n\n for (let i = 0; i < attributeKeys.length; i += 1) {\n const attribute = attributeKeys[i];\n const value = attributes[attribute] || '';\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n const indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (let i = attributesToRemove.length - 1; i >= 0; i -= 1) {\n elementTag.removeAttribute(attributesToRemove[i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(',')) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(','));\n }\n};\n\nconst updateTitle = (title, attributes) => {\n if (typeof title !== 'undefined' && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nconst commitTagChanges = (newState, cb) => {\n const {\n baseTag,\n bodyAttributes,\n htmlAttributes,\n linkTags,\n metaTags,\n noscriptTags,\n onChangeClientState,\n scriptTags,\n styleTags,\n title,\n titleAttributes,\n } = newState;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n const tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags),\n };\n\n const addedTags = {};\n const removedTags = {};\n\n Object.keys(tagUpdates).forEach(tagType => {\n const { newTags, oldTags } = tagUpdates[tagType];\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n if (cb) {\n cb();\n }\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\n// eslint-disable-next-line\nlet _helmetCallback = null;\n\nconst handleStateChangeOnClient = newState => {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(() => {\n commitTagChanges(newState, () => {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nexport default handleStateChangeOnClient;\n","import { Component } from 'react';\nimport shallowEqual from 'shallowequal';\nimport handleStateChangeOnClient from './client';\nimport mapStateOnServer from './server';\nimport { reducePropsToState } from './utils';\nimport Provider, { providerShape } from './Provider';\n\nexport default class Dispatcher extends Component {\n static propTypes = {\n context: providerShape.isRequired,\n };\n\n static displayName = 'HelmetDispatcher';\n\n rendered = false;\n\n shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n }\n\n componentDidUpdate() {\n this.emitChange();\n }\n\n componentWillUnmount() {\n const { helmetInstances } = this.props.context;\n helmetInstances.remove(this);\n this.emitChange();\n }\n\n emitChange() {\n const { helmetInstances, setHelmet } = this.props.context;\n let serverState = null;\n const state = reducePropsToState(\n helmetInstances.get().map(instance => {\n const props = { ...instance.props };\n delete props.context;\n return props;\n })\n );\n if (Provider.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n serverState = mapStateOnServer(state);\n }\n setHelmet(serverState);\n }\n\n // componentWillMount will be deprecated\n // for SSR, initialize on first render\n // constructor is also unsafe in StrictMode\n init() {\n if (this.rendered) {\n return;\n }\n\n this.rendered = true;\n\n const { helmetInstances } = this.props.context;\n helmetInstances.add(this);\n this.emitChange();\n }\n\n render() {\n this.init();\n\n return null;\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport fastCompare from 'react-fast-compare';\nimport invariant from 'invariant';\nimport { Context } from './Provider';\nimport HelmetData from './HelmetData';\nimport Dispatcher from './Dispatcher';\nimport { without } from './utils';\nimport { TAG_NAMES, VALID_TAG_NAMES, HTML_TAG_MAP } from './constants';\n\nexport { default as HelmetData } from './HelmetData';\nexport { default as HelmetProvider } from './Provider';\n\n/* eslint-disable class-methods-use-this */\nexport class Helmet extends Component {\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n * @param {Boolean} prioritizeSeoTags: false\n */\n /* eslint-disable react/forbid-prop-types, react/require-default-props */\n static propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string,\n prioritizeSeoTags: PropTypes.bool,\n helmetData: PropTypes.object,\n };\n /* eslint-enable react/prop-types, react/forbid-prop-types, react/require-default-props */\n\n static defaultProps = {\n defer: true,\n encodeSpecialCharacters: true,\n prioritizeSeoTags: false,\n };\n\n static displayName = 'Helmet';\n\n shouldComponentUpdate(nextProps) {\n return !fastCompare(without(this.props, 'helmetData'), without(nextProps, 'helmetData'));\n }\n\n mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren,\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren,\n };\n default:\n throw new Error(\n `<${child.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`\n );\n }\n }\n\n flattenArrayTypeChildren({ child, arrayTypeChildren, newChildProps, nestedChildren }) {\n return {\n ...arrayTypeChildren,\n [child.type]: [\n ...(arrayTypeChildren[child.type] || []),\n {\n ...newChildProps,\n ...this.mapNestedChildrenToProps(child, nestedChildren),\n },\n ],\n };\n }\n\n mapObjectTypeChildren({ child, newProps, newChildProps, nestedChildren }) {\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return {\n ...newProps,\n [child.type]: nestedChildren,\n titleAttributes: { ...newChildProps },\n };\n\n case TAG_NAMES.BODY:\n return {\n ...newProps,\n bodyAttributes: { ...newChildProps },\n };\n\n case TAG_NAMES.HTML:\n return {\n ...newProps,\n htmlAttributes: { ...newChildProps },\n };\n default:\n return {\n ...newProps,\n [child.type]: { ...newChildProps },\n };\n }\n }\n\n mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n let newFlattenedProps = { ...newProps };\n\n Object.keys(arrayTypeChildren).forEach(arrayChildName => {\n newFlattenedProps = {\n ...newFlattenedProps,\n [arrayChildName]: arrayTypeChildren[arrayChildName],\n };\n });\n\n return newFlattenedProps;\n }\n\n warnOnInvalidChildren(child, nestedChildren) {\n invariant(\n VALID_TAG_NAMES.some(name => child.type === name),\n typeof child.type === 'function'\n ? `You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.`\n : `Only elements types ${VALID_TAG_NAMES.join(\n ', '\n )} are allowed. Helmet does not support rendering <${\n child.type\n }> elements. Refer to our API for more information.`\n );\n\n invariant(\n !nestedChildren ||\n typeof nestedChildren === 'string' ||\n (Array.isArray(nestedChildren) &&\n !nestedChildren.some(nestedChild => typeof nestedChild !== 'string')),\n `Helmet expects a string as a child of <${child.type}>. Did you forget to wrap your children in braces? ( <${child.type}>{\\`\\`} ) Refer to our API for more information.`\n );\n\n return true;\n }\n\n mapChildrenToProps(children, newProps) {\n let arrayTypeChildren = {};\n\n React.Children.forEach(children, child => {\n if (!child || !child.props) {\n return;\n }\n\n const { children: nestedChildren, ...childProps } = child.props;\n // convert React props to HTML attributes\n const newChildProps = Object.keys(childProps).reduce((obj, key) => {\n obj[HTML_TAG_MAP[key] || key] = childProps[key];\n return obj;\n }, {});\n\n let { type } = child;\n if (typeof type === 'symbol') {\n type = type.toString();\n } else {\n this.warnOnInvalidChildren(child, nestedChildren);\n }\n\n switch (type) {\n case TAG_NAMES.FRAGMENT:\n newProps = this.mapChildrenToProps(nestedChildren, newProps);\n break;\n\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = this.flattenArrayTypeChildren({\n child,\n arrayTypeChildren,\n newChildProps,\n nestedChildren,\n });\n break;\n\n default:\n newProps = this.mapObjectTypeChildren({\n child,\n newProps,\n newChildProps,\n nestedChildren,\n });\n break;\n }\n });\n\n return this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n }\n\n render() {\n const { children, ...props } = this.props;\n let newProps = { ...props };\n let { helmetData } = props;\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n if (helmetData && !(helmetData instanceof HelmetData)) {\n helmetData = new HelmetData(helmetData.context, helmetData.instances);\n }\n\n return helmetData ? (\n // eslint-disable-next-line react/jsx-props-no-spreading\n \n ) : (\n \n {(\n context // eslint-disable-next-line react/jsx-props-no-spreading\n ) => }\n \n );\n }\n}\n","import React from 'react';\r\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\r\nimport UserData from 'User_Data.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nconst globalConf = require(\"global_conf.json\");\r\nconst configuration = require('configuration.json');\r\nconst langData = configuration.languages\r\n\r\nconst websiteConnection = globalConf.website_connection;\r\n\r\nconst host = websiteConnection.frontend_host;\r\n\r\nclass MetaTags extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.title = props.title;\r\n this.description = props.description;\r\n this.url = props.url;\r\n }\r\n\r\n render() {\r\n if (this.description !== '')\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {langData.slice(2).map(language => (\r\n ()\r\n ))}\r\n \r\n {this.title}\r\n \r\n \r\n );\r\n return (\r\n \r\n \r\n \r\n {this.title}\r\n \r\n \r\n );\r\n\r\n }\r\n\r\n}\r\n\r\nexport default MetaTags;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n//const markCoinsDisclaimerDisplayedURL = backendURLs.markCoinsDisclaimerDisplayedURL;\r\n\r\nlet thisComponent;\r\n\r\nclass OfferCompletionDisclaimer extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n //this.markURL = markCoinsDisclaimerDisplayedURL;\r\n thisComponent = this;\r\n }\r\n\r\n render() {\r\n return
    \r\n \"Coins\r\n \"Coins\r\n
    \r\n {Content.getValue(\"offer_completion_disclaimer_text\")}\r\n
    \r\n
    ;\r\n }\r\n\r\n closeCoinsDisclaimer() {\r\n thisComponent.markCoinsDisclaimerDisplayed();\r\n document.getElementById('offer-completion-disclaimer-container').parentNode.removeChild(document.getElementById('offer-completion-disclaimer-container'));\r\n }\r\n\r\n markCoinsDisclaimerDisplayed() {\r\n const req = ApiFacade.markCoinsDisclaimerDisplayed();\r\n req.then(function (res) {\r\n if (res.ok){\r\n UserData.setItem(userDataKeys.offer_completion_disclaimer_displayed, true);\r\n } else {\r\n ///????\r\n }\r\n });\r\n }\r\n\r\n\r\n}\r\n\r\nexport default OfferCompletionDisclaimer;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { RedirectWithLang } from 'utils/RedirectWithLang.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\n\r\nconst socialLinks = configuration.social;\r\nconst facebookLink = socialLinks.facebook;\r\nconst tiktokLink = socialLinks.tiktok;\r\nconst instagramLink = socialLinks.instagram;\r\nconst twitterLink = socialLinks.twitter;\r\nconst telegramLink = socialLinks.telegram;\r\n\r\nclass Footer extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.lightMode = props.lightMode || false;\r\n }\r\n\r\n render() {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n const termsOfUseOption = menuOptions.terms_of_use;\r\n const privacyPolicyOption = menuOptions.privacy_policy;\r\n const cookiePolicyOption = menuOptions.cookie_policy;\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default Footer;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormGroupUtilityClass(slot) {\n return generateUtilityClass('MuiFormGroup', slot);\n}\nconst formGroupClasses = generateUtilityClasses('MuiFormGroup', ['root', 'row', 'error']);\nexport default formGroupClasses;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst FormControlContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\nexport default FormControlContext;","import * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","export default function formControlState({\n props,\n states,\n muiFormControl\n}) {\n return states.reduce((acc, state) => {\n acc[state] = props[state];\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n return acc;\n }, {});\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"row\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getFormGroupUtilityClass } from './formGroupClasses';\nimport useFormControl from '../FormControl/useFormControl';\nimport formControlState from '../FormControl/formControlState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n row,\n error\n } = ownerState;\n const slots = {\n root: ['root', row && 'row', error && 'error']\n };\n return composeClasses(slots, getFormGroupUtilityClass, classes);\n};\nconst FormGroupRoot = styled('div', {\n name: 'MuiFormGroup',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.row && styles.row];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n flexWrap: 'wrap'\n}, ownerState.row && {\n flexDirection: 'row'\n}));\n\n/**\n * `FormGroup` wraps controls such as `Checkbox` and `Switch`.\n * It provides compact row layout.\n * For the `Radio`, you should be using the `RadioGroup` component instead of this one.\n */\nconst FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormGroup'\n });\n const {\n className,\n row = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n const ownerState = _extends({}, props, {\n row,\n error: fcs.error\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormGroupRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormGroup.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 content of the component.\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 * Display group of elements in a compact row.\n * @default false\n */\n row: PropTypes.bool,\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} : void 0;\nexport default FormGroup;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null ? void 0 : (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTypographyUtilityClass(slot) {\n return generateUtilityClass('MuiTypography', slot);\n}\nconst typographyClasses = generateUtilityClasses('MuiTypography', ['root', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'inherit', 'button', 'caption', 'overline', 'alignLeft', 'alignRight', 'alignCenter', 'alignJustify', 'noWrap', 'gutterBottom', 'paragraph']);\nexport default typographyClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"align\", \"className\", \"component\", \"gutterBottom\", \"noWrap\", \"paragraph\", \"variant\", \"variantMapping\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_extendSxProp as extendSxProp } from '@mui/system';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport { getTypographyUtilityClass } from './typographyClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n align,\n gutterBottom,\n noWrap,\n paragraph,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, ownerState.align !== 'inherit' && `align${capitalize(align)}`, gutterBottom && 'gutterBottom', noWrap && 'noWrap', paragraph && 'paragraph']\n };\n return composeClasses(slots, getTypographyUtilityClass, classes);\n};\nexport const TypographyRoot = styled('span', {\n name: 'MuiTypography',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.variant && styles[ownerState.variant], ownerState.align !== 'inherit' && styles[`align${capitalize(ownerState.align)}`], ownerState.noWrap && styles.noWrap, ownerState.gutterBottom && styles.gutterBottom, ownerState.paragraph && styles.paragraph];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 0\n}, ownerState.variant && theme.typography[ownerState.variant], ownerState.align !== 'inherit' && {\n textAlign: ownerState.align\n}, ownerState.noWrap && {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n}, ownerState.gutterBottom && {\n marginBottom: '0.35em'\n}, ownerState.paragraph && {\n marginBottom: 16\n}));\nconst defaultVariantMapping = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n inherit: 'p'\n};\n\n// TODO v6: deprecate these color values in v5.x and remove the transformation in v6\nconst colorTransformations = {\n primary: 'primary.main',\n textPrimary: 'text.primary',\n secondary: 'secondary.main',\n textSecondary: 'text.secondary',\n error: 'error.main'\n};\nconst transformDeprecatedColors = color => {\n return colorTransformations[color] || color;\n};\nconst Typography = /*#__PURE__*/React.forwardRef(function Typography(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiTypography'\n });\n const color = transformDeprecatedColors(themeProps.color);\n const props = extendSxProp(_extends({}, themeProps, {\n color\n }));\n const {\n align = 'inherit',\n className,\n component,\n gutterBottom = false,\n noWrap = false,\n paragraph = false,\n variant = 'body1',\n variantMapping = defaultVariantMapping\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n align,\n color,\n className,\n component,\n gutterBottom,\n noWrap,\n paragraph,\n variant,\n variantMapping\n });\n const Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TypographyRoot, _extends({\n as: Component,\n ref: ref,\n ownerState: ownerState,\n className: clsx(classes.root, className)\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Typography.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 * Set the text-align on the component.\n * @default 'inherit'\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n /**\n * The content of the component.\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 * If `true`, the text will have a bottom margin.\n * @default false\n */\n gutterBottom: PropTypes.bool,\n /**\n * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n *\n * Note that text overflow can only happen with block or inline-block level elements\n * (the element needs to have a width in order to overflow).\n * @default false\n */\n noWrap: PropTypes.bool,\n /**\n * If `true`, the element will be a paragraph element.\n * @default false\n */\n paragraph: PropTypes.bool,\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 * Applies the theme typography styles.\n * @default 'body1'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string]),\n /**\n * The component maps the variant prop to a range of different HTML element types.\n * For instance, subtitle1 to `
    `.\n * If you wish to change that mapping, you can provide your own.\n * Alternatively, you can use the `component` prop.\n * @default {\n * h1: 'h1',\n * h2: 'h2',\n * h3: 'h3',\n * h4: 'h4',\n * h5: 'h5',\n * h6: 'h6',\n * subtitle1: 'h6',\n * subtitle2: 'h6',\n * body1: 'p',\n * body2: 'p',\n * inherit: 'p',\n * }\n */\n variantMapping: PropTypes /* @typescript-to-proptypes-ignore */.object\n} : void 0;\nexport default Typography;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormControlLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControlLabel', slot);\n}\nconst formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error']);\nexport default formControlLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checked\", \"className\", \"componentsProps\", \"control\", \"disabled\", \"disableTypography\", \"inputRef\", \"label\", \"labelPlacement\", \"name\", \"onChange\", \"slotProps\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { useFormControl } from '../FormControl';\nimport Typography from '../Typography';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport formControlLabelClasses, { getFormControlLabelUtilityClasses } from './formControlLabelClasses';\nimport formControlState from '../FormControl/formControlState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disabled,\n labelPlacement,\n error\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', `labelPlacement${capitalize(labelPlacement)}`, error && 'error'],\n label: ['label', disabled && 'disabled']\n };\n return composeClasses(slots, getFormControlLabelUtilityClasses, classes);\n};\nexport const FormControlLabelRoot = styled('label', {\n name: 'MuiFormControlLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formControlLabelClasses.label}`]: styles.label\n }, styles.root, styles[`labelPlacement${capitalize(ownerState.labelPlacement)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'inline-flex',\n alignItems: 'center',\n cursor: 'pointer',\n // For correct alignment with the text.\n verticalAlign: 'middle',\n WebkitTapHighlightColor: 'transparent',\n marginLeft: -11,\n marginRight: 16,\n // used for row presentation of radio/checkbox\n [`&.${formControlLabelClasses.disabled}`]: {\n cursor: 'default'\n }\n}, ownerState.labelPlacement === 'start' && {\n flexDirection: 'row-reverse',\n marginLeft: 16,\n // used for row presentation of radio/checkbox\n marginRight: -11\n}, ownerState.labelPlacement === 'top' && {\n flexDirection: 'column-reverse',\n marginLeft: 16\n}, ownerState.labelPlacement === 'bottom' && {\n flexDirection: 'column',\n marginLeft: 16\n}, {\n [`& .${formControlLabelClasses.label}`]: {\n [`&.${formControlLabelClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n }\n }\n}));\n\n/**\n * Drop-in replacement of the `Radio`, `Switch` and `Checkbox` component.\n * Use this component if you want to display an extra label.\n */\nconst FormControlLabel = /*#__PURE__*/React.forwardRef(function FormControlLabel(inProps, ref) {\n var _slotProps$typography;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormControlLabel'\n });\n const {\n className,\n componentsProps = {},\n control,\n disabled: disabledProp,\n disableTypography,\n label: labelProp,\n labelPlacement = 'end',\n slotProps = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n let disabled = disabledProp;\n if (typeof disabled === 'undefined' && typeof control.props.disabled !== 'undefined') {\n disabled = control.props.disabled;\n }\n if (typeof disabled === 'undefined' && muiFormControl) {\n disabled = muiFormControl.disabled;\n }\n const controlProps = {\n disabled\n };\n ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach(key => {\n if (typeof control.props[key] === 'undefined' && typeof props[key] !== 'undefined') {\n controlProps[key] = props[key];\n }\n });\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['error']\n });\n const ownerState = _extends({}, props, {\n disabled,\n labelPlacement,\n error: fcs.error\n });\n const classes = useUtilityClasses(ownerState);\n const typographySlotProps = (_slotProps$typography = slotProps.typography) != null ? _slotProps$typography : componentsProps.typography;\n let label = labelProp;\n if (label != null && label.type !== Typography && !disableTypography) {\n label = /*#__PURE__*/_jsx(Typography, _extends({\n component: \"span\"\n }, typographySlotProps, {\n className: clsx(classes.label, typographySlotProps == null ? void 0 : typographySlotProps.className),\n children: label\n }));\n }\n return /*#__PURE__*/_jsxs(FormControlLabelRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/React.cloneElement(control, controlProps), label]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControlLabel.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 * If `true`, the component appears selected.\n */\n checked: PropTypes.bool,\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 props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n typography: PropTypes.object\n }),\n /**\n * A control element. For instance, it can be a `Radio`, a `Switch` or a `Checkbox`.\n */\n control: PropTypes.element.isRequired,\n /**\n * If `true`, the control is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is rendered as it is passed without an additional typography node.\n */\n disableTypography: PropTypes.bool,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * A text or an element to be used in an enclosing label element.\n */\n label: PropTypes.node,\n /**\n * The position of the label.\n * @default 'end'\n */\n labelPlacement: PropTypes.oneOf(['bottom', 'end', 'start', 'top']),\n /**\n * @ignore\n */\n name: PropTypes.string,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes.shape({\n typography: PropTypes.object\n }),\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 value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default FormControlLabel;","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 React from 'react';\nexport default React.createContext(null);","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
    ` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
    ` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import { createElement, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-6a883da9.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-6a883da9.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.10.6\",\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\"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\"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\"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\"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\": \"./macro.js\"\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.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\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.10.6\",\n\t\t\"@emotion/cache\": \"^11.10.5\",\n\t\t\"@emotion/serialize\": \"^1.1.1\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.0\",\n\t\t\"@emotion/utils\": \"^1.2.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.0\",\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.10.6\",\n\t\t\"@emotion/css-prettifier\": \"1.1.1\",\n\t\t\"@emotion/server\": \"11.10.0\",\n\t\t\"@emotion/styled\": \"11.10.6\",\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\": \"./macro.js\"\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 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 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, useContext(ThemeContext));\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 = 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 var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = 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: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/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","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n});\n\n// This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]);\n\n // Used to filter out mouse emulated events on mobile.\n const ignoringMouseDown = React.useRef(false);\n // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n const startTimer = React.useRef(null);\n\n // This is the hook called once the previous timeout is ready.\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n React.useEffect(() => {\n return () => {\n clearTimeout(startTimer.current);\n };\n }, []);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb = () => {}) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n } = options;\n if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if ((event == null ? void 0 : event.type) === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n // Get the size of the ripple\n let rippleX;\n let rippleY;\n let rippleSize;\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);\n\n // For some reason the animation is broken on Mobile Chrome if the size is even.\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n // Touche devices\n if (event != null && event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n };\n // Delay the execution of the ripple effect.\n startTimer.current = setTimeout(() => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n clearTimeout(startTimer.current);\n\n // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(() => {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n className: clsx(touchRippleClasses.root, classes.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@mui/utils';\nimport composeClasses from '@mui/base/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n return composedClasses;\n};\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const buttonRef = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRippleRef = useForkRef(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = React.useState(false);\n React.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n const ignore = skipRippleAction;\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n return true;\n });\n }\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\n }\n });\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n const keydownRef = React.useRef(false);\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme[THEME_ID] || theme;\n}","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n var _style$transitionDura, _style$transitionTimi;\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,\n delay: style.transitionDelay\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport { elementAcceptingRef } from '@mui/utils';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n entering: {\n opacity: 1\n },\n entered: {\n opacity: 1\n }\n};\n\n/**\n * The Fade transition is used by the [Modal](/material-ui/react-modal/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {\n const theme = useTheme();\n const defaultTimeout = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const enableStrictModeCompat = true;\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, children.ref, ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const transitionProps = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: appear,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Fade.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 * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Fade;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getBackdropUtilityClass(slot) {\n return generateUtilityClass('MuiBackdrop', slot);\n}\nconst backdropClasses = generateUtilityClasses('MuiBackdrop', ['root', 'invisible']);\nexport default backdropClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"components\", \"componentsProps\", \"invisible\", \"open\", \"slotProps\", \"slots\", \"TransitionComponent\", \"transitionDuration\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Fade from '../Fade';\nimport { getBackdropUtilityClass } from './backdropClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n invisible\n } = ownerState;\n const slots = {\n root: ['root', invisible && 'invisible']\n };\n return composeClasses(slots, getBackdropUtilityClass, classes);\n};\nconst BackdropRoot = styled('div', {\n name: 'MuiBackdrop',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.invisible && styles.invisible];\n }\n})(({\n ownerState\n}) => _extends({\n position: 'fixed',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n}, ownerState.invisible && {\n backgroundColor: 'transparent'\n}));\nconst Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(inProps, ref) {\n var _slotProps$root, _ref, _slots$root;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiBackdrop'\n });\n const {\n children,\n className,\n component = 'div',\n components = {},\n componentsProps = {},\n invisible = false,\n open,\n slotProps = {},\n slots = {},\n TransitionComponent = Fade,\n transitionDuration\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n invisible\n });\n const classes = useUtilityClasses(ownerState);\n const rootSlotProps = (_slotProps$root = slotProps.root) != null ? _slotProps$root : componentsProps.root;\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: open,\n timeout: transitionDuration\n }, other, {\n children: /*#__PURE__*/_jsx(BackdropRoot, _extends({\n \"aria-hidden\": true\n }, rootSlotProps, {\n as: (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : component,\n className: clsx(classes.root, className, rootSlotProps == null ? void 0 : rootSlotProps.className),\n ownerState: _extends({}, ownerState, rootSlotProps == null ? void 0 : rootSlotProps.ownerState),\n classes: classes,\n ref: ref,\n children: children\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Backdrop.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 content of the component.\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 * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * If `true`, the backdrop is invisible.\n * It can be used when rendering a popover or a custom select component.\n * @default false\n */\n invisible: PropTypes.bool,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\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 component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Backdrop;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"BackdropComponent\", \"BackdropProps\", \"classes\", \"className\", \"closeAfterTransition\", \"children\", \"component\", \"components\", \"componentsProps\", \"disableAutoFocus\", \"disableEnforceFocus\", \"disableEscapeKeyDown\", \"disablePortal\", \"disableRestoreFocus\", \"disableScrollLock\", \"hideBackdrop\", \"keepMounted\", \"slotProps\", \"slots\", \"theme\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ModalUnstyled, { modalUnstyledClasses } from '@mui/base/ModalUnstyled';\nimport { isHostComponent, resolveComponentProps } from '@mui/base/utils';\nimport { elementAcceptingRef, HTMLElementType } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Backdrop from '../Backdrop';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const modalClasses = modalUnstyledClasses;\nconst ModalRoot = styled('div', {\n name: 'MuiModal',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.open && ownerState.exited && styles.hidden];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'fixed',\n zIndex: (theme.vars || theme).zIndex.modal,\n right: 0,\n bottom: 0,\n top: 0,\n left: 0\n}, !ownerState.open && ownerState.exited && {\n visibility: 'hidden'\n}));\nconst ModalBackdrop = styled(Backdrop, {\n name: 'MuiModal',\n slot: 'Backdrop',\n overridesResolver: (props, styles) => {\n return styles.backdrop;\n }\n})({\n zIndex: -1\n});\n\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * - [Dialog](/material-ui/api/dialog/)\n * - [Drawer](/material-ui/api/drawer/)\n * - [Menu](/material-ui/api/menu/)\n * - [Popover](/material-ui/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](/material-ui/api/dialog/) component\n * rather than directly using Modal.\n *\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n */\nconst Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {\n var _ref, _slots$root, _ref2, _slots$backdrop, _slotProps$root, _slotProps$backdrop;\n const props = useThemeProps({\n name: 'MuiModal',\n props: inProps\n });\n const {\n BackdropComponent = ModalBackdrop,\n BackdropProps,\n classes,\n className,\n closeAfterTransition = false,\n children,\n component,\n components = {},\n componentsProps = {},\n disableAutoFocus = false,\n disableEnforceFocus = false,\n disableEscapeKeyDown = false,\n disablePortal = false,\n disableRestoreFocus = false,\n disableScrollLock = false,\n hideBackdrop = false,\n keepMounted = false,\n slotProps,\n slots,\n // eslint-disable-next-line react/prop-types\n theme\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [exited, setExited] = React.useState(true);\n const commonProps = {\n closeAfterTransition,\n disableAutoFocus,\n disableEnforceFocus,\n disableEscapeKeyDown,\n disablePortal,\n disableRestoreFocus,\n disableScrollLock,\n hideBackdrop,\n keepMounted\n };\n const ownerState = _extends({}, props, commonProps, {\n exited\n });\n const RootSlot = (_ref = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : components.Root) != null ? _ref : ModalRoot;\n const BackdropSlot = (_ref2 = (_slots$backdrop = slots == null ? void 0 : slots.backdrop) != null ? _slots$backdrop : components.Backdrop) != null ? _ref2 : BackdropComponent;\n const rootSlotProps = (_slotProps$root = slotProps == null ? void 0 : slotProps.root) != null ? _slotProps$root : componentsProps.root;\n const backdropSlotProps = (_slotProps$backdrop = slotProps == null ? void 0 : slotProps.backdrop) != null ? _slotProps$backdrop : componentsProps.backdrop;\n return /*#__PURE__*/_jsx(ModalUnstyled, _extends({\n slots: {\n root: RootSlot,\n backdrop: BackdropSlot\n },\n slotProps: {\n root: () => _extends({}, resolveComponentProps(rootSlotProps, ownerState), !isHostComponent(RootSlot) && {\n as: component,\n theme\n }, {\n className: clsx(className, rootSlotProps == null ? void 0 : rootSlotProps.className, classes == null ? void 0 : classes.root, !ownerState.open && ownerState.exited && (classes == null ? void 0 : classes.hidden))\n }),\n backdrop: () => _extends({}, BackdropProps, resolveComponentProps(backdropSlotProps, ownerState), {\n className: clsx(backdropSlotProps == null ? void 0 : backdropSlotProps.className, classes == null ? void 0 : classes.backdrop)\n })\n },\n onTransitionEnter: () => setExited(false),\n onTransitionExited: () => setExited(true),\n ref: ref\n }, other, commonProps, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Modal.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 * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Backdrop`](/material-ui/api/backdrop/) element.\n * @deprecated Use `slotProps.backdrop` instead.\n */\n BackdropProps: PropTypes.object,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\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 * When set to true the Modal waits until a nested Transition is completed before closing.\n * @default false\n */\n closeAfterTransition: PropTypes.bool,\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 components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Backdrop: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n backdrop: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true`, the modal will not automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes.\n * This also works correctly with any modal children that have the `disableAutoFocus` prop.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableAutoFocus: PropTypes.bool,\n /**\n * If `true`, the modal will not prevent focus from leaving the modal while open.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableEnforceFocus: PropTypes.bool,\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * If `true`, the modal will not restore focus to previously focused element once\n * modal is hidden or unmounted.\n * @default false\n */\n disableRestoreFocus: PropTypes.bool,\n /**\n * Disable the scroll lock behavior.\n * @default false\n */\n disableScrollLock: PropTypes.bool,\n /**\n * If `true`, the backdrop is not rendered.\n * @default false\n */\n hideBackdrop: PropTypes.bool,\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Modal.\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The props used for each slot inside the Modal.\n * @default {}\n */\n slotProps: PropTypes.shape({\n backdrop: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Modal.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n backdrop: PropTypes.elementType,\n root: PropTypes.elementType\n }),\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} : void 0;\nexport default Modal;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport styleFunctionSx, { extendSxProp } from './styleFunctionSx';\nimport useTheme from './useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n themeId,\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = styled('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const _extendSxProp = extendSxProp(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);\n return /*#__PURE__*/_jsx(BoxRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme\n }, other));\n });\n return Box;\n}","import React from \"react\";\r\nimport Images from \"utils/Images.js\";\r\nimport Joining from \"utils/Joining.js\";\r\nimport Offers from \"utils/Offers.js\";\r\nimport OfferEvents from \"utils/Offer_Events.js\";\r\nimport Sharing from \"utils/Sharing.js\";\r\nimport LinkCreator from \"utils/Link_Creator.js\";\r\nimport Formatting from \"utils/Formatting.js\";\r\nimport OfferCompletionDisclaimer from \"components/offers/Offer_Completion_Disclaimer.js\";\r\nimport UserData from 'User_Data.js';\r\nimport FormGroup from \"@mui/material/FormGroup\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport Switch from \"@mui/material/Switch\";\r\nimport Platform from 'utils/Platform.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\nimport InfoModal from \"components/modals/Info_Modal\";\r\n\r\nconst configuration = require(\"configuration.json\");\r\nconst offerDisplayTypes = configuration.offer_display_types;\r\nconst platformTypes = configuration.platform_types;\r\n\r\nconst iOSPlatformType = platformTypes.ios;\r\n\r\nconst eventTypes = configuration.event_types;\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\n\r\nlet thisComponent;\r\n\r\nclass OfferDetailsPlaceholder extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n referOfferDisplayed: false,\r\n checked: false,\r\n isInfoVisible: false,\r\n manualChange: false,\r\n trackingModal: false,\r\n }\r\n thisComponent = this;\r\n }\r\n\r\n componentWillUnmount() {\r\n OfferEvents.recordOfferPageVisit();\r\n }\r\n\r\n toggleReferralCoinsDialog() {\r\n let idToToggle = document.getElementById(\"offer-details-popup-id\").value;\r\n let referralClassName = document.getElementById(idToToggle).className;\r\n if (referralClassName === \"offer-referral-content\") {\r\n document.getElementById(idToToggle).className = \"offer-referral-content visible\";\r\n }\r\n else {\r\n document.getElementById(idToToggle).className = \"offer-referral-content\";\r\n } \r\n }\r\n\r\n handleChangeSwitch = ({ target: { checked } }) => {\r\n this.setState(prev => ({ ...prev, checked, manualChange: true }));\r\n const offerStartType = checked ? 2 : 1;\r\n\r\n OfferEvents.sendEvent({\r\n offerStartType,\r\n offerID: document.getElementById(\"offer-details-id\").value,\r\n offerType: document.getElementById(\"offer-details-type\").value,\r\n eventType: eventTypes.toggle_completion_mode,\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id),\r\n });\r\n }\r\n\r\n closePopupHandler = () => {\r\n this.setState({ isInfoVisible: false, referOfferDisplayed: false, checked: false, manualChange: false });\r\n Offers.hideOfferDetails();\r\n }\r\n\r\n handleToggleTracking = () => {\r\n thisComponent.setState(prev => ({ ...prev, trackingModal: !prev.trackingModal }));\r\n }\r\n\r\n render() {\r\n const langForUrl =\r\n UserData.getItem(userDataKeys.language)?.slice(0, 2) !== 'en'\r\n ? '/' + UserData.getItem(userDataKeys.language)?.slice(0, 2)\r\n : '';\r\n let { offer } = thisComponent.props;\r\n let { checked, manualChange, referOfferDisplayed, isInfoVisible, trackingModal } = thisComponent.state;\r\n let multiSteps = (offer && JSON.parse(offer.multiSteps || 0)),\r\n partiallyCompleted = offer?.partiallyCompleted,\r\n offerStartType = 1,\r\n displayType = offer?.displayType,\r\n allowsUsableAndCompetition = offer?.allowsUsableAndCompetition,\r\n previousUserStartModeChoice = offer?.previousUserStartModeChoice,\r\n coins = offer?.coins,\r\n prefixCpx = offer?.uniqueID.substring(0, 3) === 'cpx',\r\n coinsReferral = offer?.coinsReferral, \r\n coins2ndGenReferral = offer?.coins2ndGenReferral, \r\n coins3rdGenReferral = offer?.coins3rdGenReferral,\r\n coinsCompetition = offer?.coinsCompetition,\r\n coinsReferralCompetition = offer?.coinsReferralCompetition,\r\n coins2ndGenReferralCompetition = offer?.coins2ndGenReferralCompetition,\r\n coins3rdGenReferralCompetition = offer?.coins3rdGenReferralCompetition,\r\n newCoins = offer?.newCoins,\r\n newCoinsReferral = offer?.newCoinsReferral,\r\n newCoins2ndGenReferral = offer?.newCoins2ndGenReferral,\r\n newCoins3rdGenReferral = offer?.newCoins3rdGenReferral,\r\n newCoinsCompetition = offer?.newCoinsCompetition,\r\n newCoinsReferralCompetition = offer?.newCoinsReferralCompetition,\r\n newCoins2ndGenReferralCompetition = offer?.newCoins2ndGenReferralCompetition,\r\n newCoins3rdGenReferralCompetition = offer?.newCoins3rdGenReferralCompetition,\r\n isPercentage = offer?.isPercentage,\r\n isSystem = offer?.isSystem,\r\n platform = Platform.getPlatformName(),\r\n givesBonusToReferrals = offer?.givesBonusToReferrals;\r\n\r\n if (manualChange) {\r\n if (offer && allowsUsableAndCompetition) {\r\n if (checked) {\r\n offerStartType = 2;\r\n if (displayType === offerDisplayTypes.hot) {\r\n coins = newCoinsCompetition;\r\n coinsReferral = newCoinsReferralCompetition;\r\n coins2ndGenReferral = newCoins2ndGenReferralCompetition;\r\n coins3rdGenReferral = newCoins3rdGenReferralCompetition;\r\n }\r\n else if (displayType === offerDisplayTypes.x2) {\r\n coins = coinsCompetition * 2;\r\n coinsReferral = coinsReferralCompetition * 2;\r\n coins2ndGenReferral = coins2ndGenReferralCompetition * 2;\r\n coins3rdGenReferral = coins3rdGenReferralCompetition * 2;\r\n }\r\n else {\r\n coins = coinsCompetition;\r\n coinsReferral = coinsReferralCompetition;\r\n coins2ndGenReferral = coins2ndGenReferralCompetition;\r\n coins3rdGenReferral = coins3rdGenReferralCompetition;\r\n }\r\n }\r\n else {\r\n offerStartType = 1;\r\n if (displayType === offerDisplayTypes.hot) {\r\n coins = newCoins;\r\n coinsReferral = newCoinsReferral;\r\n coins2ndGenReferral = newCoins2ndGenReferral;\r\n coins3rdGenReferral = newCoins3rdGenReferral;\r\n }\r\n else if (displayType === offerDisplayTypes.x2) {\r\n coins = coins * 2;\r\n coinsReferral = coinsReferral * 2;\r\n coins2ndGenReferral = coins2ndGenReferral * 2;\r\n coins3rdGenReferral = coins3rdGenReferral * 2;\r\n }\r\n }\r\n const referralsAmountKey = isPercentage ? \"treatcoins_percentage_amount_label\" : 'treatcoins_amount_label';\r\n\r\n const coinsElement = document.getElementById('offer-data-button');\r\n\r\n UserData.setItem(userDataKeys.offer_coins_amount, coins);\r\n\r\n coinsElement.innerHTML = Formatting.format(\r\n Content.getValue(multiSteps ? \"earn_up_to_amount_treat_coins\" : \"earn_amount_treat_coins\"),\r\n ['(coins)'],\r\n [(prefixCpx ? '1 - ' : '') +Formatting.formatTreatCoinAmount(coins + (isPercentage ? '%' : ''))]\r\n );\r\n if (givesBonusToReferrals) {\r\n const coinsReferralElement = document.getElementById(\"offer-details-coins-referral\");\r\n const coins2ndGenReferralElement = document.getElementById(\"offer-details-coins-2nd-gen-referral\");\r\n const coins3rdGenReferralElement = document.getElementById(\"offer-details-coins-3rd-gen-referral\");\r\n\r\n coinsReferralElement.innerHTML = Formatting.format(Content.getValue(referralsAmountKey), [\"(amount)\"], [Formatting.formatTreatCoinAmount(coinsReferral)]);\r\n coins2ndGenReferralElement.innerHTML = Formatting.format(Content.getValue(referralsAmountKey), [\"(amount)\"], [Formatting.formatTreatCoinAmount(coins2ndGenReferral)]);\r\n coins3rdGenReferralElement.innerHTML = Formatting.format(Content.getValue(referralsAmountKey), [\"(amount)\"], [Formatting.formatTreatCoinAmount(coins3rdGenReferral)]);\r\n }\r\n }\r\n }\r\n else {\r\n if (previousUserStartModeChoice === 2) {\r\n offerStartType = 2;\r\n checked = true;\r\n }\r\n if (!allowsUsableAndCompetition) {\r\n offerStartType = 2;\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \"Offer\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n appName\r\n
    \r\n
    \r\n offerDescription\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n multiSteps ?\r\n (\r\n
    \r\n
    \r\n
    \r\n { Content.getValue(\"step\") }\r\n
    \r\n
    \r\n { Content.getValue(\"treat_coins_earned\") }\r\n
    \r\n
    \r\n { Content.getValue(\"completed\") }\r\n
    \r\n
    \r\n {\r\n multiSteps.map(({ id, desc, coins, isCompleted, stepNumber }) => (\r\n
    \r\n
    \r\n
    \r\n
    \r\n { stepNumber + \".\" }\r\n { desc }\r\n
    \r\n
    \r\n
    \r\n { coins }\r\n
    \r\n
    \r\n
    \r\n { \r\n isCompleted ?\r\n {Content.getValue(\"green_checkbox\")}\r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n ))\r\n }\r\n
    \r\n ) :\r\n null\r\n }\r\n\r\n
    \r\n
    \r\n

    {Content.getValue(\"usable_competition\")}

    \r\n \r\n }\r\n />\r\n \r\n
    \r\n

    {Content.getValue(\"competition_only\")}

    \r\n Offer info help thisComponent.setState(prev => ({ ...prev, isInfoVisible: !prev.isInfoVisible}) )}\r\n /> \r\n
    \r\n
    \r\n
    \r\n {\r\n isInfoVisible ?\r\n (\r\n
    \r\n { \r\n !multiSteps ?\r\n Content.getValue(\"offer_details_popup_info_text\") :\r\n !partiallyCompleted ?\r\n Content.getValue(\"offer_details_popup_info_text_multi\") :\r\n Content.getValue(\"offer_details_popup_info_text_multi_partially\") \r\n }\r\n
    \r\n ) : \r\n ( null )\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n if (UserData.getItem(userDataKeys.jwt_token) === null) {\r\n Joining.showPopup();\r\n } else {\r\n let link = document.getElementById(\"offer-details-url\").value;\r\n let redirectURLAfterEventRecorded = null;\r\n let openInNewTab = false;\r\n let clientRedirect = false;\r\n if (window.location.pathname === `${langForUrl}${link}`) {\r\n thisComponent.closePopupHandler();\r\n } else if (link === configuration.system_offer_urls.refer_friends) {\r\n document.getElementById('one-two-treat-button').click();\r\n thisComponent.closePopupHandler();\r\n } else if (link === configuration.system_offer_urls.connect_to_discord) {\r\n link = LinkCreator.createDiscordLink();\r\n clientRedirect = true;\r\n window.location.href = link;\r\n } else if (link === configuration.system_offer_urls.connect_to_bot) {\r\n link = LinkCreator.createBotLink();\r\n clientRedirect = true;\r\n window.location.href = link;\r\n } \r\n else {\r\n if (!isSystem) {\r\n redirectURLAfterEventRecorded = link;\r\n openInNewTab = true;\r\n }\r\n else {\r\n redirectURLAfterEventRecorded = `${langForUrl}${link}`;\r\n openInNewTab = false;\r\n }\r\n }\r\n if (!clientRedirect) {\r\n OfferEvents.sendEvent({\r\n offerStartType,\r\n offerID: offer.ID,\r\n eventType: eventTypes.clickthrough,\r\n appName: offer.appName,\r\n category: offer.category,\r\n offerType: offer.offerType,\r\n UserPayout: Number(UserData.getItem(userDataKeys.offer_coins_amount)),\r\n isFree: offer.isFree,\r\n platformName: Platform.getPlatformName(),\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id),\r\n uniqueID: offer.uniqueID,\r\n url: offer.url,\r\n providerID: offer.providerID,\r\n isSystem: offer.isSystem,\r\n },\r\n redirectURLAfterEventRecorded,\r\n openInNewTab\r\n );\r\n }\r\n }\r\n }}\r\n >\r\n
    \r\n \r\n \r\n <>\r\n

    {Content.getValue(\"offers_refer_popup_title\")}

    \r\n

    {Content.getValue(\"offers_referral_coins_popup_text\").first_generation}

    \r\n

    {Content.getValue(\"offers_referral_coins_popup_text\").second_generation}

    \r\n

    {Content.getValue(\"offers_referral_coins_popup_text\").third_generation}

    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {platform === iOSPlatformType &&\r\n\r\n

    \r\n {Content.getValue('offer_tracking_desc_1')}\r\n \r\n {Content.getValue('offer_tracking_desc_link')}\r\n \r\n {Content.getValue('offer_tracking_desc_2')}\r\n

    \r\n }\r\n \r\n
    {Content.getValue(\"offer_what_to_do_label\")}
    \r\n
    \r\n
    \r\n
    \r\n {\r\n Mixpanel.trackByArgs(mixpanelEvents.offers_policy_click, {})\r\n return Offers.displayOffersPolicy()\r\n }}>{Content.getValue(\"offers_policy_label\")}\r\n
    \r\n
    \r\n
    document.getElementById(\"share-teaser-container\").className = \"share-teaser-container hidden\"} >\r\n \"Refer\r\n
    {Content.getValue(\"share_bubble_cta\")}
    \r\n
    \r\n \"shareOffer\" {\r\n let offerID = document.getElementById('offer-details-unique-offer-id').value;\r\n let userID = document.getElementById('offer-details-unique-user-id').value;\r\n let offerShareLink = LinkCreator.createOfferShareLink(offerID, userID);\r\n let appName = document.getElementById(\"offer-data-app-name\").innerHTML;\r\n let offerDescription = document.getElementById(\"offer-data-description\").innerHTML;\r\n await Sharing.shareLink(\r\n {\r\n title: Content.getValue(\"check_offer_on_treatcoin\"),\r\n text: appName + \": \" + offerDescription,\r\n url: offerShareLink,\r\n fallbackTitle: Content.getValue(\"share_offer_fallback_title\"),\r\n fallbackMessage: Content.getValue(\"share_offer_fallback_text\"),\r\n detailsImageURL: offer?.detailsImageURL \r\n }\r\n );\r\n }\r\n } width=\"52\" height=\"52\" src={Images.imageURL('share-offer.png')} />\r\n
    \r\n {trackingModal &&\r\n < InfoModal\r\n isOpened={trackingModal}\r\n closeModal={thisComponent.handleToggleTracking}\r\n >\r\n
    \r\n

    {Content.getValue('offer_tracking_modal_heading')}

    \r\n
      \r\n
    1. {Content.getValue('offer_tracking_modal_item_1')}
    2. \r\n
    3. {Content.getValue('offer_tracking_modal_item_2')}
    4. \r\n
    \r\n
    \r\n \"\"\r\n \"\"\r\n
    \r\n
    \r\n \r\n }\r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default OfferDetailsPlaceholder;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Alerts from 'utils/Alerts.js';\r\nimport Content from 'utils/Content.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const subscriptionSettingsURL = backendURLs.subscriptionSettingsURL;\r\n//const updateSubscriptionSettingsURL = backendURLs.updateSubscriptionSettingsURL;\r\n\r\nlet thisComponent;\r\n\r\nclass SubscriptionSettings extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n //this.loadURL = subscriptionSettingsURL;\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n subscriptionSettings: null\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n componentDidMount() {\r\n const req = ApiFacade.subscriptionSettings();\r\n req.then(\r\n function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n subscriptionSettings: result.subscriptionSettings\r\n });\r\n } else if (res.unauthorized){\r\n thisComponent.setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n );\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, isRestricted, subscriptionSettings } = this.state;\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (isRestricted) {\r\n return (null);\r\n } else if (!isLoaded) {\r\n return
    {Backend.loadBackendMessages().loadingMessage}
    ;\r\n } else {\r\n return (\r\n
    \r\n
    \r\n
    \r\n {\r\n (subscriptionSettings.receiveNotificationsTelegram !== undefined && subscriptionSettings.receiveNotificationsEmail === undefined) ?\r\n (\r\n
    \r\n

    {Content.getValue(\"subscription_settings_telegram\")}

    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ) :\r\n null\r\n }\r\n {\r\n (subscriptionSettings.receiveNotificationsEmail !== undefined && subscriptionSettings.receiveNotificationsTelegram === undefined) ?\r\n (\r\n
    \r\n

    {Content.getValue(\"subscription_settings_email\")}

    \r\n
    \r\n \r\n
    \r\n
    \r\n ) :\r\n null\r\n }\r\n {\r\n (subscriptionSettings.receiveNotificationsEmail !== undefined && subscriptionSettings.receiveNotificationsTelegram !== undefined) ?\r\n (<>\r\n
    \r\n

    {Content.getValue(\"subscription_settings_email\")}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"subscription_settings_telegram\")}

    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ) :\r\n null\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n\r\n static getCheckedValue(elementId){\r\n let result = null;\r\n const input = document.getElementById(elementId);\r\n if (input !== null) {\r\n result = input.checked;\r\n }\r\n return result;\r\n } \r\n\r\n updateSubscriptionSettings() {\r\n\r\n\r\n const receiveNotificationsTelegram = SubscriptionSettings.getCheckedValue('receiveNotificationsTelegram');\r\n const receiveOfferCompletionTelegram = SubscriptionSettings.getCheckedValue('receiveOfferCompletionTelegram');\r\n const receiveReferralOfferCompletionTelegram = SubscriptionSettings.getCheckedValue('receiveReferralOfferCompletionTelegram');\r\n const receiveReferralRegistrationTelegram = SubscriptionSettings.getCheckedValue('receiveReferralRegistrationTelegram');\r\n const receiveNotificationsEmail = SubscriptionSettings.getCheckedValue('receiveNotificationsEmail');\r\n\r\n const req = ApiFacade.updateSubscriptionSettings(receiveNotificationsTelegram,\r\n receiveOfferCompletionTelegram,\r\n receiveReferralOfferCompletionTelegram,\r\n receiveReferralRegistrationTelegram,\r\n receiveNotificationsEmail);\r\n\r\n req.then( function (res) {\r\n if (res.ok || res.unauthorized){\r\n let result = res.response;\r\n if (res.ok) {\r\n Alerts.showSuccessAlert(Content.getValue(\"subscription_settings_updated\"));\r\n }\r\n else {\r\n Alerts.showErrorAlert(result.message);\r\n }\r\n }\r\n else {\r\n Alerts.showErrorAlert(Backend.loadBackendMessages().errorMessage);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default SubscriptionSettings;","import { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '../className';\nimport { createTheme } from '../styles';\nimport THEME_ID from '../styles/identifier';\nconst defaultTheme = createTheme();\nconst Box = createBox({\n themeId: THEME_ID,\n defaultTheme,\n defaultClassName: 'MuiBox-root',\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.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 * @ignore\n */\n children: PropTypes.node,\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 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} : void 0;\nexport default Box;","import CloseIcon from '@mui/icons-material/Close';\r\nimport { Box, Modal } from '@mui/material';\r\n\r\nconst style = {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: '75%',\r\n minHeight: '600px',\r\n height: '75%',\r\n bgcolor: '#ffffff',\r\n borderRadius: '32px',\r\n boxShadow: 24,\r\n p: 4,\r\n fontFamily: 'Poppins',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n};\r\n\r\n\r\n\r\nconst InfoModal = ({ isOpened, closeModal, children }) => {\r\n return (\r\n <>\r\n\r\n {isOpened && (\r\n {\r\n closeModal();\r\n }}\r\n aria-labelledby=\"modal-modal-title\"\r\n aria-describedby=\"modal-modal-description\"\r\n >\r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default InfoModal;","import ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport AboutText from \"components/text/About_Text.js\";\r\nimport MetaTags from \"components/seo/Meta_Tags.js\";\r\nimport Footer from \"components/sections/Footer.js\";\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect } from \"react\";\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\n\r\nconst AboutUs = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.about_us});\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"meta_content\").about_us.title}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default AboutUs;","import React from 'react';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport jwt from 'jwt-decode';\r\nimport Sharing from 'utils/Sharing.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass AccountDetails extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n isCopiedWebsite: false,\r\n isCopiedTelegram: false,\r\n isCopiedUniqueID: false\r\n };\r\n }\r\n\r\n render() {\r\n const telegramReferralLink = UserData.getItem(userDataKeys.telegram_referral_link);\r\n const websiteReferralLink = UserData.getItem(userDataKeys.website_referral_link);\r\n const uniqueUserID = UserData.getItem(userDataKeys.jwt_token) ? jwt(UserData.getItem(userDataKeys.jwt_token)).uniqueUserID : '';\r\n\r\n const telegramReferralLinkText = Content.getValue(\"telegram_referral_link_text\");\r\n const webReferralLinkText = Content.getValue(\"web_referral_link_text\");\r\n return (\r\n
    \r\n
    \r\n {Content.getValue(\"username_label\")}\r\n {UserData.getItem(userDataKeys.username)}\r\n
    \r\n
    \r\n\r\n
    \r\n {telegramReferralLinkText}\r\n {\r\n await Sharing.copyToClipboard(telegramReferralLink, Content.getValue(\"copy_to_clipboard_fallback_title\"), Content.getValue(\"copy_to_clipboard_fallback_text\"));\r\n this.setState(prev => ({ ...prev, isCopiedTelegram: true }));\r\n setTimeout(() => {\r\n this.setState(prev => ({ ...prev, isCopiedTelegram: false }));\r\n }, 1000);\r\n }}\r\n target='_blank'\r\n rel='noreferrer'\r\n className=\"account-details-link\"\r\n >\r\n {telegramReferralLink}\r\n \r\n {this.state.isCopiedTelegram ?\r\n
    {Content.getValue('copied_to_clipboard')}
    : <>}\r\n
    \r\n
    \r\n {webReferralLinkText}\r\n {\r\n await Sharing.copyToClipboard(websiteReferralLink, Content.getValue(\"copy_to_clipboard_fallback_title\"), Content.getValue(\"copy_to_clipboard_fallback_text\"));\r\n this.setState(prev => ({ ...prev, isCopiedWebsite: true }));\r\n setTimeout(() => {\r\n this.setState(prev => ({ ...prev, isCopiedWebsite: false }));\r\n }, 1000);\r\n }}\r\n target='_blank'\r\n rel='noreferrer'\r\n className=\"account-details-link button-hidden\"\r\n >\r\n {websiteReferralLink}\r\n \r\n {this.state.isCopiedWebsite ?\r\n
    {Content.getValue('copied_to_clipboard')}
    : <>}\r\n
    \r\n
    \r\n
    \r\n {Content.getValue(\"unique_user_id_label\")}\r\n {\r\n await Sharing.copyToClipboard(uniqueUserID, Content.getValue(\"copy_to_clipboard_fallback_title\"), Content.getValue(\"copy_to_clipboard_fallback_text\"));\r\n this.setState(prev => ({ ...prev, isCopiedUniqueID: true }));\r\n setTimeout(() => {\r\n this.setState(prev => ({ ...prev, isCopiedUniqueID: false }));\r\n }, 1000);\r\n }}\r\n >{uniqueUserID}\r\n \r\n {this.state.isCopiedUniqueID ?\r\n
    {Content.getValue('copied_to_clipboard')}
    : <>}\r\n
    \r\n\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default AccountDetails;","import Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Images from 'utils/Images.js';\r\nimport Sharing from 'utils/Sharing.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst globalConf = require('global_conf.json');\r\nconst frontendHost = globalConf.website_connection.frontend_host;\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nclass Alerts {\r\n\r\n static showNftsAlert() {\r\n\r\n let swalHTML = '\"Nfts';\r\n swalHTML += \"

    \" + Content.getValue(\"nfts_alert_text\") + \"

    \";\r\n\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"nfts_alert_title\") + '

    ',\r\n html: swalHTML,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'nfts-confirm-button',\r\n closeButton: 'swal2-nfts-close'\r\n }\r\n });\r\n }\r\n\r\n static introSurveyLegitimacyWarning() {\r\n\r\n const playgroundUrl = Content.getValue(\"menu_options\").playground.url;\r\n\r\n let swalHTML = '\"Legitimacy';\r\n swalHTML += \"

    \" + Content.getValue(\"intro_survey_legitimacy_alert_text\") + \"

    \";\r\n\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"intro_survey_legitimacy_alert_title\") + '

    ',\r\n html: swalHTML,\r\n background: '#141629',\r\n showCloseButton: false,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n allowOutsideClick: false,\r\n customClass: {\r\n confirmButton: 'legitimacy-confirm-button',\r\n closeButton: 'swal2-legitimacy-close'\r\n }\r\n }).then(res => res.isConfirmed || res.isDenied || res.isDismissed ? window.location.replace(playgroundUrl) : null);\r\n\r\n }\r\n\r\n static displayDailyEarningCompletedPopup(date) {\r\n const imageFileName = 'daily-earning-plan-finished.jpg';\r\n\r\n const description = Formatting.format(Content.getValue(\"daily_earning_plan_finished_text\"), [\"(date)\"], [date]);\r\n const sharingDescription = Formatting.format(Content.getValue(\"daily_earning_plan_finished_share_text\"), [\"(date)\"], [date]);\r\n\r\n let swalHTML = '
    ';\r\n swalHTML += '
    ';\r\n swalHTML += '

    ' + Content.getValue(\"daily_earning_plan\") + '

    ';\r\n swalHTML += '

    ' + description + '

    ';\r\n swalHTML += '
    ';\r\n\r\n MySwal.fire({\r\n html: swalHTML,\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: true,\r\n confirmButtonText: Content.getValue(\"share_with_friends\"),\r\n cancelButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'daily-earning-confirm-button',\r\n cancelButton: 'daily-earning-cancel-button',\r\n }\r\n })\r\n .then(async res => {\r\n if (res.isConfirmed) {\r\n await Sharing.shareLink(\r\n {\r\n title: Content.getValue(\"daily_earning_plan_finished\"),\r\n text: sharingDescription,\r\n url: frontendHost,\r\n fallbackTitle: Content.getValue(\"share_daily_plan_fallback_title\"),\r\n fallbackMessage: sharingDescription,\r\n detailsImageURL: Images.imageURL(imageFileName)\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n static displayWithdrawalApprovedPopup(amount) {\r\n const imageFileName = 'daily-earning-plan-finished.jpg';\r\n\r\n const description = Formatting.format(Content.getValue(\"withdrawal_approved_popup\"), [\"(amount)\"], [Formatting.formatUSDAmount(amount, true)]);\r\n\r\n let swalHTML = '
    '; // use custom classes\r\n swalHTML += '
    ';\r\n swalHTML += '

    ' + description + '

    '; // use custom classes\r\n swalHTML += '
    ';\r\n\r\n MySwal.fire({\r\n html: swalHTML,\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: true,\r\n confirmButtonText: Content.getValue(\"share_with_friends\"),\r\n cancelButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'withdrawal-approved-confirm-button',\r\n cancelButton: 'withdrawal-approved-cancel-button',\r\n }\r\n }).then(async res => {\r\n if (res.isConfirmed) {\r\n await Sharing.shareLink(\r\n {\r\n title: Content.getValue(\"withdrawal_approved_title\"),\r\n text: description,\r\n url: frontendHost,\r\n fallbackTitle: Content.getValue(\"withdrawal_approved_fallback_title\"),\r\n fallbackMessage: description,\r\n detailsImageURL: Images.imageURL(imageFileName)\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n static showSuccessAlert(message) {\r\n MySwal.fire({\r\n html: '

    ' + message + '

    ',\r\n background: '#5FC88F',\r\n showCloseButton: true,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n timer: 3000,\r\n customClass: {\r\n closeButton: 'successful-alert'\r\n }\r\n });\r\n }\r\n\r\n static showErrorAlert(message) {\r\n MySwal.fire({\r\n html: '

    ' + message + '

    ',\r\n background: '#EC1717',\r\n showCloseButton: true,\r\n showCancelButton: false,\r\n showConfirmButton: false,\r\n timer: 3000,\r\n customClass: {\r\n closeButton: 'error-alert'\r\n }\r\n });\r\n }\r\n\r\n}\r\n\r\nexport default Alerts;","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import Content from 'utils/Content.js';\r\nconst configuration = require('configuration.json');\r\nconst businessLogic = configuration.business_logic;\r\n\r\nconst minimumPasswordLength = businessLogic.minimum_password_length;\r\n\r\nclass DataValidator {\r\n\r\n static isValidEmail(email) {\r\n const emailRegex = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n let valid = emailRegex.test(email);\r\n return valid;\r\n }\r\n\r\n static isValidPassword(password) {\r\n let valid;\r\n let error;\r\n if (password.length < minimumPasswordLength) {\r\n valid = false;\r\n error = Content.getValue(\"password_no_minimum_requirements_message\");\r\n }\r\n else if (password === password.toLowerCase()) {\r\n valid = false;\r\n error = Content.getValue(\"password_no_minimum_requirements_message\");\r\n }\r\n else if(/\\d/.test(password) === false) {\r\n valid = false;\r\n error = Content.getValue(\"password_no_minimum_requirements_message\");\r\n }\r\n else if (/[`!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?~]/.test(password) === false) {\r\n valid = false;\r\n error = Content.getValue(\"password_no_minimum_requirements_message\");\r\n }\r\n else {\r\n valid = true;\r\n error = null;\r\n }\r\n return { valid: valid, error: error };\r\n }\r\n\r\n static isValidUsername(username) {\r\n let usernameRegex = /^[A-Za-z0-9_]{6,20}$/;\r\n let valid = (username !== undefined && username !== null && usernameRegex.test(username));\r\n return valid;\r\n }\r\n\r\n static isValidFullName(fullName) {\r\n let userFullNameRegex = /^[a-zA-Z]{2,40} [a-zA-Z]{2,40}$/;\r\n let valid = (fullName !== undefined && fullName !== null && userFullNameRegex.test(fullName));\r\n return valid;\r\n } \r\n\r\n static isAdultAge(birthDateString) {\r\n\r\n let today = new Date();\r\n let birthDate = new Date(birthDateString);\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n let m = today.getMonth() - birthDate.getMonth();\r\n if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n return (age >= 18 && age <= 99);\r\n }\r\n\r\n static isValidTetherWallet(walletAddress) {\r\n const tetherWalletRegex = /^T[A-Za-z1-9]{33}$/;\r\n let valid = tetherWalletRegex.test(walletAddress);\r\n return valid;\r\n }\r\n\r\n static hasDuplicatesArrObj(arrayOfObjects) {\r\n const names = new Set();\r\n\r\n console.log(names);\r\n \r\n for (const obj of arrayOfObjects) {\r\n if (names.has(obj.file.name)) {\r\n return true; \r\n }\r\n names.add(obj.file.name);\r\n }\r\n \r\n return false; \r\n }\r\n\r\n}\r\n\r\nexport default DataValidator;","import React from 'react';\r\n\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport DataValidator from 'utils/Data_Validator.js';\r\nimport PasswordRequirements from 'components/static/Password_Requirements.js';\r\nimport Alerts from 'utils/Alerts.js';\r\nimport Content from 'utils/Content.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const changePasswordURL = backendURLs.changePasswordURL;\r\n\r\nlet thisComponent;\r\n\r\n\r\nclass AccountSecuritySettings extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n oldPasswordError: null,\r\n passwordError: null,\r\n confirmPasswordError: null,\r\n updating: false\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n startUpdate() {\r\n thisComponent.setState({\r\n updating: true\r\n });\r\n }\r\n\r\n stopUpdate() {\r\n thisComponent.setState({\r\n updating: false\r\n });\r\n }\r\n\r\n changePassword() {\r\n \r\n let oldPasswordInput = document.getElementById('old-password');\r\n let passwordInput = document.getElementById('password');\r\n let confirmPasswordInput = document.getElementById('confirm-password');\r\n\r\n let oldPassword = oldPasswordInput.value;\r\n let password = passwordInput.value;\r\n let confirmPassword = confirmPasswordInput.value;\r\n\r\n if (oldPassword === '') {\r\n oldPasswordInput.focus();\r\n return;\r\n }\r\n\r\n if (password === '') {\r\n passwordInput.focus();\r\n return;\r\n }\r\n\r\n if (confirmPassword === '') {\r\n confirmPasswordInput.focus();\r\n return; \r\n }\r\n\r\n if (password !== confirmPassword) {\r\n thisComponent.setState({\r\n confirmPasswordError: Content.getValue(\"passwords_dont_match_message\"),\r\n });\r\n setTimeout(function () {\r\n thisComponent.setState({\r\n confirmPasswordError: null,\r\n });\r\n },\r\n 3000);\r\n return;\r\n }\r\n\r\n let passwordCheck = DataValidator.isValidPassword(password);\r\n\r\n if(!passwordCheck.valid) {\r\n thisComponent.setState({\r\n passwordError: passwordCheck.error,\r\n });\r\n setTimeout(function () {\r\n thisComponent.setState({\r\n passwordError: null,\r\n });\r\n },\r\n 3000);\r\n return;\r\n }\r\n\r\n const req = ApiFacade.changePassword(oldPassword, password);\r\n req.then(function(res){\r\n if (res.ok || res.unauthorized){\r\n let result = res.response;\r\n if (res.ok) {\r\n Alerts.showSuccessAlert(Content.getValue(\"password_changed\"));\r\n }\r\n else {\r\n Alerts.showErrorAlert(Content.getValue(result.message));\r\n }\r\n }\r\n else {\r\n Alerts.showErrorAlert(Backend.loadBackendMessages().errorMessage);\r\n }\r\n })\r\n }\r\n\r\n cancelChange() {\r\n thisComponent.setState({\r\n updating: false,\r\n passwordError: null,\r\n confirmPasswordError: null\r\n });\r\n }\r\n\r\n render() {\r\n const { oldPasswordError, passwordError, confirmPasswordError, updating } = this.state;\r\n if (!updating) {\r\n return
    \r\n
    \r\n } else {\r\n return
    \r\n

    Account security

    \r\n \r\n
    {oldPasswordError !== null ? oldPasswordError: 'Old password result'}
    \r\n \r\n
    {passwordError !== null ? passwordError: 'Password change result'}
    \r\n \r\n
    {confirmPasswordError !== null ? confirmPasswordError: 'Password change result'}
    \r\n \r\n \r\n \r\n
    \r\n }\r\n }\r\n}\r\n\r\nexport default AccountSecuritySettings;","import React from 'react';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\n\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\n//import Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const deleteAccountURL = backendURLs.deleteAccountURL;\r\n//const myCoinsURL = backendURLs.myCoinsURL;\r\n\r\nlet thisComponent;\r\n\r\n\r\n\r\nclass AccountDeletion extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n thisComponent = this;\r\n this.state = {\r\n lifetimeCoins: null,\r\n updating: false\r\n }\r\n }\r\n\r\n startUpdate() {\r\n thisComponent.setState({\r\n updating: true\r\n });\r\n }\r\n\r\n stopUpdate() {\r\n thisComponent.setState({\r\n updating: false\r\n });\r\n }\r\n\r\n startAccountDeletion() {\r\n\r\n //const { lifetimeCoins } = thisComponent.state;\r\n\r\n let deleteRobotIconURL = Images.imageURL('robot-delete-account-icon.png');\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"delete_your_account_question\") + '

    ',\r\n html: '

    ' + Content.getValue(\"delete_your_account_question_text\") + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: true,\r\n reverseButtons: true,\r\n confirmButtonText: Content.getValue(\"delete_account_confirm_button_text\"),\r\n cancelButtonText: Content.getValue(\"delete_account_cancel_button_text\"),\r\n customClass: {\r\n popup: 'delete-account-container',\r\n cancelButton: 'delete-account-cancel-button',\r\n confirmButton: 'delete-account-confirm-button',\r\n actions: 'delete-account-actions'\r\n }\r\n }).then((result) => {\r\n if (result.isConfirmed) thisComponent.deleteAccount();\r\n });\r\n\r\n }\r\n\r\n deleteAccount() {\r\n\r\n const req = ApiFacade.deleteAccount();\r\n req.then(function (res) {\r\n let updateResultDiv = document.getElementById('updateResultDivAccountSettings');\r\n if (res.ok){\r\n //let result = res.response;\r\n let message = Content.getValue(\"account_successfully_deleted\");\r\n updateResultDiv.className = 'success-message account-settings';\r\n updateResultDiv.innerHTML = message;\r\n setTimeout(function () {\r\n Backend.logOut();\r\n },\r\n 1500);\r\n } else {\r\n updateResultDiv.className = 'error-message account-settings';\r\n updateResultDiv.innerHTML = Backend.loadBackendMessages().errorMessage;\r\n }\r\n\r\n setTimeout(function () {\r\n updateResultDiv.innerHTML = '';\r\n },\r\n 2000);\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n let req = ApiFacade.myCoins();\r\n req.then(async function (res) {\r\n if (res.ok) {\r\n let result = res.response;\r\n thisComponent.setState({\r\n lifetimeCoins: result.lifetimeCoins\r\n });\r\n }\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n render() {\r\n return
    \r\n \r\n
    \r\n
    \r\n }\r\n}\r\n\r\nexport default AccountDeletion;","import Content from 'utils/Content.js';\r\n\r\nconst PasswordRequirements = (props) => {\r\n let infoClassName;\r\n let containerClassName;\r\n if (props.mode === 'forgot' || props.mode === 'register') {\r\n infoClassName = 'password-requirement light-mode';\r\n containerClassName = 'password-requirements-container forgot';\r\n }\r\n else {\r\n containerClassName = 'password-requirements-container';\r\n infoClassName = 'password-requirement';\r\n }\r\n return
    \r\n

    {Content.getValue(\"password_requirements_label\")}

    \r\n

    {Content.getValue(\"password_requirement_length\")}

    \r\n

    {Content.getValue(\"password_requirement_uppercase\")}

    \r\n

    {Content.getValue(\"password_requirement_lowercase\")}

    \r\n

    {Content.getValue(\"password_requirement_digit\")}

    \r\n

    {Content.getValue(\"password_requirement_special\")}

    \r\n
    \r\n}\r\n\r\nexport default PasswordRequirements;","import React from 'react';\r\nimport Marquee from 'react-fast-marquee';\r\n\r\nexport default function LiveNews({ news }) {\r\n const isHomepage = document.querySelector('#home-second-section');\r\n\r\n return news ?\r\n (\r\n
    \r\n
    \r\n \r\n {\r\n news.map((item, idx) => (\r\n

    \r\n {item}\r\n { '•' }\r\n

    \r\n ))\r\n }\r\n {\r\n news.map((item, idx) => (\r\n

    \r\n {item}\r\n { '•' }\r\n

    \r\n ))\r\n }\r\n \r\n \r\n
    \r\n
    \r\n ) :\r\n null\r\n}\r\n","import React, { useState, useMemo, useEffect } from 'react';\r\nimport LiveNews from 'components/live_news/Live_News.js';\r\nimport UserData from 'User_Data.js';\r\nimport { memo } from 'react';\r\n\r\nconst configuration = require('configuration.json');\r\nconst broadcastChannels = configuration.broadcast_channels;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nfunction NewsTrack() {\r\n const liveNewsCheck = JSON.parse(UserData.getItem(userDataKeys.receive_live_news));\r\n const [isNewsVisible, setIsNewsVisible] = useState(Boolean(liveNewsCheck));\r\n const [news, setNews] = useState(null);\r\n\r\n let liveNewsContent = UserData.getItem(userDataKeys.live_news_content);\r\n if (liveNewsContent && news === null) {\r\n setIsNewsVisible(true);\r\n setNews(liveNewsContent.split(\",\"));\r\n }\r\n\r\n const channel = useMemo(() => new BroadcastChannel(broadcastChannels.news_channel), []);\r\n const handleEvent = (event) => {\r\n try {\r\n const news = event.data;\r\n if (news && news.length > 0) {\r\n setIsNewsVisible(true);\r\n setNews(news);\r\n }\r\n else {\r\n setNews([]);\r\n setIsNewsVisible(false);\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n channel.removeEventListener('message', handleEvent);\r\n };\r\n }, []);\r\n\r\n if (!news) {\r\n channel.addEventListener('message', handleEvent);\r\n }\r\n\r\n return isNewsVisible || (news && news.length > 0) ? : null;\r\n}\r\n\r\nexport default memo(NewsTrack);","import React, { useEffect, useState } from 'react';\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport AccountDetails from 'components/data/Account_Details.js';\r\nimport SubscriptionSettings from 'components/forms/Subscription_Settings.js';\r\nimport AccountSecuritySettings from 'components/forms/Account_Security_Settings.js';\r\nimport AccountDeletion from 'components/forms/Account_Deletion.js';\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport NewsTrack from 'components/live_news/News_Track.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\nimport UserData from 'User_Data.js';\r\n\r\nimport 'design/account_settings.css';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\nconst userDataKeys = configuration.user_data_keys;\r\nlet jwtToken = UserData.getItem(userDataKeys.jwt_token)\r\n\r\n\r\nconst AccountSettings = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const [links, setLinks] = useState({\r\n telegramReferralLink: '',\r\n websiteReferralLink: '',\r\n referTeaserDisplayed: '',\r\n });\r\n const [authorized, setAuthorized] = useState(Boolean(jwtToken));\r\n\r\n useEffect(() => {\r\n if (authorized) {\r\n UserData.removeItem(userDataKeys.account_settings);\r\n }\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.account_settings });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n setLinks(values)} />\r\n } \r\n \r\n {\r\n } \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.account_settings.title}

    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default AccountSettings;","import React from 'react';\r\n//import { Link } from 'react-router-dom';\r\nimport Images from 'utils/Images.js';\r\n\r\n//import Backend from 'Backend.js';\r\nimport Breadcrumb from \"components//seo/Breadcrumb.js\";\r\nimport NewsTrack from 'components/live_news/News_Track.js';\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { RedirectWithLang } from 'utils/RedirectWithLang.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nclass AccountSuspended extends React.Component {\r\n\r\n componentDidMount() {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.account_suspended });\r\n }\r\n\r\n render() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const homeOption = menuOptions.home;\r\n const accountSuspendedOption = menuOptions.account_suspended;\r\n const helpCenterOption = menuOptions.help_center;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AccountSuspended;","import React from 'react';\r\n\r\nimport UserData from 'User_Data.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\n\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\n\r\nclass ConnectToDiscordUsername extends React.Component {\r\n\r\nconstructor(props) {\r\n super(props);\r\n}\r\n\r\nrender() {\r\n\r\n return (\r\n
    \r\n

    {Formatting.format(Content.getValue(\"welcome_to_treatcoin_title_username\"), [\"(username)\"], [UserData.getItem(userDataKeys.username)])}

    \r\n
    \r\n );\r\n\r\n}\r\n\r\n}\r\n\r\nexport default ConnectToDiscordUsername;","import React from 'react';\r\nimport LinkCreator from 'utils/Link_Creator.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nclass ConnectToBotButton extends React.Component {\r\n\r\n render() {\r\n \r\n let discordLinkAddress = LinkCreator.createDiscordLink();\r\n\r\n return (\r\n \r\n {Content.getValue(\"connect_to_discord_now\")}\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default ConnectToBotButton;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\n\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from \"components/seo/Meta_Tags.js\";\r\nimport ConnectToDiscordUsername from \"components/data/Connect_To_Discord_Username.js\";\r\nimport ConnectToDiscordButton from \"components/buttons/Connect_To_Discord_Button.js\";\r\nimport Footer from \"components/sections/Footer.js\";\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { RedirectWithLang, redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nclass ConnectToDiscord extends React.Component {\r\n\r\n componentDidMount() {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.connect_to_discord });\r\n }\r\n\r\n render() {\r\n \r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const homeOption = menuOptions.home;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \"Go\r\n \r\n \r\n
    \r\n \"Homepage\r\n
    \r\n {Content.getValue(\"connect_to_discord_description\")}\r\n
    \r\n \r\n

    \r\n {Content.getValue(\"connect_to_discord_bonus\")}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n \r\n}\r\n\r\nexport default ConnectToDiscord;","import React, { Component } from 'react';\r\nimport { RedirectWithLang } from 'utils/RedirectWithLang.js';\r\n\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst websiteConnection = globalConf.website_connection;\r\nconst host = websiteConnection.frontend_host;\r\n\r\n\r\nclass CookieText extends Component {\r\n\r\n render() {\r\n return (\r\n
    \r\n

    \r\n Last Updated: October 2023\r\n

    \r\n
    \r\n 1.\tIntroduction\r\n
    \r\n\r\n

    \r\n When you visit or access our websites, or when you interact or engage with our content (\"Services\"), we use (and authorize third parties to use) cookies, pixels, beacons, local storage and similar technologies (\"Tracking Technologies\").\r\n

    \r\n\r\n

    \r\n These allow us to automatically collect information about you, your device, and your online behavior, in order to enhance your navigation on our Services, improve our Services' performance, perform analytics, customize your experience and offer you, for example, tailored content and advertisements that better correspond with your interests.\r\n

    \r\n

    \r\n This Cookie Policy is integrated into and forms part of Company's\r\n Privacy Policy.\r\n

    \r\n\r\n
    \r\n 2.\tWhat are cookies?\r\n
    \r\n

    \r\n Cookies are small text files (composed only of letters and numbers) that a web server places on your computer or mobile device when you visit a webpage. When used, the cookie can help make our Services more user-friendly, for example by remembering your language preferences and settings. You can find more information about cookies at www.allaboutcookies.org.\r\n

    \r\n

    \r\n Cookies are widely used in order to make websites work in an efficient way. The use of cookies allows you to navigate between pages efficiently. Cookies remember your preferences, and make the interaction between you and the Services smoother and more efficient. Cookies are also used to help ensure that the advertisements you see online are relevant to you and your interests.\r\n

    \r\n
    \r\n 3. Storing Tracking Technologies\r\n
    \r\n

    \r\n We store Tracking Technologies when you visit or access our Services (for example when you are visiting our Website) these are called \"First Party Tracking Technologies\". In addition, Tracking Technologies are stored by other third parties (for example our analytics service providers, business partners and advertisers) who run content on our Services these are called \"Third Party Tracking Technologies\".\r\n

    \r\n

    \r\n Both types of Tracking Technologies are stored either for the duration of your visit on our Services or for repeat visits.\r\n

    \r\n
    \r\n 4.\tWhat types of Tracking Technologies do we use?\r\n
    \r\n

    \r\n When you use or access our Services, we use the following categories of Tracking Technologies:\r\n

    \r\n
      \r\n
    • \r\n

      \r\n Strictly Necessary Tracking Technologies - these Tracking Technologies are automatically placed on your computer or device when you access our Services. These Tracking Technologies are essential to enable you to navigate around and use the features of our Services. We do not need to obtain your consent in order to use these Tracking Technologies;\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Tracking and advertising Tracking Technologies - these Tracking Technologies collect information about your browsing habits and are used to make advertising more relevant to you and your interests. They are also used to limit the number of times you see an advertisement as well as help measure the effectiveness of an advertising campaign.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Functionality Tracking Technologies - these Tracking Technologies allow our Services to remember choices you make (such as your language) and provide enhanced and personalized features. For example, these Tracking Technologies are used for authentication (to remember when you are logged-in) and support other features of our Services;\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Performance Tracking Technologies - these Tracking Technologies collect information about your online activity (for example the duration of your visit on our Services), including behavioral data and content engagement metrics. These Tracking Technologies are used for analytics, research and to perform statistics (based on aggregated information).\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Social media Tracking Technologies - Our website includes social media features, such as the Facebook \"Like\" or \"Share\" buttons. These features are either hosted by a third party or hosted directly on our Services. Your interactions with these features are governed by the privacy statement of the company providing these features.\r\n

      \r\n
    • \r\n\r\n
    \r\n

    \r\n The following Tracking Technologies are used in connection with our Services. For additional information about any of the Third Party Tracking Technologies, please visit the links of those companies provided.\r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Tracking TechnologiesTypePurpose
    Analytics CookiesFirst party Tracking Technology

    Performance and Functionality Tracking Technologies

    \r\n

    These Tracking Technologies are used to collect information regarding how you interact with the content on our Services, attribution purposes (for example, the referral URL), and to remember your language preferences and authentication (remember you are logged-in).

    \r\n

    We use the information to compile reports, calculate the revenues due to us, help us improve the Services and to offer personalized products and content.

    \r\n
    Other cookiesFirst and Third party Tracking Technology

    Necessary Tracking Technologies

    \r\n These unlisted cookies might be in use on internal sections of the Services, in order to customize and simplify the user experience on the site by remembering choices you made and your log in credentials.\r\n
    \r\n

    \r\n Cookies allow us to:\r\n

    \r\n
      \r\n
    • \r\n

      \r\n Improve the use of the Service and to make the content more interesting and relevant to the wishes of users, like offering you more relevant promotional offers.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Distinguish you from other users of our sites to grant a good user experience.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Identify your settings and preferences regarding customized content or functionality.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Your log-in details for the confirmation as a registered user for our Service.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Collect statistical analysis on the use of our Service.\r\n

      \r\n
    • \r\n
    \r\n\r\n\r\n
    \r\n 5.\tHow to manage and control Tracking Technologies\r\n
    \r\n

    \r\n There are various ways in which you can manage and control your Tracking Technologies settings. Please note that we do not recognize or respond to automated browser signals regarding Tracking Technologies, including \"Do Not Track\" requests. However, there are various methods of managing your Tracking Technology preferences includes: setting your browser to refuse all or some browser cookies, or to alert you when cookies are being sent. Please note that certain features of the Services could not work properly or effectively if you delete or disable cookies or other tracking technologies.\r\n

    \r\n

    \r\n To learn more about how can manage your cookies, below is a list of useful links that can provide you with more information on how to manage your cookies:\r\n

    \r\n \r\n

    \r\n You can learn more and turn off certain third party targeting and advertising cookies by visiting the following third-party webpages:\r\n

    \r\n \r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default CookieText;","import ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport CookieText from 'components/text/Cookie_Text.js';\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport Footer from 'components/sections/Footer.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect } from \"react\";\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\n\r\nconst CookiePolicy = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.cookie_policy });\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.cookie_policy.title}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CookiePolicy;","import React from 'react';\r\nimport ContentPageLogo from \"components/graphics/Content_Page_Logo.js\";\r\n\r\nclass ContentPageHeader extends React.Component {\r\n\r\n render() {\r\n return
    \r\n \r\n
    ;\r\n\r\n }\r\n\r\n}\r\n\r\nexport default ContentPageHeader;","import React, { useState } from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nfunction SignupInput({ handler, text, error }) {\r\n const [email, setEmail] = useState('');\r\n\r\n const handleKeyPress = (event) => {\r\n if (event.key === 'Enter') {\r\n handler(email);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n setEmail(e.target.value)}\r\n style={{ marginRight: '10px' }}\r\n onKeyPress={handleKeyPress}\r\n />\r\n { handler(email); }}>{text}\r\n
    \r\n );\r\n}\r\n\r\nexport default SignupInput;","const configuration = require('configuration.json');\r\nconst emailTypes = Object.keys(configuration.email_signup_types);\r\n\r\nfunction isGmail(email) {\r\n const domain = email.substring(email.lastIndexOf(\"@\") + 1).toLowerCase().split('.')[0];\r\n if (emailTypes[0].includes(domain)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport default isGmail;","/* eslint-disable jsx-a11y/alt-text */\r\nimport React, { useEffect, useState, useContext } from 'react';\r\nimport Content from 'utils/Content.js';\r\nimport { SpinnerContext } from 'context/Global_Spinner.js';\r\nimport SignupInput from './Signup_Input.js';\r\nimport Images from 'utils/Images.js';\r\nimport isGmail from 'utils/Email_Type.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport DataValidator from 'utils/Data_Validator.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport UserData from 'User_Data.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport LinkCreator from 'utils/Link_Creator.js';\r\nimport * as queryString from 'query-string';\r\nimport { RedirectWithLang, redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst globalConf = require('global_conf.json');\r\nconst configuration = require('configuration.json');\r\n\r\nconst captchaConnection = globalConf.captcha_connection;\r\nconst urls = configuration.urls;\r\nconst emailSignupModes = configuration.email_signup_modes;\r\n\r\nconst captchaSiteKey = captchaConnection.site_key;\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst googleCaptchaURL = urls.google_captcha_url;\r\n\r\nconst facebookConnection = globalConf.facebook_connection;\r\nconst discordConnection = globalConf.discord_connection;\r\n\r\nconst facebookAppID = facebookConnection.app_id;\r\nconst facebookRedirectUrl = facebookConnection.redirect_url;\r\n\r\nconst discordClientID = discordConnection.client_id;\r\nconst discordRedirectUrl = discordConnection.redirect_url;\r\n\r\nconst facebookAuthURL = urls.facebook_auth_url;\r\nconst discordAuthURL = urls.discord_auth_url;\r\n\r\n\r\nconst stringifiedFacebookParams = queryString.stringify({\r\n client_id: facebookAppID,\r\n redirect_uri: facebookRedirectUrl,\r\n scope: ['email'].join(','),\r\n response_type: 'code',\r\n auth_type: 'rerequest',\r\n display: 'popup',\r\n});\r\n\r\nconst stringifiedDiscordParams = queryString.stringify({\r\n client_id: discordClientID,\r\n response_type: 'code',\r\n redirect_uri: discordRedirectUrl,\r\n scope: ['identify', 'email', 'guilds.join', 'guilds.members.read'].join(' '),\r\n prompt: 'none'\r\n});\r\n\r\nconst BgDecor = ({ addedStyles, addedClassNames }) => {\r\n return (\r\n
    \r\n \r\n

    \r\n \r\n \r\n \r\n \"Homepage\r\n \r\n
    \r\n );\r\n};\r\n\r\nconst botLinkAddress = LinkCreator.createBotLink();\r\nconst facebookLoginUrl = Formatting.format(facebookAuthURL, [\"(stringifiedParams)\"], [stringifiedFacebookParams]);\r\nconst discordLoginUrl = Formatting.format(discordAuthURL, [\"(stringifiedParams)\"], [stringifiedDiscordParams]);\r\n\r\nlet registerEmail = UserData.getItem(userDataKeys.email_register);\r\n\r\nfunction Join({ variant, regEmail='', setRegEmail, confirmationCode, isLogin, showSignUp }) { \r\n const { updateIsVisibleSpinner } = useContext(SpinnerContext);\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const termsOfUseOption = menuOptions.terms_of_use;\r\n const privacyPolicyOption = menuOptions.privacy_policy;\r\n const cookiePolicyOption = menuOptions.cookie_policy;\r\n const existingScript = document.getElementById('google-captcha');\r\n if (!existingScript) {\r\n const script = document.createElement('script');\r\n script.src = Formatting.format(googleCaptchaURL, [\"(captchaSiteKey)\"], [captchaSiteKey]);\r\n script.id = 'google-captcha';\r\n document.body.appendChild(script);\r\n }\r\n\r\n if (isLogin) {\r\n registerEmail = true;\r\n }\r\n\r\n const [error, setError] = useState(null);\r\n\r\n const errorSetter = (type) => {\r\n setError(type);\r\n setTimeout(() => {\r\n setError(null);\r\n }, 2000);\r\n };\r\n\r\n const handleEmailRegister = async (email) => {\r\n\r\n if (DataValidator.isValidEmail(email)) {\r\n updateIsVisibleSpinner({ isVisible: true });\r\n let postBody = {\r\n email,\r\n receiveNotifications: true,\r\n ref: UserData.getItem(userDataKeys.referrer_code),\r\n platformName: Platform.getPlatformName()\r\n };\r\n\r\n const directToDiscordCommunity = UserData.getItem(userDataKeys.redirect_to_discord_community_after_auth) ? 1 : 0;\r\n const utm_source = UserData.getItem(userDataKeys.utm_source);\r\n const utm_medium = UserData.getItem(userDataKeys.utm_medium);\r\n const utm_campaign = UserData.getItem(userDataKeys.utm_campaign);\r\n const utm_content = UserData.getItem(userDataKeys.utm_content);\r\n const utm_term = UserData.getItem(userDataKeys.utm_term);\r\n const fbclid = UserData.getItem(userDataKeys.fbclid);\r\n const device_id = Mixpanel.getDistinctId();\r\n\r\n postBody.directToDiscordCommunity = directToDiscordCommunity;\r\n postBody.utm_source = utm_source;\r\n postBody.utm_medium = utm_medium;\r\n postBody.utm_campaign = utm_campaign;\r\n postBody.utm_content = utm_content;\r\n postBody.utm_term = utm_term;\r\n postBody.fbclid = fbclid;\r\n postBody.device_id = device_id;\r\n\r\n window.grecaptcha.ready(function () {\r\n window.grecaptcha.execute(captchaSiteKey, { action: 'submit' }).then(function (token) {\r\n postBody.captchaToken = token;\r\n let req = ApiFacade.registerWithEmail(postBody);\r\n req.then(res => {\r\n if (res.ok) {\r\n setRegEmail(email);\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth',\r\n });\r\n } else {\r\n errorSetter(5);\r\n }\r\n updateIsVisibleSpinner({ isVisible: false });\r\n });\r\n\r\n });\r\n });\r\n } else {\r\n errorSetter(4);\r\n }\r\n };\r\n\r\n const handleLogIn = async (email) => {\r\n if (DataValidator.isValidEmail(email)) {\r\n updateIsVisibleSpinner(true);\r\n let postBody = {\r\n email,\r\n receiveNotifications: true,\r\n ref: UserData.getItem(userDataKeys.referrer_code),\r\n platformName: Platform.getPlatformName()\r\n };\r\n window.grecaptcha.ready(function () {\r\n window.grecaptcha.execute(captchaSiteKey, { action: 'submit' }).then(function (token) {\r\n postBody.captchaToken = token;\r\n updateIsVisibleSpinner(true);\r\n let req = ApiFacade.loginWithEmail(postBody);\r\n req.then(res => {\r\n updateIsVisibleSpinner({ isVisible: false });\r\n if (res.ok) {\r\n setRegEmail(email);\r\n } else {\r\n errorSetter(5);\r\n }\r\n }).catch(e => {\r\n });\r\n });\r\n });\r\n } else {\r\n errorSetter(5);\r\n }\r\n };\r\n\r\n const handleVerification = async () => {\r\n updateIsVisibleSpinner({ isVisible: true });\r\n let req = ApiFacade.processVerification(confirmationCode, menuOptions, redirectWithLangFunc);\r\n req.then(res => {\r\n updateIsVisibleSpinner({ isVisible: false });\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n\r\n if (confirmationCode) {\r\n handleVerification();\r\n }\r\n }, []);\r\n\r\n\r\n if (variant === 'short') {\r\n return (\r\n (regEmail || showSignUp) ?\r\n \r\n :\r\n (<>\r\n\r\n {\r\n (isGmail(regEmail)) ?\r\n \r\n \r\n {Content.getValue('open')} gmail\r\n \r\n :

    \r\n {Content.getValue(\"email_verification_check_email_app\")}\r\n

    \r\n }\r\n ));\r\n } else if (variant === 'signup-page') {\r\n return (!regEmail) ? (\r\n <>\r\n \r\n
    \r\n

    {Content.getValue(\"sign_up_to\")}\r\n Treat\r\n Coin\r\n

    \r\n \r\n {\r\n (UserData.getItem(userDataKeys.email_signup) !== emailSignupModes.join_button) ? (\r\n

    \r\n {Content.getValue('already_have_an_account')}  \r\n \r\n \r\n

    ) : (null)\r\n } \r\n

    {Content.getValue('signup_policy')}\r\n \r\n , \r\n \r\n  \r\n \r\n .\r\n

    \r\n
    \r\n \r\n ) :\r\n (<>\r\n \r\n
    \r\n \r\n

    {Content.getValue(\"email_verification\")}

    \r\n

    \r\n {Content.getValue(\"email_verification_desc\")}\r\n {regEmail}\r\n

    \r\n\r\n {\r\n (isGmail(regEmail)) ?\r\n \r\n \r\n {Content.getValue('open')} gmail\r\n \r\n :

    \r\n {Content.getValue(\"email_verification_check_email_app\")}\r\n

    \r\n }\r\n
    )\r\n }\r\n else {\r\n return (\r\n <>\r\n {\r\n isLogin ?\r\n \r\n : <>\r\n }\r\n
    \r\n\r\n
    \r\n {\r\n (registerEmail && !regEmail) ? <>\r\n

    {Content.getValue(\"log_in_to\")}\r\n Treat\r\n Coin\r\n

    \r\n\r\n \r\n

    \r\n {Content.getValue('dont_have_an_account_yet')}  \r\n \r\n \r\n

    \r\n :\r\n\r\n\r\n (regEmail) ?\r\n (<>\r\n \r\n

    {Content.getValue(\"email_verification\")}

    \r\n

    \r\n {Content.getValue(\"email_verification_desc\")}\r\n {regEmail}\r\n

    \r\n {\r\n (isGmail(regEmail)) ?\r\n \r\n \r\n {Content.getValue('open')} gmail\r\n \r\n :

    \r\n {Content.getValue(\"email_verification_check_email_app\")}\r\n

    \r\n }\r\n )\r\n\r\n : variant !== \"expanded\" ? (<>\r\n

    {Content.getValue(\"sign_up_to\")}\r\n Treat\r\n Coin\r\n

    \r\n

    \r\n\r\n \r\n ) : <>\r\n

    {Content.getValue(\"log_in_to\")}\r\n Treat\r\n Coin\r\n

    \r\n\r\n \r\n

    \r\n {Content.getValue('dont_have_an_account_yet')}  \r\n \r\n \r\n

    \r\n \r\n }\r\n
    \r\n {(registerEmail && !regEmail) ?\r\n
    \r\n document.getElementById(\"google-signup\").click()}\r\n >\r\n \"Google\"\r\n {Content.getValue(\"login_with_google_button_text\")}\r\n \r\n {/*\r\n \r\n \r\n \"Facebook\"\r\n {Content.getValue(\"login_with_facebook_button_text\")}\r\n \r\n \r\n */}\r\n \r\n \r\n \"Telegram\"\r\n {Content.getValue(\"login_with_telegram_button_text\")}\r\n \r\n \r\n \r\n \r\n \"Telegram\"\r\n {Content.getValue(\"login_with_discord_button_text\")}\r\n \r\n \r\n
    \r\n : <>}\r\n
    \r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default Join;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const enableAdultOffersURL = backendURLs.enableAdultOffersURL;\r\n\r\nlet thisComponent;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\n\r\nclass EnableAdultOffersCall extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n\r\n componentDidMount() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n const req = ApiFacade.enableAdultOffers(UserData.getItem(userDataKeys.unique_id));\r\n req.then(function (res) {\r\n UserData.removeItem(userDataKeys.unique_id);\r\n if (res.ok){\r\n thisComponent.setState({\r\n isLoaded: true\r\n });\r\n setTimeout(function () {\r\n redirectWithLangFunc(menuOptions.login.url);\r\n }, 5000);\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, isRestricted } = this.state;\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (isRestricted) {\r\n return (null);\r\n } else if (!isLoaded) {\r\n return
    {Backend.loadBackendMessages().loadingMessage}
    ;\r\n } else {\r\n return (\r\n <>\r\n
    \r\n \"TreatCoin\r\n
    {Content.getValue(\"adult_offers_successfully_enabled\")}
    \r\n
    \r\n \r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default EnableAdultOffersCall;","import AccountAccessPageHeader from 'components/sections/Account_Access_Page_Header.js';\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport * as queryString from 'query-string';\r\nimport UserData from 'User_Data.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { useEffect, useState } from 'react';\r\nimport Join from 'components/widgets/Join/Join.js';\r\n\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst captchaConnection = globalConf.captcha_connection;\r\n\r\nconst captchaSiteKey = captchaConnection.site_key;\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\nconst urls = configuration.urls;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst googleCaptchaURL = urls.google_captcha_url;\r\n\r\nconst EmailSignup = () => {\r\n const [regEmail, setRegEmail] = useState();\r\n const menuOptions = Content.getValue('menu_options');\r\n const existingScript = document.getElementById('google-captcha');\r\n if (!existingScript) {\r\n const script = document.createElement('script');\r\n script.src = Formatting.format(googleCaptchaURL, [\"(captchaSiteKey)\"], [captchaSiteKey]);\r\n script.id = 'google-captcha';\r\n document.body.appendChild(script);\r\n }\r\n\r\n useEffect(() => {\r\n UserData.removeItem(userDataKeys.email_register)\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.email_signup });\r\n }, []);\r\n\r\n const urlParams = queryString.parse(window.location.search);\r\n\r\n const confirmationCode = urlParams.confirmationCode;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default EmailSignup;","import Organization from 'components/seo/Organization.js';\r\nimport Breadcrumb from 'components/seo/Breadcrumb.js';\r\nimport EnableAdultOffersCall from 'components/forms/Enable_Adult_Offers_Call.js';\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport Footer from 'components/sections/Footer.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect } from 'react';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nconst EnableAdultOffers = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.enable_adult_offers });\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"enable_adult_offers_title\")}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default EnableAdultOffers;","import t,{PureComponent as e}from\"react\";import o from\"prop-types\";function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function n(t,e){for(var o=0;o'},className:\"arrow-image \".concat(u[\"arrow-image\"]),alt:\"Expand arrow\"}),q=[u[\"row-content\"],\"row-content\",l?u.animate:u.static].join(\" \"),O=[u[\"row-content-text\"],\"row-content-text\"].join(\" \"),Y=n&&\"string\"==typeof n?t.createElement(\"div\",{className:O,dangerouslySetInnerHTML:{__html:n}}):t.createElement(\"div\",{className:O},n);return t.createElement(\"section\",{className:\"faq-row \".concat(u[\"faq-row\"]),role:\"listitem\",ref:g},t.createElement(\"div\",a({className:m},h),t.createElement(\"div\",{className:\"row-title-text \".concat(u[\"row-title-text\"]),id:\"react-faq-rowtitle-\".concat(this.props.rowid)},r),t.createElement(\"span\",{className:\"icon-wrapper \".concat(u[\"icon-wrapper\"]),\"aria-hidden\":\"true\"},x)),t.createElement(\"div\",a({className:q},b,{ref:f}),Y))}}]),_}();i(v,\"propTypes\",{config:o.object,data:o.object,rowid:o.number,getRowOptions:o.func});var g=function(o){c(a,e);var n=f(a);function a(){var t;r(this,a);for(var e=arguments.length,o=new Array(e),s=0;s {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, items } = this.state;\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (!isLoaded) {\r\n return
    {Backend.loadBackendMessages().loadingMessage}
    ;\r\n } else {\r\n setTimeout(function () {\r\n let faqContactUsLink = document.getElementById('faq-contact-us-link');\r\n if (faqContactUsLink !== null && UserData.getItem(userDataKeys.login_type) === loginTypes.telegram) faqContactUsLink.onclick = function () { Alerts.showContactUsAlert(); };\r\n }, 1000);\r\n \r\n let FAQData = { rows: [] };\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n let item = items[i];\r\n FAQData.rows.push({title: (
    {i+1}.{item.title}
    ), \r\n content: \r\n (
    \r\n \r\n
    ) });\r\n }\r\n return (\r\n \r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default FAQList;","import React from 'react';\r\nimport OneTwoTreatAlert from 'components/one_two_treat_area/One_Two_Treat_Alert.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nlet thisComponent;\r\nlet removeFilterTimeout = null;\r\n\r\n\r\nconst telegramReferralLink = UserData.getItem(userDataKeys.telegram_referral_link);\r\nconst websiteReferralLink = UserData.getItem(userDataKeys.website_referral_link);\r\n\r\nclass ReferHomepageContainer extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n thisComponent = this;\r\n }\r\n\r\n openDialog() {\r\n thisComponent.addFilter();\r\n OneTwoTreatAlert.showOneTwoTreatAlert(telegramReferralLink, websiteReferralLink, true);\r\n }\r\n\r\n addFilter() {\r\n if (removeFilterTimeout !== null) clearTimeout(removeFilterTimeout);\r\n document.getElementById('refer-users-widget').className = 'refer-float-button hovered';\r\n removeFilterTimeout = setTimeout(function () {\r\n thisComponent.removeFilter();\r\n }, 3000);\r\n }\r\n\r\n removeFilter() {\r\n if (removeFilterTimeout !== null) clearTimeout(removeFilterTimeout);\r\n document.getElementById('refer-users-widget').className = 'refer-float-button';\r\n }\r\n\r\n render() {\r\n return (UserData.getItem(userDataKeys.jwt_token) !== null) ? (<>\r\n
    \r\n

    {Content.getValue(\"refer_friends_cta_label\")}

    \r\n \r\n
    \r\n ) : (null);\r\n }\r\n\r\n}\r\n\r\nexport default ReferHomepageContainer;","import FAQList from \"components/faq/FAQ_List.js\";\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\nimport { useEffect } from \"react\";\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nconst FAQ = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.faq });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.faq.title}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default FAQ;\r\n\r\n","import React from 'react';\r\nimport Joining from 'utils/Joining.js';\r\nimport Images from 'utils/Images.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass JoinTreatCoinButton extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.showTriangle = props.showTriangle;\r\n this.includeNow = props.includeNow;\r\n this.addClass = props.addClass;\r\n }\r\n\r\n render() {\r\n if (UserData.getItem(userDataKeys.jwt_token) === null) {\r\n let showTriangle = this.showTriangle || false;\r\n let includeNow = this.includeNow || false;\r\n return (\r\n {\r\n Mixpanel.trackByEvent(event);\r\n return Joining.showPopup();\r\n }\r\n }\r\n >\r\n \"Join\r\n {includeNow ? Content.getValue(\"join_treatcoin_now\") : Content.getValue(\"join_treatcoin\")}\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n\r\nexport default JoinTreatCoinButton;","import React from 'react';\r\nimport UserData from 'User_Data.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass UserIndicator extends React.Component {\r\n\r\nconstructor(props) {\r\n super(props);\r\n}\r\n\r\nrender() {\r\n \r\n if(UserData.getItem(userDataKeys.jwt_token) !== null) {\r\n return (\r\n
    \r\n {Formatting.format(Content.getValue(\"hello_user_indicator\"), [\"(username)\"], [UserData.getItem(userDataKeys.username)])}\r\n
    \r\n );\r\n }\r\n else {\r\n return (null);\r\n }\r\n\r\n}\r\n\r\n}\r\n\r\nexport default UserIndicator;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\n\r\nclass HomepageLogo extends React.Component {\r\n\r\n render() {\r\n return <>\r\n \"Home\"\r\n ;\r\n }\r\n}\r\n\r\nexport default HomepageLogo;","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","// Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61\nconst getOverlayAlpha = elevation => {\n let alphaValue;\n if (elevation < 1) {\n alphaValue = 5.11916 * elevation ** 2;\n } else {\n alphaValue = 4.5 * Math.log(elevation + 1) + 2;\n }\n return (alphaValue / 100).toFixed(2);\n};\nexport default getOverlayAlpha;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getPaperUtilityClass(slot) {\n return generateUtilityClass('MuiPaper', slot);\n}\nconst paperClasses = generateUtilityClasses('MuiPaper', ['root', 'rounded', 'outlined', 'elevation', 'elevation0', 'elevation1', 'elevation2', 'elevation3', 'elevation4', 'elevation5', 'elevation6', 'elevation7', 'elevation8', 'elevation9', 'elevation10', 'elevation11', 'elevation12', 'elevation13', 'elevation14', 'elevation15', 'elevation16', 'elevation17', 'elevation18', 'elevation19', 'elevation20', 'elevation21', 'elevation22', 'elevation23', 'elevation24']);\nexport default paperClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"elevation\", \"square\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes, integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport getOverlayAlpha from '../styles/getOverlayAlpha';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport { getPaperUtilityClass } from './paperClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n square,\n elevation,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, !square && 'rounded', variant === 'elevation' && `elevation${elevation}`]\n };\n return composeClasses(slots, getPaperUtilityClass, classes);\n};\nconst PaperRoot = styled('div', {\n name: 'MuiPaper',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], !ownerState.square && styles.rounded, ownerState.variant === 'elevation' && styles[`elevation${ownerState.elevation}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$vars$overlays;\n return _extends({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n color: (theme.vars || theme).palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n }, !ownerState.square && {\n borderRadius: theme.shape.borderRadius\n }, ownerState.variant === 'outlined' && {\n border: `1px solid ${(theme.vars || theme).palette.divider}`\n }, ownerState.variant === 'elevation' && _extends({\n boxShadow: (theme.vars || theme).shadows[ownerState.elevation]\n }, !theme.vars && theme.palette.mode === 'dark' && {\n backgroundImage: `linear-gradient(${alpha('#fff', getOverlayAlpha(ownerState.elevation))}, ${alpha('#fff', getOverlayAlpha(ownerState.elevation))})`\n }, theme.vars && {\n backgroundImage: (_theme$vars$overlays = theme.vars.overlays) == null ? void 0 : _theme$vars$overlays[ownerState.elevation]\n }));\n});\nconst Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPaper'\n });\n const {\n className,\n component = 'div',\n elevation = 1,\n square = false,\n variant = 'elevation'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n elevation,\n square,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const theme = useTheme();\n if (theme.shadows[elevation] === undefined) {\n console.error([`MUI: The elevation provided is not available in the theme.`, `Please make sure that \\`theme.shadows[${elevation}]\\` is defined.`].join('\\n'));\n }\n }\n return /*#__PURE__*/_jsx(PaperRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.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 content of the component.\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 * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n * @default 1\n */\n elevation: chainPropTypes(integerPropType, props => {\n const {\n elevation,\n variant\n } = props;\n if (elevation > 0 && variant === 'outlined') {\n return new Error(`MUI: Combining \\`elevation={${elevation}}\\` with \\`variant=\"${variant}\"\\` has no effect. Either use \\`elevation={0}\\` or use a different \\`variant\\`.`);\n }\n return null;\n }),\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\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 variant to use.\n * @default 'elevation'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['elevation', 'outlined']), PropTypes.string])\n} : void 0;\nexport default Paper;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getDialogUtilityClass(slot) {\n return generateUtilityClass('MuiDialog', slot);\n}\nconst dialogClasses = generateUtilityClasses('MuiDialog', ['root', 'scrollPaper', 'scrollBody', 'container', 'paper', 'paperScrollPaper', 'paperScrollBody', 'paperWidthFalse', 'paperWidthXs', 'paperWidthSm', 'paperWidthMd', 'paperWidthLg', 'paperWidthXl', 'paperFullWidth', 'paperFullScreen']);\nexport default dialogClasses;","import * as React from 'react';\nconst DialogContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n DialogContext.displayName = 'DialogContext';\n}\nexport default DialogContext;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-describedby\", \"aria-labelledby\", \"BackdropComponent\", \"BackdropProps\", \"children\", \"className\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClose\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { unstable_useId as useId } from '@mui/utils';\nimport capitalize from '../utils/capitalize';\nimport Modal from '../Modal';\nimport Fade from '../Fade';\nimport Paper from '../Paper';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport dialogClasses, { getDialogUtilityClass } from './dialogClasses';\nimport DialogContext from './DialogContext';\nimport Backdrop from '../Backdrop';\nimport useTheme from '../styles/useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DialogBackdrop = styled(Backdrop, {\n name: 'MuiDialog',\n slot: 'Backdrop',\n overrides: (props, styles) => styles.backdrop\n})({\n // Improve scrollable dialog support.\n zIndex: -1\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n scroll,\n maxWidth,\n fullWidth,\n fullScreen\n } = ownerState;\n const slots = {\n root: ['root'],\n container: ['container', `scroll${capitalize(scroll)}`],\n paper: ['paper', `paperScroll${capitalize(scroll)}`, `paperWidth${capitalize(String(maxWidth))}`, fullWidth && 'paperFullWidth', fullScreen && 'paperFullScreen']\n };\n return composeClasses(slots, getDialogUtilityClass, classes);\n};\nconst DialogRoot = styled(Modal, {\n name: 'MuiDialog',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n});\nconst DialogContainer = styled('div', {\n name: 'MuiDialog',\n slot: 'Container',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.container, styles[`scroll${capitalize(ownerState.scroll)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n}, ownerState.scroll === 'body' && {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&:after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n}));\nconst DialogPaper = styled(Paper, {\n name: 'MuiDialog',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`scrollPaper${capitalize(ownerState.scroll)}`], styles[`paperWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles.paperFullWidth, ownerState.fullScreen && styles.paperFullScreen];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n}, ownerState.scroll === 'body' && {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE11\n}, !ownerState.maxWidth && {\n maxWidth: 'calc(100% - 64px)'\n}, ownerState.maxWidth === 'xs' && {\n maxWidth: theme.breakpoints.unit === 'px' ? Math.max(theme.breakpoints.values.xs, 444) : `${theme.breakpoints.values.xs}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.maxWidth && ownerState.maxWidth !== 'xs' && {\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(theme.breakpoints.values[ownerState.maxWidth] + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.fullWidth && {\n width: 'calc(100% - 64px)'\n}, ownerState.fullScreen && {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n [`&.${dialogClasses.paperScrollBody}`]: {\n margin: 0,\n maxWidth: '100%'\n }\n}));\n\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\nconst Dialog = /*#__PURE__*/React.forwardRef(function Dialog(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialog'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-labelledby': ariaLabelledbyProp,\n BackdropComponent,\n BackdropProps,\n children,\n className,\n disableEscapeKeyDown = false,\n fullScreen = false,\n fullWidth = false,\n maxWidth = 'sm',\n onBackdropClick,\n onClose,\n open,\n PaperComponent = Paper,\n PaperProps = {},\n scroll = 'paper',\n TransitionComponent = Fade,\n transitionDuration = defaultTransitionDuration,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n disableEscapeKeyDown,\n fullScreen,\n fullWidth,\n maxWidth,\n scroll\n });\n const classes = useUtilityClasses(ownerState);\n const backdropClick = React.useRef();\n const handleMouseDown = event => {\n // We don't want to close the dialog when clicking the dialog content.\n // Make sure the event starts and ends on the same DOM element.\n backdropClick.current = event.target === event.currentTarget;\n };\n const handleBackdropClick = event => {\n // Ignore the events not coming from the \"backdrop\".\n if (!backdropClick.current) {\n return;\n }\n backdropClick.current = null;\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const ariaLabelledby = useId(ariaLabelledbyProp);\n const dialogContextValue = React.useMemo(() => {\n return {\n titleId: ariaLabelledby\n };\n }, [ariaLabelledby]);\n return /*#__PURE__*/_jsx(DialogRoot, _extends({\n className: clsx(classes.root, className),\n closeAfterTransition: true,\n components: {\n Backdrop: DialogBackdrop\n },\n componentsProps: {\n backdrop: _extends({\n transitionDuration,\n as: BackdropComponent\n }, BackdropProps)\n },\n disableEscapeKeyDown: disableEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref,\n onClick: handleBackdropClick,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n role: \"presentation\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(DialogContainer, {\n className: clsx(classes.container),\n onMouseDown: handleMouseDown,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogPaper, _extends({\n as: PaperComponent,\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogContext.Provider, {\n value: dialogContextValue,\n children: children\n })\n }))\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.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 id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * Dialog children, usually the included sub-components.\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 * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen: PropTypes.bool,\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'sm'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The component used to render the body of the dialog.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Paper`](/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Determine the container for scrolling the dialog.\n * @default 'paper'\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\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 component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Dialog;","import Joining from 'utils/Joining.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { RedirectWithLang } from 'utils/RedirectWithLang.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst websiteLocations = configuration.website_locations;\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\n\r\nconst OffersPageLinkButton = (props) => {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n const playgroundOption = menuOptions.playground;\r\n\r\n if (UserData.getItem(userDataKeys.jwt_token) === null) {\r\n return (\r\n \r\n {\r\n Joining.showPopup();\r\n Mixpanel.trackByEvent(event);\r\n }\r\n }>\r\n {(props.page === websiteLocations.home) ? Content.getValue(\"join_treatcoin_now\") : Content.getValue(\"join_now\")}\r\n \r\n \r\n );\r\n }\r\n else {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default OffersPageLinkButton;","import Images from 'utils/Images.js';\r\nimport Formatting from 'utils/Formatting.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nconst TotalRewardsFund = (props) => {\r\n let prizeFundAmount = props.prizeFundAmount;\r\n let prizeFundCurrency = props.prizeFundCurrency;\r\n let month = props.month;\r\n return (\r\n <>\r\n

    {month}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {Content.getValue(\"divided_between_top_100\")}
    \r\n
    \r\n
    {`${Formatting.formatTreatCoinAmount(prizeFundAmount)}`}
    \r\n
    \"Ethereum\"
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default TotalRewardsFund;","import React from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nclass ConvertButton extends React.Component {\r\n render() {\r\n const clickHandler = this.props.clickHandler;\r\n\r\n return (\r\n \r\n \r\n { Content.getValue(\"convert_now_button_text\") }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ConvertButton;","// extracted by mini-css-extract-plugin\nexport default {\"lds-spinner\":\"style_lds-spinner__Gpfw-\",\"div-after\":\"style_div-after__S4BnE\"};",null,"import React, {\n useRef,\n useEffect,\n useImperativeHandle,\n forwardRef\n} from 'react';\n\nconst allowedCharactersValues = ['alpha', 'numeric', 'alphanumeric'] as const;\n\nexport type AuthCodeProps = {\n allowedCharacters?: typeof allowedCharactersValues[number];\n ariaLabel?: string;\n autoFocus?: boolean;\n containerClassName?: string;\n disabled?: boolean;\n inputClassName?: string;\n isPassword?: boolean;\n length?: number;\n placeholder?: string;\n onChange: (res: string) => void;\n};\n\ntype InputMode = 'text' | 'numeric';\n\ntype InputType = 'text' | 'tel' | 'password';\n\ntype InputProps = {\n type: InputType;\n inputMode: InputMode;\n pattern: string;\n min?: string;\n max?: string;\n};\n\nexport type AuthCodeRef = {\n focus: () => void;\n clear: () => void;\n};\n\nconst propsMap: { [key: string]: InputProps } = {\n alpha: {\n type: 'text',\n inputMode: 'text',\n pattern: '[a-zA-Z]{1}'\n },\n\n alphanumeric: {\n type: 'text',\n inputMode: 'text',\n pattern: '[a-zA-Z0-9]{1}'\n },\n\n numeric: {\n type: 'tel',\n inputMode: 'numeric',\n pattern: '[0-9]{1}',\n min: '0',\n max: '9'\n }\n};\n\nconst AuthCode = forwardRef(\n (\n {\n allowedCharacters = 'alphanumeric',\n ariaLabel,\n autoFocus = true,\n containerClassName,\n disabled,\n inputClassName,\n isPassword = false,\n length = 6,\n placeholder,\n onChange\n },\n ref\n ) => {\n if (isNaN(length) || length < 1) {\n throw new Error('Length should be a number and greater than 0');\n }\n\n if (!allowedCharactersValues.some((value) => value === allowedCharacters)) {\n throw new Error(\n 'Invalid value for allowedCharacters. Use alpha, numeric, or alphanumeric'\n );\n }\n\n const inputsRef = useRef>([]);\n const inputProps = propsMap[allowedCharacters];\n\n useImperativeHandle(ref, () => ({\n focus: () => {\n if (inputsRef.current) {\n inputsRef.current[0].focus();\n }\n },\n clear: () => {\n if (inputsRef.current) {\n for (let i = 0; i < inputsRef.current.length; i++) {\n inputsRef.current[i].value = '';\n }\n inputsRef.current[0].focus();\n }\n sendResult();\n }\n }));\n\n useEffect(() => {\n if (autoFocus) {\n inputsRef.current[0].focus();\n }\n }, []);\n\n const sendResult = () => {\n const res = inputsRef.current.map((input) => input.value).join('');\n onChange && onChange(res);\n };\n\n const handleOnChange = (e: React.ChangeEvent) => {\n const {\n target: { value, nextElementSibling }\n } = e;\n if (value.length > 1) {\n e.target.value = value.charAt(0);\n if (nextElementSibling !== null) {\n (nextElementSibling as HTMLInputElement).focus();\n }\n } else {\n if (value.match(inputProps.pattern)) {\n if (nextElementSibling !== null) {\n (nextElementSibling as HTMLInputElement).focus();\n }\n } else {\n e.target.value = '';\n }\n }\n sendResult();\n };\n\n const handleOnKeyDown = (e: React.KeyboardEvent) => {\n const { key } = e;\n const target = e.target as HTMLInputElement;\n if (key === 'Backspace') {\n if (target.value === '') {\n if (target.previousElementSibling !== null) {\n const t = target.previousElementSibling as HTMLInputElement;\n t.value = '';\n t.focus();\n e.preventDefault();\n }\n } else {\n target.value = '';\n }\n sendResult();\n }\n };\n\n const handleOnFocus = (e: React.FocusEvent) => {\n e.target.select();\n };\n\n const handleOnPaste = (e: React.ClipboardEvent) => {\n const pastedValue = e.clipboardData.getData('Text');\n\n let currentInput = 0;\n\n for (let i = 0; i < pastedValue.length; i++) {\n const pastedCharacter = pastedValue.charAt(i);\n const currentValue = inputsRef.current[currentInput].value;\n if (pastedCharacter.match(inputProps.pattern)) {\n if (!currentValue) {\n inputsRef.current[currentInput].value = pastedCharacter;\n if (inputsRef.current[currentInput].nextElementSibling !== null) {\n (inputsRef.current[currentInput]\n .nextElementSibling as HTMLInputElement).focus();\n currentInput++;\n }\n }\n }\n }\n sendResult();\n\n e.preventDefault();\n };\n\n const inputs = [];\n for (let i = 0; i < length; i++) {\n inputs.push(\n {\n inputsRef.current[i] = el;\n }}\n maxLength={1}\n className={inputClassName}\n autoComplete={i === 0 ? 'one-time-code' : 'off'}\n aria-label={\n ariaLabel\n ? `${ariaLabel}. Character ${i + 1}.`\n : `Character ${i + 1}.`\n }\n disabled={disabled}\n placeholder={placeholder}\n />\n );\n }\n\n return
    {inputs}
    ;\n }\n);\n\nexport default AuthCode;\n","import React from 'react';\r\nimport Swal from 'sweetalert2';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Images from 'utils/Images.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport DataValidator from 'utils/Data_Validator.js';\r\nimport AuthCode from 'react-auth-code-input';\r\nimport AddPaymentBirthDatePicker from 'components/payment_methods/Add_Payment_Birth_Date_Picker.js';\r\nimport { format } from \"date-fns\";\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport ConvertText from 'components/text/Convert_Text.js';\r\nimport ConversionCalculator from 'components/payouts/Conversion_Calculator.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const addPaxumURL = backendURLs.addPaxumURL;\r\n//const requestPlumURL = backendURLs.requestPlumURL;\r\n//const addPlumURL = backendURLs.addPlumURL;\r\n//const addFaucetPayURL = backendURLs.addFaucetPayURL;\r\n//const withdrawCoinsURL = backendURLs.withdrawCoinsURL;\r\n//const convertCoinsURL = backendURLs.convertCoinsURL;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst urls = configuration.urls;\r\nconst businessLogic = configuration.business_logic;\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\n\r\nconst faucetPayReferralLink = urls.faucetpay_referral_link;\r\n\r\nconst plumCodeValidityTime = businessLogic.plum_code_validity_time;\r\nconst plumVerificationAttempts = businessLogic.plum_verification_attempts;\r\nconst plumVerificationCodeLength = businessLogic.plum_verification_code_length;\r\n\r\nconst paymentMethodTypes = configuration.payment_method_types;\r\n\r\nlet paxumPaymentMethodType = paymentMethodTypes.paxum;\r\nlet plumPaymentMethodType = paymentMethodTypes.plum;\r\nlet faucetPayPaymentMethodType = paymentMethodTypes.faucetpay;\r\nlet allPaymentMethodTypes = paymentMethodTypes.all;\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nlet thisComponent;\r\n\r\nclass Payments extends React.Component {\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.plumEmail = null;\r\n this.plumAttemptsLeft = plumVerificationAttempts;\r\n this.countdownInterval = null;\r\n thisComponent = this;\r\n }\r\n\r\n static showHint(type) {\r\n\r\n if (type === plumPaymentMethodType) {\r\n let swalHTML = \"

    \" + Content.getValue(\"plum_hint_subtitle_1\") + \"

    \";\r\n swalHTML += \"
      \" + Content.getValue(\"plum_hint_content_1\") + \"
    \";\r\n swalHTML += \"

    \" + Content.getValue(\"plum_hint_subtitle_2\") + \"

    \";\r\n swalHTML += \"
      \" + Content.getValue(\"plum_hint_content_2\") + \"
    \";\r\n\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"plum_title\") + '

    ',\r\n html: swalHTML,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'payment-method-hint-confirm-button',\r\n closeButton: 'swal2-payment-method-hint-close'\r\n }\r\n });\r\n }\r\n\r\n else if (type === paxumPaymentMethodType) {\r\n let swalHTML = \"

    \" + Content.getValue(\"paxum_hint_subtitle_1\") + \"

    \";\r\n swalHTML += \"
      \" + Content.getValue(\"paxum_hint_content_1\") + \"
    \";\r\n swalHTML += \"

    \" + Content.getValue(\"paxum_hint_subtitle_2\") + \"

    \";\r\n swalHTML += \"
      \" + Content.getValue(\"paxum_hint_content_2\") + \"
    \";\r\n\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"paxum_title\") + '

    ',\r\n html: swalHTML,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'payment-method-hint-confirm-button',\r\n closeButton: 'swal2-payment-method-hint-close'\r\n }\r\n });\r\n }\r\n\r\n else if (type === faucetPayPaymentMethodType) {\r\n let swalHTML = \"

    \" + Content.getValue(\"faucetpay_hint_subtitle_1\") + \"

    \";\r\n swalHTML += \"
      \" + Content.getValue(\"faucetpay_hint_content_1\") + \"
    \";\r\n swalHTML += \"

    \" + Content.getValue(\"faucetpay_hint_subtitle_2\") + \"

    \";\r\n swalHTML += \"
      \" + Content.getValue(\"faucetpay_hint_content_2\") + \"
    \";\r\n\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"faucetpay_title\") + '

    ',\r\n html: swalHTML,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'payment-method-hint-confirm-button',\r\n closeButton: 'swal2-payment-method-hint-close'\r\n }\r\n });\r\n }\r\n\r\n else if (type === allPaymentMethodTypes) {\r\n let swalHTML = \"

    \" + Content.getValue(\"payment_methods_hint_text_1\") + \"

    \";\r\n swalHTML += \"

    \" + Content.getValue(\"payment_methods_hint_subtitle_1\") + \"

    \";\r\n swalHTML += \"

    \" + Content.getValue(\"payment_methods_hint_text_2\") + \"

    \";\r\n swalHTML += \"

    \" + Content.getValue(\"payment_methods_hint_text_5\") + \"

    \";\r\n swalHTML += \"

    \" + Content.getValue(\"payment_methods_hint_text_6\") + \"

    \";\r\n swalHTML += \"

    \" + Content.getValue(\"payment_methods_hint_text_7\") + \"

    \";\r\n\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"how_to_use_treatcoins_title\") + '

    ',\r\n html: swalHTML,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'payment-method-hint-confirm-button',\r\n closeButton: 'swal2-payment-method-hint-close'\r\n }\r\n });\r\n }\r\n }\r\n\r\n static showConvertHint() {\r\n const popup = withReactContent(Swal);\r\n\r\n const html = <>\r\n \r\n \r\n\r\n popup.fire({\r\n title: '

    ' + Content.getValue(\"convert_alert_title\") + '

    ',\r\n html,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n customClass: {\r\n container: 'z-1300',\r\n title: 'margin-top-0',\r\n htmlContainer: 'swal2-html-convert-container',\r\n confirmButton: 'nfts-confirm-button',\r\n cancelButton: 'convert-cancel-button',\r\n closeButton: 'swal2-nfts-close margin-right-0'\r\n }\r\n });\r\n \r\n }\r\n\r\n static showConvertScreen() {\r\n const popup = MySwal;\r\n const html =
    \r\n
    \r\n {Content.getValue(\"convert_to_competitions_label\")}\r\n \"Withdrawal Payments.showConvertHint()} />\r\n
    \r\n \r\n
    ;\r\n\r\n popup.fire({\r\n html,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: false,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n customClass: {\r\n container: 'padding-0 radius-0',\r\n popup: 'fullscreen radius-0',\r\n title: 'margin-top-0',\r\n htmlContainer: 'margin-0',\r\n confirmButton: 'nfts-confirm-button',\r\n closeButton: 'swal2-nfts-close'\r\n }\r\n });\r\n }\r\n\r\n static startDeletion(type, component, mixpanelObject) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"are_you_sure_title\") + '

    ',\r\n html: '\"TreatCoin

    ' + Formatting.format(Content.getValue(\"account_will_be_removed_text\"), [\"(type)\"], [type]) + '

    ',\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"remove_account_button_text\"),\r\n customClass: {\r\n confirmButton: 'payment-method-hint-confirm-button'\r\n }\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.removePaymentMethod(type, component, mixpanelObject);\r\n }\r\n });\r\n }\r\n\r\n static removePaymentMethod(type, component, mixpanelObject) {\r\n const req = ApiFacade.removePaymentMethod(type);\r\n if (req!=null){\r\n Mixpanel.trackByArgs(mixpanelEvents.payment_method_remove_account_click, mixpanelObject);\r\n req.then(function (res) {\r\n let resultOK = res.ok;\r\n //let result = res.response;\r\n if (resultOK) {\r\n const { paymentMethods } = component.state;\r\n if (type === plumPaymentMethodType) {\r\n paymentMethods.plum = null;\r\n } else if (type === paxumPaymentMethodType) { \r\n paymentMethods.paxum = null;\r\n } else if (type === faucetPayPaymentMethodType) {\r\n paymentMethods.faucetPay = null;\r\n }\r\n component.setState({\r\n paymentMethods: paymentMethods\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n static paymentMethodAddCTA(type, component, maxWithdrawalInactivityTime) {\r\n let ctaText = null;\r\n let ctaImageURL = null;\r\n if (type === plumPaymentMethodType) {\r\n ctaText = Content.getValue(\"add_plum_cta\");\r\n ctaImageURL = Images.imageURL('payment-methods/plum-icon-purple.png');\r\n }\r\n else if (type === paxumPaymentMethodType) {\r\n ctaText = Content.getValue(\"add_paxum_cta\");\r\n ctaImageURL = Images.imageURL('payment-methods/paxum-icon-purple.png');\r\n }\r\n else if (type === faucetPayPaymentMethodType) {\r\n ctaText = Content.getValue(\"add_faucetpay_cta\");\r\n ctaImageURL = Images.imageURL('payment-methods/faucetpay-icon-purple.png');\r\n }\r\n if (ctaText !== null) {\r\n clearTimeout(component.parent.inactivityTimeout);\r\n component.parent.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n let oldCtaDiv = document.getElementById('payment-method-cta-div');\r\n if (oldCtaDiv !== null) document.getElementById('content').removeChild(oldCtaDiv);\r\n let ctaDiv = document.createElement('div');\r\n ctaDiv.id = 'payment-method-cta-div';\r\n ctaDiv.className = 'payment-method-cta-div desktop';\r\n ctaDiv.innerHTML = '\"Payment
    ' + \r\n ctaText + \r\n `\"Arrow\"` + \r\n '
    ';\r\n ctaDiv.onclick = function () { new Payments().addPaymentMethod(type, component, 'withdrawal'); };\r\n document.getElementById('content').appendChild(ctaDiv);\r\n }\r\n }\r\n\r\n addPaymentMethod(type, component, mode) {\r\n if (type === plumPaymentMethodType) {\r\n Mixpanel.trackByArgs(mixpanelEvents.connect_payment_method, { connect_plum_clicked: true });\r\n this.addPlumMethod(component, mode);\r\n }\r\n else if (type === paxumPaymentMethodType) {\r\n Mixpanel.trackByArgs(mixpanelEvents.connect_payment_method, { connect_paxum_clicked: true });\r\n this.addPaxumMethod(component, mode);\r\n }\r\n else if (type === faucetPayPaymentMethodType) {\r\n Mixpanel.trackByArgs(mixpanelEvents.connect_payment_method, { connect_faucet_clicked: true });\r\n this.addFaucetPayMethod(component, mode);\r\n }\r\n }\r\n\r\n setDate(date) {\r\n\r\n let dateDisplay = format(date, \"yyyy-MM-dd\");\r\n document.getElementById('paxum-birth-date').value = dateDisplay;\r\n thisComponent.setState = { date: dateDisplay };\r\n\r\n }\r\n\r\n addFaucetPayMethod(component, mode) {\r\n let swalHTML =\r\n <>\r\n Add FaucetPay method\r\n

    {Content.getValue(\"payment_methods_faucetpay_text\")}

    \r\n \r\n
    {Content.getValue(\"invalid_email_address_error\")}
    \r\n \r\n
    {Content.getValue(\"invalid_wallet_address_error\")}
    \r\n {Content.getValue(\"register_faucetpay_account_link\")}\r\n ;\r\n MySwal.fire({\r\n html: swalHTML,\r\n background: '#ffffff',\r\n showCloseButton: false,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"connect_wallet_button_text\"),\r\n customClass: {\r\n actions: 'w-full margin-top-10',\r\n popup: 'payment-method-popup',\r\n confirmButton: 'payment-method-get-verification-button',\r\n \r\n },\r\n preConfirm: function () {\r\n let emailInput = document.getElementById('email');\r\n let emailError = document.getElementById('email-error');\r\n let walletInput = document.getElementById('wallet');\r\n let walletError = document.getElementById('wallet-error');\r\n let email = emailInput.value;\r\n let walletAddress = walletInput.value;\r\n\r\n if (DataValidator.isValidEmail(email) === false) {\r\n emailInput.className = 'swal-payment-methods-input error';\r\n emailError.className = 'swal-payment-methods-input-error';\r\n setTimeout(function () {\r\n emailInput.className = 'swal-payment-methods-input';\r\n emailError.className = 'swal-invisible-message';\r\n }, 3000);\r\n return false;\r\n }\r\n else if (DataValidator.isValidTetherWallet(walletAddress) === false) {\r\n walletInput.className = 'swal-payment-methods-input error';\r\n walletError.className = 'swal-payment-methods-input-error';\r\n setTimeout(function () {\r\n walletInput.className = 'swal-payment-methods-input';\r\n walletError.className = 'swal-invisible-message';\r\n }, 3000);\r\n return false;\r\n }\r\n else {\r\n const req = ApiFacade.addFaucetPay(email, walletAddress);\r\n req.then(function (res) {\r\n if (res.ok){\r\n //let result = res.response;\r\n if (component !== null) {\r\n const { paymentMethods } = component.state;\r\n paymentMethods.faucetPay = email;\r\n component.setState({\r\n paymentMethods: paymentMethods\r\n });\r\n }\r\n thisComponent.addPaymentMethodSuccess(mode);\r\n } else {\r\n let result = res.response;\r\n\r\n let text = null;\r\n if (result && result.message){\r\n text = result.message;\r\n } else {\r\n text = Backend.loadBackendMessages().errorMessage;\r\n }\r\n\r\n walletInput.className = 'swal-payment-methods-input error';\r\n walletError.className = 'swal-payment-methods-input-error';\r\n walletError.innerHTML = text;\r\n\r\n setTimeout(function () {\r\n walletInput.className = 'swal-payment-methods-input';\r\n walletError.className = 'swal-invisible-message';\r\n walletError.innerHTML = Content.getValue(\"invalid_email_address_error\");\r\n }, 3000);\r\n } \r\n });\r\n }\r\n return false;\r\n\r\n }\r\n });\r\n }\r\n\r\n addPaxumMethod(component, mode) {\r\n let swalHTML =\r\n <>\r\n Add Paxum method\r\n
    \r\n
    \r\n \r\n
    {Content.getValue(\"invalid_full_name_error\") + Content.getValue(\"invalid_full_name_error_2\")}
    \r\n
    \r\n
    \r\n \r\n
    {Content.getValue(\"insert_valid_birth_date_error\")}
    \r\n
    \r\n
    \r\n \r\n
    {Content.getValue(\"invalid_email_address_error\")}
    \r\n
    \r\n
    \r\n \r\n
    {Content.getValue(\"email_addresses_dont_match_error\")}
    \r\n
    \r\n
    \r\n
    \r\n ;\r\n\r\n MySwal.fire({\r\n html: swalHTML,\r\n background: '#ffffff',\r\n showCloseButton: false,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"submit_button_text\"),\r\n customClass: {\r\n popup: 'payment-method-popup padding-top-30',\r\n actions: 'w-full margin-top-10 ',\r\n confirmButton: 'payment-method-get-verification-button',\r\n \r\n },\r\n preConfirm: function () {\r\n let fullNameInput = document.getElementById('full-name');\r\n let dateInput = document.getElementById('paxum-birth-date');\r\n let paxumEmailInput = document.getElementById('paxum-email');\r\n let paxumEmailConfirmInput = document.getElementById('paxum-email-confirm');\r\n\r\n let fullNameError = document.getElementById('full-name-error');\r\n let dateError = document.getElementById('date-error');\r\n let paxumEmailError = document.getElementById('paxum-email-error');\r\n let paxumEmailConfirmError = document.getElementById('paxum-email-confirm-error');\r\n\r\n let fullName = fullNameInput.value;\r\n let date = dateInput.value;\r\n let paxumEmail = paxumEmailInput.value;\r\n let paxumEmailConfirm = paxumEmailConfirmInput.value;\r\n\r\n if (DataValidator.isValidFullName(fullName) === false) {\r\n fullNameInput.className = 'swal-payment-methods-input error';\r\n fullNameError.className = 'swal-payment-methods-input-error';\r\n setTimeout(function () {\r\n fullNameInput.className = 'swal-payment-methods-input';\r\n fullNameError.className = 'swal-invisible-message';\r\n }, 6000);\r\n }\r\n else if (date === '') {\r\n dateInput.className = 'swal-payment-methods-input error';\r\n dateError.className = 'swal-payment-methods-input-error';\r\n setTimeout(function () {\r\n dateInput.className = 'swal-payment-methods-input';\r\n dateError.className = 'swal-invisible-message';\r\n }, 3000);\r\n }\r\n else if (!DataValidator.isAdultAge(date)) {\r\n dateInput.className = 'swal-payment-methods-input error';\r\n dateError.className = 'swal-payment-methods-input-error';\r\n dateError.innerHTML = Content.getValue(\"underage_birth_date_error\");\r\n setTimeout(function () {\r\n dateInput.className = 'swal-payment-methods-input';\r\n dateError.className = 'swal-invisible-message';\r\n dateError.innerHTML = Content.getValue(\"insert_valid_birth_date_error\");\r\n }, 3000);\r\n }\r\n else if (DataValidator.isValidEmail(paxumEmail) === false) {\r\n paxumEmailInput.className = 'swal-payment-methods-input error';\r\n paxumEmailError.className = 'swal-payment-methods-input-error';\r\n setTimeout(function () {\r\n paxumEmailInput.className = 'swal-payment-methods-input';\r\n paxumEmailError.className = 'swal-invisible-message';\r\n }, 3000);\r\n }\r\n else if (DataValidator.isValidEmail(paxumEmailConfirm) === false || paxumEmail !== paxumEmailConfirm) {\r\n paxumEmailConfirmInput.className = 'swal-payment-methods-input error';\r\n paxumEmailConfirmError.className = 'swal-payment-methods-input-error';\r\n setTimeout(function () {\r\n paxumEmailConfirmInput.className = 'swal-payment-methods-input';\r\n paxumEmailConfirmError.className = 'swal-invisible-message';\r\n }, 3000);\r\n }\r\n else {\r\n const req = ApiFacade.addPaxum(paxumEmail, fullName, date);\r\n req.then(function (res) {\r\n let termsError = document.getElementById('terms-error');\r\n let result = res.response;\r\n if (res.ok){\r\n if (component !== null) {\r\n const { paymentMethods } = component.state;\r\n paymentMethods.paxum = paxumEmail;\r\n component.setState({\r\n paymentMethods: paymentMethods\r\n });\r\n }\r\n thisComponent.addPaymentMethodSuccess(mode);\r\n } else if (res.badRequest) {\r\n paxumEmailConfirmError.className = 'swal-payment-methods-input-error';\r\n paxumEmailConfirmError.innerHTML = Content.getValue(result.message);\r\n setTimeout(function () {\r\n paxumEmailConfirmError.className = 'swal-invisible-message';\r\n paxumEmailConfirmError.innerHTML = Content.getValue(\"email_addresses_dont_match_error\");\r\n }, 2000);\r\n } else {\r\n termsError.className = 'swal-invisible-message error';\r\n termsError.innerHTML = Backend.loadBackendMessages().errorMessage;\r\n\r\n setTimeout(function () {\r\n termsError.className = 'swal-invisible-message';\r\n termsError.innerHTML = '';\r\n }, 3000);\r\n }\r\n });\r\n }\r\n\r\n\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n addPlumMethod(component, mode) {\r\n thisComponent.plumAttemptsLeft = plumVerificationAttempts;\r\n let swalHTML =\r\n <>\r\n Add plum method\r\n

    {Content.getValue(\"payment_methods_add_plum_text\")}

    \r\n \r\n
    {Content.getValue(\"invalid_email_address_error\")}
    \r\n ;\r\n MySwal.fire({\r\n html: swalHTML,\r\n background: '#ffffff',\r\n showCloseButton: false,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"get_verification_code_button_text\"),\r\n customClass: {\r\n actions: 'w-full margin-top-10',\r\n popup: 'payment-method-popup',\r\n confirmButton: 'payment-method-get-verification-button',\r\n \r\n },\r\n preConfirm: function () {\r\n let emailInput = document.getElementById('email');\r\n let emailError = document.getElementById('email-error');\r\n let email = emailInput.value;\r\n\r\n if (DataValidator.isValidEmail(email) === false) {\r\n emailInput.className = 'swal-payment-methods-input error';\r\n emailError.className = 'swal-payment-methods-input-error';\r\n setTimeout(function () {\r\n emailInput.className = 'swal-payment-methods-input';\r\n emailError.className = 'swal-invisible-message';\r\n }, 3000);\r\n return false;\r\n }\r\n else {\r\n\r\n Mixpanel.trackByArgs(mixpanelEvents.email_verification_send_code, {});\r\n const req = ApiFacade.requestPlum(email);\r\n req.then(function (res) {\r\n let result = res.response;\r\n if (res.ok){\r\n thisComponent.plumEmail = email;\r\n thisComponent.plumAttemptsLeft = thisComponent.plumAttemptsLeft - 1;\r\n thisComponent.confirmAddPlumMethod(component, mode);\r\n } else {\r\n emailInput.className = 'swal-payment-methods-input error';\r\n emailError.className = 'swal-payment-methods-input-error';\r\n\r\n let text = null;\r\n if (result && result.message){\r\n text = Content.getValue(result.message);\r\n } else {\r\n text = Backend.loadBackendMessages().errorMessage;\r\n }\r\n emailError.innerHTML = text;\r\n\r\n setTimeout(function () {\r\n emailInput.className = 'swal-payment-methods-input';\r\n emailError.className = 'swal-invisible-message';\r\n emailError.innerHTML = Content.getValue(\"invalid_email_address_error\");\r\n }, 3000);\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n confirmAddPlumMethod(component, mode) {\r\n let myAuthCode = '';\r\n thisComponent.plumAttemptsLeft = plumVerificationAttempts;\r\n thisComponent.setCountdownInterval();\r\n\r\n let timeLeft = plumCodeValidityTime;\r\n let timeExpression = new Date(timeLeft * 1000).toISOString().substring(14, 19);\r\n\r\n let swalHTML =\r\n <>\r\n Swal withdrawl\r\n

    {Content.getValue(\"verification_code_label\")}

    \r\n
    \r\n { myAuthCode = code; }}\r\n containerClassName='verification-code-input'\r\n inputClassName='verification-code-input-item'\r\n />\r\n

    \r\n
    \r\n
    {Formatting.format(Content.getValue(\"code_will_expire_in_label\"), [\"(time)\"], [timeExpression])}
    \r\n ;\r\n\r\n MySwal.fire({\r\n html: swalHTML,\r\n background: '#ffffff',\r\n showCloseButton: false,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"submit_button_text\"),\r\n customClass: {\r\n actions: 'w-full margin-top-10',\r\n popup: 'payment-method-popup',\r\n confirmButton: 'payment-method-get-verification-button',\r\n \r\n },\r\n preConfirm: function () {\r\n\r\n let swalAuthCodeError = document.getElementById('swal-auth-code-error');\r\n\r\n if (myAuthCode.length !== plumVerificationCodeLength) {\r\n thisComponent.setAuthCodeError();\r\n } else {\r\n\r\n clearInterval(thisComponent.countdownInterval);\r\n\r\n document.getElementById('countdown-timer').innerHTML = '';\r\n\r\n thisComponent.removeAuthCodeError();\r\n\r\n const req = ApiFacade.addPlum(thisComponent.plumEmail, myAuthCode);\r\n req.then(function (res) {\r\n if (res.ok){\r\n //let result = res.response;\r\n if (component !== null) {\r\n const { paymentMethods } = component.state;\r\n paymentMethods.plum = thisComponent.plumEmail;\r\n component.setState({\r\n paymentMethods: paymentMethods\r\n });\r\n }\r\n thisComponent.addPaymentMethodSuccess(mode);\r\n } else if (res.badRequest){\r\n //let result = res.response;\r\n thisComponent.setAuthCodeError();\r\n swalAuthCodeError.className = 'swal-auth-code-error error';\r\n swalAuthCodeError.innerHTML = Content.getValue(\"plum_wrong_code\") + ' ' + Content.getValue(\"plum_send_again\") + '';\r\n document.getElementById('plum-send-code-again').onclick = function () { thisComponent.resendPlumCode(); };\r\n let swalButton = document.getElementsByClassName('swal2-confirm payment-method-get-verification-button swal2-styled')[0];\r\n swalButton.disabled = true;\r\n } else {\r\n swalAuthCodeError.className = 'swal-auth-code-error error';\r\n swalAuthCodeError.innerHTML = Backend.loadBackendMessages().errorMessage;\r\n setTimeout(function () {\r\n swalAuthCodeError.className = 'swal-auth-code-error';\r\n swalAuthCodeError.innerHTML = '';\r\n }, 3000);\r\n }\r\n });\r\n }\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n resendPlumCode() {\r\n if (thisComponent.plumAttemptsLeft === 0) {\r\n let swalAuthCodeError = document.getElementById('swal-auth-code-error');\r\n let swalButton = document.getElementsByClassName('swal2-confirm payment-method-get-verification-button swal2-styled')[0];\r\n swalAuthCodeError.className = 'swal-auth-code-error error';\r\n swalAuthCodeError.innerHTML = Content.getValue(\"allowed_verification_attempts_exceeded\");\r\n swalButton.disabled = true;\r\n }\r\n else {\r\n const req = ApiFacade.requestPlum(thisComponent.plumEmail);\r\n req.then(function (res) {\r\n let swalAuthCodeError = document.getElementById('swal-auth-code-error');\r\n if (res.ok){\r\n let swalButton = document.getElementsByClassName('swal2-confirm payment-method-get-verification-button swal2-styled')[0];\r\n swalButton.disabled = false;\r\n swalAuthCodeError.className = 'swal-auth-code-error';\r\n swalAuthCodeError.innerHTML = '';\r\n thisComponent.plumAttemptsLeft = thisComponent.plumAttemptsLeft - 1;\r\n thisComponent.removeAuthCodeError();\r\n } else if (res.badRequest || res.forbidden){\r\n let result = res.response;\r\n\r\n swalAuthCodeError.className = 'swal-auth-code-error error';\r\n swalAuthCodeError.innerHTML = Content.getValue(result.message);\r\n let swalButton = document.getElementsByClassName('swal2-confirm payment-method-get-verification-button swal2-styled')[0];\r\n swalButton.disabled = true;\r\n\r\n setTimeout(function () {\r\n swalAuthCodeError.className = 'swal-auth-code-error';\r\n swalAuthCodeError.innerHTML = '';\r\n }, 3000);\r\n } else {\r\n swalAuthCodeError.className = 'swal-auth-code-error error';\r\n swalAuthCodeError.innerHTML = Backend.loadBackendMessages().errorMessage;\r\n\r\n setTimeout(function () {\r\n swalAuthCodeError.className = 'swal-auth-code-error';\r\n swalAuthCodeError.innerHTML = '';\r\n }, 3000);\r\n }\r\n });\r\n }\r\n }\r\n\r\n setCountdownInterval() {\r\n\r\n let timeLeft = plumCodeValidityTime;\r\n let timeExpression = new Date(timeLeft * 1000).toISOString().substring(14, 19);\r\n\r\n thisComponent.countdownInterval = setInterval(function () {\r\n let swalButton = document.getElementsByClassName('swal2-confirm payment-method-get-verification-button swal2-styled')[0];\r\n if (swalButton === null) {\r\n clearInterval(thisComponent.countdownInterval);\r\n }\r\n let countdownTimer = document.getElementById('countdown-timer');\r\n let swalAuthCodeError = document.getElementById('swal-auth-code-error');\r\n timeLeft--;\r\n timeExpression = new Date(timeLeft * 1000).toISOString().substring(14, 19);\r\n countdownTimer.innerHTML = Formatting.format(Content.getValue(\"code_will_expire_in_label\"), [\"(time)\"], [timeExpression]);\r\n if (timeLeft === 0) {\r\n clearInterval(thisComponent.countdownInterval);\r\n countdownTimer.innerHTML = '';\r\n swalAuthCodeError.className = 'swal-auth-code-error error';\r\n swalAuthCodeError.innerHTML = Content.getValue(\"plum_code_expired\") + ' ' + Content.getValue(\"plum_send_again\") + '';\r\n document.getElementById('plum-send-code-again').onclick = function () { thisComponent.resendPlumCode(); };\r\n swalButton.disabled = true;\r\n }\r\n }, 1000);\r\n }\r\n\r\n setAuthCodeError() {\r\n\r\n let authCodeInputs = document.getElementsByClassName('verification-code-input-item');\r\n\r\n for (let authCodeInput of authCodeInputs) {\r\n authCodeInput.className = 'verification-code-input-item error';\r\n }\r\n }\r\n\r\n removeAuthCodeError() {\r\n\r\n let authCodeInputs = document.getElementsByClassName('verification-code-input-item');\r\n\r\n for (let authCodeInput of authCodeInputs) {\r\n authCodeInput.classList.remove('error');\r\n }\r\n }\r\n\r\n addPaymentMethodSuccess(mode) {\r\n\r\n if (mode === 'withdrawal') {\r\n let ctaDiv = document.getElementById('payment-method-cta-div');\r\n if (ctaDiv !== null) document.getElementById('content').removeChild(ctaDiv);\r\n }\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"add_payment_method_alert_title\") + '

    ',\r\n html: '\"TreatCoin

    ' + Content.getValue(\"payment_method_added_text_1\") + '

    ',\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'payment-method-add-confirm-button',\r\n \r\n }\r\n });\r\n }\r\n\r\n static processWithdrawal(options) {\r\n Mixpanel.trackByArgs(mixpanelEvents.withdraw_request_confirmed, options.mixpanelObject);\r\n\r\n const req = ApiFacade.withdrawCoins(options.treatCoinsAmount, options.cryptoCurrency, options.fiatCurrency, options.platform);\r\n req.then(function (res) {\r\n let result = res.response;\r\n\r\n let confirmationTitle;\r\n let confirmationText;\r\n if (res.ok) {\r\n setTimeout(function () { window.location.reload(); }, 2500);\r\n confirmationTitle = Content.getValue(\"coins_withdrawal_successful_title\");\r\n confirmationText = Content.getValue(\"coins_withdrawal_successful_message\");\r\n }\r\n else {\r\n confirmationTitle = Content.getValue(\"coins_withdrawal_failed_title\");\r\n confirmationText = Content.getValue(result.message);\r\n }\r\n MySwal.fire({\r\n title: '

    ' + confirmationTitle + '

    ',\r\n html: '

    ' + confirmationText + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button',\r\n \r\n }\r\n });\r\n });\r\n }\r\n\r\n static processConversion(options) {\r\n Mixpanel.trackByArgs(mixpanelEvents.withdraw_request_confirmed, options.mixpanelObject);\r\n\r\n const req = ApiFacade.convertCoins(options.treatCoinAmount);\r\n req.then(function (res) {\r\n let result = res.response;\r\n\r\n let confirmationTitle;\r\n let confirmationText;\r\n if (res.ok) {\r\n setTimeout(function () { window.location.reload(); }, 2500);\r\n confirmationTitle = Content.getValue(\"coins_withdrawal_successful_title\");\r\n confirmationText = Content.getValue(\"coins_withdrawal_successful_message\");\r\n }\r\n else {\r\n confirmationTitle = Content.getValue(\"coins_withdrawal_failed_title\");\r\n confirmationText = Content.getValue(result.message);\r\n }\r\n MySwal.fire({\r\n title: '

    ' + confirmationTitle + '

    ',\r\n html: '

    ' + confirmationText + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n \r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n });\r\n }\r\n\r\n static confirmWithdrawal(options) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"are_you_sure_title\") + '

    ',\r\n html: '

    ' + Formatting.format(Content.getValue(\"withdraw_coins_question\"), [\"(treatCoinsAmount)\", \"(usdAmount)\", \"(platform)\"], [options.treatCoinsAmount.toLocaleString(), options.usdAmount.toLocaleString(), options.platform]) + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: true,\r\n confirmButtonText: Content.getValue(\"continue_button_text\"),\r\n cancelButtonText: Content.getValue(\"cancel_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button',\r\n cancelButton: 'underlined-cancel-button',\r\n }\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.processWithdrawal(options);\r\n }\r\n });\r\n }\r\n\r\n static confirmConversion(options) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"are_you_sure_title\") + '

    ',\r\n html: '

    ' + Formatting.format(Content.getValue(\"convert_coins_question\"), [\"(treatCoinsAmount)\", \"(convertedTreatCoinsAmount)\"], [(+options.treatCoinAmount).toLocaleString(), (+options.convertedTreatCoinsAmount).toLocaleString()]) + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: true,\r\n confirmButtonText: Content.getValue(\"continue_button_text\"),\r\n cancelButtonText: Content.getValue(\"cancel_button_text\"),\r\n customClass: {\r\n container: 'z-1300',\r\n confirmButton: 'standard-confirm-button',\r\n cancelButton: 'underlined-cancel-button',\r\n }\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n this.processConversion(options);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default Payments;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport { Spinner } from 'react-spinners-css';\r\nimport Content from 'utils/Content.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Payments from 'utils/Payments.js';\r\n\r\nconst backendURLs = Backend.backendURLs;\r\nconst conversionDataURL = backendURLs.conversionDataURL;\r\nlet thisComponent;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst businessLogic = configuration.business_logic;\r\nconst UISettings = configuration.ui_settings;\r\nconst conversionModes = configuration.withdrawal_modes;\r\n\r\nconst minTreatCoin = businessLogic.min_treat_coin_conversion;\r\nconst maxWithdrawalInactivityTime = UISettings.max_withdrawal_inactivity_time;\r\n\r\nclass ConversionCalculator extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.loadURL = conversionDataURL;\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n usdAmountLoaded: true,\r\n isRestricted: false,\r\n treatCoinAmount: null,\r\n treatCoinAmountStr: '',\r\n usdAmount: null,\r\n amountAcceptable: false,\r\n conversionMode: null,\r\n platform: null\r\n };\r\n\r\n thisComponent = this;\r\n }\r\n\r\n updateUSDAmount() {\r\n const { treatCoinAmount } = thisComponent.state;\r\n const { conversionRate } = thisComponent.props;\r\n\r\n if (treatCoinAmount !== null) {\r\n thisComponent.setState({\r\n usdAmountLoaded: false\r\n });\r\n\r\n let usdAmount = (treatCoinAmount * conversionRate).toFixed(2);\r\n thisComponent.setState({\r\n usdAmountLoaded: true,\r\n usdAmount: usdAmount\r\n });\r\n }\r\n\r\n else {\r\n thisComponent.setState({\r\n usdAmountLoaded: true,\r\n usdAmount: null\r\n });\r\n }\r\n }\r\n\r\n initiateConversion() {\r\n clearTimeout(this.inactivityTimeout);\r\n this.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n\r\n const { treatCoinAmount, platform } = thisComponent.state;\r\n const { conversionRate } = thisComponent.props;\r\n\r\n const usdAmount = treatCoinAmount * conversionRate;\r\n\r\n const mixpanelObject = {\r\n withdraw_type: this.state.platform,\r\n withdraw_treatcoin_value: this.state.treatCoinAmount,\r\n withdraw_dollar_value: this.state.usdAmount,\r\n withdraw_account: this.state.usdAmount,\r\n is_withdraw_all: this.state.conversionMode === conversionModes.maximum,\r\n is_withdraw_minimum: this.state.conversionMode === conversionModes.minimum,\r\n treatcoin_available: this.state.coins,\r\n current_month_balance: this.state.monthlyCoins,\r\n }\r\n\r\n Payments.confirmConversion({ treatCoinAmount, convertedTreatCoinsAmount: usdAmount.toFixed(2), platform: platform, mixpanelObject: mixpanelObject });\r\n }\r\n\r\n updateConversionMode(newMode) {\r\n clearTimeout(this.inactivityTimeout);\r\n this.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n\r\n const { coins } = this.props;\r\n const { conversionMode } = this.state;\r\n\r\n if (conversionMode === newMode) {\r\n thisComponent.setState({\r\n conversionMode: null,\r\n treatCoinAmount: null,\r\n treatCoinAmountStr: '',\r\n amountAcceptable: false,\r\n usdAmount: null,\r\n });\r\n }\r\n else if (newMode === conversionModes.minimum || newMode === conversionModes.maximum) {\r\n let newTreatCoinAmount = null;\r\n if (newMode === conversionModes.minimum) newTreatCoinAmount = Math.min(minTreatCoin, coins);\r\n else if (newMode === conversionModes.maximum) newTreatCoinAmount = coins;\r\n thisComponent.setState({\r\n conversionMode: newMode,\r\n treatCoinAmount: newTreatCoinAmount,\r\n treatCoinAmountStr: newTreatCoinAmount.toFixed(2),\r\n amountAcceptable: (newTreatCoinAmount > minTreatCoin)\r\n });\r\n setTimeout(thisComponent.updateUSDAmount, 100);\r\n }\r\n }\r\n\r\n updateCoinsAmount(buttonPressed) {\r\n clearTimeout(this.inactivityTimeout);\r\n this.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n\r\n const { treatCoinAmountStr, coins } = this.state;\r\n\r\n let newAmountStr = null;\r\n\r\n if (!isNaN(buttonPressed) && !(treatCoinAmountStr.includes(\".\") && treatCoinAmountStr.split(\".\")[1].length === 2)) {\r\n newAmountStr = treatCoinAmountStr + buttonPressed;\r\n }\r\n else if (buttonPressed === '.' && treatCoinAmountStr.length > 0 && !treatCoinAmountStr.includes(\".\")) {\r\n newAmountStr = treatCoinAmountStr + buttonPressed;\r\n }\r\n else if (buttonPressed === 'del' && treatCoinAmountStr.length > 0) {\r\n newAmountStr = treatCoinAmountStr.slice(0, -1);\r\n }\r\n\r\n if (newAmountStr !== null) {\r\n let newAmountAcceptable;\r\n let newAmount = (newAmountStr.length > 0) ? Number(newAmountStr) : null;\r\n\r\n if (!newAmount || newAmount < minTreatCoin || newAmount > coins) newAmountAcceptable = false;\r\n else newAmountAcceptable = true;\r\n\r\n thisComponent.setState({\r\n treatCoinAmount: newAmount,\r\n treatCoinAmountStr: newAmountStr,\r\n amountAcceptable: newAmountAcceptable,\r\n conversionMode: null,\r\n });\r\n\r\n setTimeout(thisComponent.updateUSDAmount, 100);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n }\r\n\r\n componentWillUnmount() {\r\n clearTimeout(this.inactivityTimeout);\r\n }\r\n\r\n render() {\r\n const { conversionMode, treatCoinAmount, treatCoinAmountStr, amountAcceptable, usdAmount, usdAmountLoaded } = this.state;\r\n const { coins, conversionRate } = this.props;\r\n const buttonEnabled = (amountAcceptable && treatCoinAmount<=coins);\r\n \r\n return (\r\n <>\r\n
    \r\n {Formatting.format(Content.getValue(\"treat_coins_convert_balance_indicator\"), [\"(coins)\"], [Formatting.formatTreatCoinAmount(coins)])}\r\n
    \r\n
    \r\n {Formatting.format(Content.getValue(\"conversion_rate\"), [\"(coins)\"], [Formatting.formatTreatCoinAmount(conversionRate)])}\r\n
    \r\n
    \r\n
    \r\n {(treatCoinAmountStr === \"\") ? \"---\" : treatCoinAmountStr}\r\n |\r\n \r\n \r\n {(usdAmount || !usdAmountLoaded) ? Formatting.format(Content.getValue(\"calculated_convert_amount\"), [\"(usdAmount)\"], (usdAmount) ? [usdAmount.toLocaleString()] : [null]) : (null)}\r\n \r\n {(!usdAmountLoaded) ? () : (null)}\r\n
    \r\n
    {Content.getValue(\"usable_treat_coins\")}
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default ConversionCalculator;","import React from 'react';\r\nimport { TransitionGroup, CSSTransition } from 'react-transition-group';\r\nimport { Dialog } from \"@mui/material\";\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport OffersPageLinkButton from 'components/buttons/Offers_Page_Link_Button.js'\r\nimport TotalRewardsFund from 'components/prizes/Total_Rewards_Fund.js';\r\nimport Images from 'utils/Images.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\nimport ConvertButton from 'components/buttons/Convert_Button.js';\r\nimport ConversionCalculator from 'components/payouts/Conversion_Calculator.js';\r\nimport Payments from 'utils/Payments.js';\r\nimport UserData from 'User_Data.js';\r\nimport CompetitionInterval from 'utils/Competition_Interval.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst UISettings = configuration.ui_settings;\r\nconst websiteLocations = configuration.website_locations;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst historySwipeSensitivity = UISettings.history_swipe_sensitivity;\r\nlet touchStart;\r\nlet touchEnd;\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const conversionDataURL = backendURLs.conversionDataURL;\r\nlet thisComponent;\r\n\r\nclass Highscore extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.language = props.language;\r\n //this.loadURL = props.loadURL;\r\n this.isLeaderboards = props.isLeaderboards;\r\n this.isHomepage = props.isHomepage;\r\n this.swipeTrackerSet = false;\r\n this.currentYear = new Date().getUTCFullYear();\r\n this.currentMonth = new Date().getUTCMonth() + 1;\r\n this.scoreYear = this.currentYear;\r\n this.scoreMonth = this.currentMonth;\r\n if (props.isLeaderboards) {\r\n this.startMonth = globalConf.start_date.month;\r\n this.startYear = globalConf.start_date.year;\r\n }\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n items: [],\r\n myRanking: null,\r\n myScore: null,\r\n myPrizeAmount: null,\r\n myPrizeCurrency: null,\r\n prizeFundAmount: null,\r\n prizeFundCurrency: null,\r\n coins: null,\r\n conversionRate: null,\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n componentDidMount() {\r\n this.loadScore();\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null) {\r\n this.loadRate();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.swipeTrackerSet) {\r\n window.removeEventListener(\"touchstart\", this.handleStart, false);\r\n window.removeEventListener(\"touchend\", this.handleEnd, false);\r\n window.removeEventListener(\"touchmove\", this.handleMove, false);\r\n this.swipeTrackerSet = false;\r\n }\r\n }\r\n\r\n trackSwipping() {\r\n\r\n if (!this.swipeTrackerSet) {\r\n window.addEventListener(\"touchstart\", this.handleStart, false);\r\n window.addEventListener(\"touchend\", this.handleEnd, false);\r\n window.addEventListener(\"touchmove\", this.handleMove, false);\r\n this.swipeTrackerSet = true;\r\n }\r\n\r\n }\r\n\r\n handleStart(e) {\r\n touchStart = e.targetTouches[0].clientX;\r\n }\r\n\r\n handleMove(e) {\r\n touchEnd = e.targetTouches[0].clientX;\r\n }\r\n\r\n handleEnd() {\r\n if (touchStart - touchEnd > historySwipeSensitivity) {\r\n thisComponent.increaseScoreMonth();\r\n }\r\n\r\n if (touchStart - touchEnd < - historySwipeSensitivity) {\r\n thisComponent.decreaseScoreMonth();\r\n }\r\n }\r\n\r\n decreaseScoreMonth() {\r\n if (thisComponent.scoreYear === thisComponent.startYear && thisComponent.scoreMonth === thisComponent.startMonth) return;\r\n if (thisComponent.scoreMonth === 1) {\r\n thisComponent.scoreMonth = 12;\r\n thisComponent.scoreYear--;\r\n }\r\n else {\r\n thisComponent.scoreMonth--;\r\n }\r\n thisComponent.loadScore();\r\n }\r\n\r\n increaseScoreMonth() {\r\n if (thisComponent.scoreYear === thisComponent.currentYear && thisComponent.scoreMonth === thisComponent.currentMonth) return;\r\n if (thisComponent.scoreMonth === 12) {\r\n thisComponent.scoreMonth = 1;\r\n thisComponent.scoreYear++;\r\n }\r\n else {\r\n thisComponent.scoreMonth++;\r\n }\r\n thisComponent.loadScore();\r\n }\r\n\r\n loadRate() {\r\n ApiFacade.conversionRate().then(function (res) {\r\n if (res.unauthorized){\r\n thisComponent.setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else if (!res.ok) {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n } \r\n else {\r\n thisComponent.setState(prev => ({\r\n ...prev,\r\n coins: res.response.coins,\r\n conversionRate: res.response.conversionRate,\r\n }));\r\n }\r\n },\r\n (error) => {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n\r\n loadScore() {\r\n //let fetchURL;\r\n if (!this.language){\r\n this.language = Content.getPreferredLanguage();\r\n }\r\n\r\n let resPromise = null;\r\n if (this.scoreMonth === this.currentMonth && this.scoreYear === this.currentYear) {\r\n //fetchURL = this.loadURL;\r\n resPromise = ApiFacade.top100Users(this.language);\r\n }\r\n else {\r\n resPromise = ApiFacade.topScoreHistory(this.scoreMonth, this.scoreYear, this.language);\r\n //fetchURL = `${Backend.backendURLs.scoreHistoryURL}?language=${encodeURIComponent(preferredLanguage)}&month=${encodeURIComponent(this.scoreMonth)}&year=${encodeURIComponent(this.scoreYear)}`;\r\n }\r\n\r\n resPromise.then(async function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n items: result.scores,\r\n myRanking: result.myRanking,\r\n myScore: result.myScore,\r\n myPrizeAmount: result.myPrizeAmount,\r\n myPrizeCurrency: result.myPrizeCurrency,\r\n prizeFundAmount: result.prizeFundAmount,\r\n prizeFundCurrency: result.prizeFundCurrency,\r\n scoreMonthDisplay: CompetitionInterval() + ' ' + thisComponent.scoreYear\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n }); \r\n }\r\n\r\n render() {\r\n const { open, error, isLoaded, items, myRanking, myScore, myPrizeAmount, prizeFundAmount, prizeFundCurrency, scoreMonthDisplay, coins, conversionRate } = this.state;\r\n const itemsToDraw = items.slice(3);\r\n const [firstReward, secondReward, thirdReward] = items;\r\n\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (!isLoaded) {\r\n return
    {Backend.loadBackendMessages().loadingMessage}
    ;\r\n } else {\r\n if (this.isLeaderboards) {\r\n //this.trackSwipping();\r\n }\r\n return (\r\n <>\r\n
    \r\n \r\n \r\n
    \r\n {\r\n (this.isLeaderboards) ?\r\n (\r\n \r\n ) : (null)\r\n }\r\n {\r\n (myRanking !== undefined && myRanking !== null) ?\r\n (\r\n <>\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \"Highscore#{myRanking}
    {Content.getValue(\"highscore_you\")}{Formatting.formatTreatCoinAmount(myScore)}

    {Content.getValue(\"highscore_coins\")}

    {Formatting.formatTreatCoinAmount(myPrizeAmount)} {Content.getValue(\"treat_coin_abbreviation\")}

    {Content.getValue(\"highscore_prize\")}

    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n thisComponent.setState(prev => ({...prev, open: true}))} />\r\n\r\n \r\n
    \r\n \"Close thisComponent.setState(prev => ({...prev, open: false}))} />\r\n
    \r\n {Content.getValue(\"convert_to_competitions_label\")}\r\n \"Withdrawal Payments.showConvertHint()} />\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n

    { \r\n Formatting.format(Content.getValue(\"convert_button_description\"), [\"(rate)\"], [conversionRate])\r\n }

    \r\n
    \r\n \r\n )\r\n : (null)\r\n }\r\n {\r\n (this.isLeaderboards) ?\r\n (\r\n \r\n ) : (null)\r\n }\r\n
    \r\n \r\n
    {Content.getValue(\"second_label\")}
    \r\n
    \r\n \"Second\r\n
    \r\n
    \r\n
    {secondReward?.user}
    \r\n
    {Formatting.formatTreatCoinAmount(secondReward?.score)} {Content.getValue(\"highscore_coins\")}
    \r\n
    \r\n { Formatting.formatTreatCoinAmount(secondReward?.rewardAmount) } \r\n
    \r\n
    \r\n { Content.getValue('treat_coins') } \r\n
    \r\n
    \r\n
    \r\n \r\n \"First\r\n
    \r\n \"First\r\n
    \r\n
    \r\n
    {firstReward?.user}
    \r\n
    {Formatting.formatTreatCoinAmount(firstReward?.score)} {Content.getValue(\"highscore_coins\")}
    \r\n
    \r\n { Formatting.formatTreatCoinAmount(firstReward?.rewardAmount) } \r\n
    \r\n
    \r\n { Content.getValue('treat_coins') } \r\n
    \r\n
    \r\n
    \r\n \r\n
    {Content.getValue(\"third_label\")}
    \r\n
    \r\n \"Third\r\n
    \r\n
    \r\n
    {thirdReward?.user}
    \r\n
    {Formatting.formatTreatCoinAmount(thirdReward?.score)} {Content.getValue(\"highscore_coins\")}
    \r\n
    \r\n { Formatting.formatTreatCoinAmount(thirdReward?.rewardAmount) } \r\n
    \r\n
    \r\n { Content.getValue('treat_coins') } \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n (this.isLeaderboards) ?\r\n (\r\n {scoreMonthDisplay}\r\n ) : (null)\r\n }\r\n {\r\n (this.isLeaderboards && (this.scoreYear !== this.startYear || this.scoreMonth !== this.startMonth)) ?\r\n (\r\n (null)\r\n //<>‹\r\n ) : (null)\r\n }\r\n {\r\n (this.isLeaderboards && (this.scoreYear !== this.currentYear || this.scoreMonth !== this.currentMonth)) ?\r\n (\r\n (null)\r\n //<>›\r\n ) : (null)\r\n }\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {itemsToDraw.map(item => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n \r\n
    \"Highscore#{item.rank}
    {item.user}{Formatting.formatTreatCoinAmount(item.score)}

    {Content.getValue(\"highscore_coins\")}

    {Formatting.formatTreatCoinAmount(item.rewardAmount)} {Content.getValue(\"treat_coin_abbreviation\")}

    {Content.getValue(\"highscore_prize\")}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default Highscore;","import React, { useState } from \"react\";\r\nimport DatePicker from \"react-datepicker\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\n\r\nconst AddPaymentBirthDatePicker = () => {\r\n const [startDate, setStartDate] = useState(null);\r\n const currentDate = new Date();\r\n const maxAcceptanceDate = currentDate.setFullYear(currentDate.getFullYear() - 18);\r\n return (\r\n setStartDate(date)}\r\n maxDate={maxAcceptanceDate}\r\n onKeyDown={(e) => {\r\n e.preventDefault();\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default AddPaymentBirthDatePicker;","import React, { Component } from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nclass ConvertText extends Component {\r\n\r\n render() {\r\n return (\r\n
    \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default ConvertText;","import Content from 'utils/Content.js';\r\nimport { getMonth, getYear } from 'date-fns';\r\n\r\n\r\nconst CompetitionInterval = () => {\r\n const currentMonth = getMonth(new Date()) + 1;\r\n const currentYear= getYear(new Date())\r\n const customPeriodIndex = Math.ceil(currentMonth / 3) * 3 - 2;\r\n return [customPeriodIndex, customPeriodIndex + 1, customPeriodIndex + 2]\r\n .map((item) => new Date(currentYear, item - 1, 1).toLocaleString(Content.getValue(\"date_localization\"), { month: 'short' }))\r\n .join('-')\r\n .replaceAll('.', '');\r\n};\r\n\r\nexport default CompetitionInterval;\r\n","import React from 'react';\r\nimport { useState } from 'react';\r\nimport Content from 'utils/Content';\r\nimport Images from 'utils/Images';\r\nimport UserData from 'User_Data.js';\r\nimport { useEffect } from 'react';\r\nimport ApiFacade from 'ApiFacade.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nlet homeShownSections = JSON.parse(UserData.getItem(userDataKeys.home_show_sections) ? UserData.getItem(userDataKeys.home_show_sections) : '{}');\r\n\r\nfunction ShowMore({ children, sectionName }) {\r\n const [isExpanded, setIsExpanded] = useState(homeShownSections !== null ? homeShownSections[sectionName] : true);\r\n \r\n const isAuthorized = ApiFacade.isLoggedIn();\r\n\r\n useEffect(() => {\r\n if (homeShownSections === null) {\r\n UserData.setItem(userDataKeys.home_show_sections, JSON.stringify({}));\r\n }\r\n homeShownSections[sectionName] = isExpanded;\r\n UserData.setItem(userDataKeys.home_show_sections, JSON.stringify(homeShownSections));\r\n }, [isExpanded, sectionName])\r\n\r\n\r\n return (\r\n
    \r\n {\r\n (isAuthorized) ?\r\n (\r\n <>\r\n \r\n \r\n ) :\r\n (null)\r\n }\r\n
    \r\n {children}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default ShowMore;\r\n","import React from 'react';\r\n\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport CompetitionInterval from 'utils/Competition_Interval.js';\r\nimport Content from 'utils/Content.js';\r\nimport ShowMore from 'components/wrappers/Show_More';\r\n\r\nconst date = new Date();\r\nconst timeDiff = date.getTimezoneOffset() * 60000;\r\n\r\n\r\nconst badgeDimensions = {\r\n 1: { width: 196, height: 196 }, 2: { width: 71, height: 80 }, 3: { width: 63.5, heigth: 70 }\r\n};\r\n\r\nconst badgeClasses = {\r\n 1: 'first-position-badge', 2: 'second-position-badge', 3: 'third-position-badge'\r\n};\r\n\r\nlet thisComponent;\r\n\r\nclass CurrentRewards extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n currentRewards: {}\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n componentDidMount() {\r\n let preferredLanguage = Content.getPreferredLanguage();\r\n const req = ApiFacade.currentRewards(preferredLanguage);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n currentRewards: { top3: [result.rewards[1], result.rewards[0], result.rewards[2]], prizeFundAmount: result.prizeFundAmount, prizeFundCurrency: result.prizeFundCurrency }\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const thisMonth = new Date(date.getTime() + timeDiff).toLocaleString(Content.getValue(\"date_localization\"), { month: 'long' });\r\n const thisYear = new Date(date.getTime() + timeDiff).toLocaleString(Content.getValue(\"date_localization\"), { year: 'numeric' });\r\n const { error, isLoaded, currentRewards } = this.state;\r\n\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (!isLoaded) {\r\n return
    {Backend.loadBackendMessages().loadingMessage}
    ;\r\n } else {\r\n return (\r\n
    \r\n

    {Formatting.format(Content.getValue(\"prizes_for_month\"), [\"(thisMonth)\", \"(thisYear)\"], [CompetitionInterval(), thisYear])}

    \r\n \r\n
    \r\n
    \r\n
    \r\n \"Prizes\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {Content.getValue(\"divided_between_top_100\")}
    \r\n
    \r\n {`${Formatting.formatTreatCoinAmount(currentRewards.prizeFundAmount)} ${Content.getValue(\"treat_coin_abbreviation\")}`}\r\n
    \r\n
    \r\n

    {Content.getValue(\"top_3_prizes_label\")}

    \r\n
    \r\n
    \r\n {Content.getValue(\"highscore_first_prize\")}\r\n
    \r\n { Formatting.formatTreatCoinAmount(currentRewards.top3?.[0]?.amount) } \r\n
    \r\n
    \r\n { Content.getValue('treat_coins') } \r\n
    \r\n
    \r\n
    \r\n {Content.getValue(\"highscore_second_prize\")}\r\n
    \r\n { Formatting.formatTreatCoinAmount(currentRewards.top3?.[1]?.amount) } \r\n
    \r\n
    \r\n { Content.getValue('treat_coins') } \r\n
    \r\n
    \r\n
    \r\n {Content.getValue(\"highscore_third_prize\")}\r\n
    \r\n { Formatting.formatTreatCoinAmount(currentRewards.top3?.[2]?.amount) } \r\n
    \r\n
    \r\n { Content.getValue('treat_coins') } \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n\r\n renderBadgeImage(position) {\r\n const imageURL = Images.imageURL('place-' + position + '-reward.png');\r\n const description = 'position ' + position + ' badge';\r\n const dimensions = badgeDimensions[position];\r\n const imageClass = badgeClasses[position];\r\n \r\n return (\r\n {description}\r\n );\r\n }\r\n}\r\n\r\nexport default CurrentRewards;","import React, { useEffect, useState } from 'react';\r\nimport Images from 'utils/Images.js';\r\n\r\nimport JoinTreatCoinButton from 'components/buttons/Join_TreatCoin_Button.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport ShowMore from 'components/wrappers/Show_More';\r\n\r\nclass HowDoesItWorkSection extends React.Component {\r\n\r\n render() {\r\n return
    \r\n
    \r\n \r\n \r\n \r\n \"Broken\r\n \r\n
    \r\n
    \r\n

    {Content.getValue(\"how_does_it_work_subtitle\")}

    \r\n \r\n
    \r\n
    \r\n
    \r\n 1\r\n \"Step\r\n
    \r\n {Content.getValue(\"how_does_it_work_step_1_title\")}\r\n \r\n
    \r\n
    \r\n
    \r\n 2\r\n \"Step\r\n
    \r\n {Content.getValue(\"how_does_it_work_step_2_title\")}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n 3\r\n \"Step\r\n
    \r\n {Content.getValue(\"how_does_it_work_step_3_title\")}\r\n \r\n
    \r\n
    \r\n
    \r\n 4\r\n \"Step\r\n
    \r\n {Content.getValue(\"how_does_it_work_step_4_title\")}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    ;\r\n }\r\n\r\n}\r\n\r\nexport default HowDoesItWorkSection;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\n\r\n\r\nclass ScrollToTop extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.containerClass = props.containerClass;\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \"Scroll window.scrollTo({top: 0, left: 0, behavior: 'smooth'})}/>\r\n
    \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default ScrollToTop;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport ExpandableHashTags from 'components/offers/Expandable_Hashtags.js';\r\nimport OfferDifficultyIndicator from 'components/offers/Offer_Difficulty_Indicator.js';\r\nimport Offers from 'utils/Offers.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport OfferThemeIndicator from 'components/offers/Offer_Theme_Indicator.js'\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\nconst configuration = require('configuration.json');\r\n\r\nconst incompleteOfferModes = configuration.incomplete_offer_modes;\r\n\r\nclass IncompleteOffer extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.offer = props.offer;\r\n this.selectedHashTags = props.selectedHashTags;\r\n this.numIncompleteOffers = props.numIncompleteOffers;\r\n this.mode = props.mode;\r\n this.availabilityStatus = props.availabilityStatus;\r\n this.newCoins = props.newCoins;\r\n }\r\n\r\n static contextType = OfferPopupContext;\r\n\r\n render() {\r\n const { handleOfferIsOpened } = this.context;\r\n let offer = this.offer;\r\n let multiSteps = offer && JSON.parse(offer.multiSteps || null);\r\n const multiStepsSum = Offers.getMultiStepsSum(multiSteps);\r\n\r\n const prefixCpx = offer.uniqueID.substring(0, 3) === 'cpx';\r\n\r\n let offerContainerClassName;\r\n if (this.mode === incompleteOfferModes.more_offers_list) {\r\n offerContainerClassName = 'list-offer-container extra-offer';\r\n }\r\n else if (this.mode === incompleteOfferModes.favourite_offers_list) {\r\n offerContainerClassName = 'list-offer-container favourite-offer desktop';\r\n }\r\n else if (this.mode === incompleteOfferModes.recommended_offer) {\r\n offerContainerClassName = 'list-offer-container recommended-offer desktop';\r\n }\r\n else if (this.mode === incompleteOfferModes.unavailable_offer) {\r\n offerContainerClassName = 'list-offer-container unavailable-offer';\r\n }\r\n else {\r\n if (this.numIncompleteOffers > 1) offerContainerClassName = 'list-offer-container';\r\n else offerContainerClassName = 'single-list-offer-container desktop';\r\n }\r\n let hashTagsContainerClassName;\r\n if (this.mode === incompleteOfferModes.favourite_offers_list) {\r\n hashTagsContainerClassName = 'list-offer-hash-tags favourite-offer';\r\n }\r\n else {\r\n hashTagsContainerClassName = 'list-offer-hash-tags';\r\n }\r\n return
    \r\n {(this.mode === incompleteOfferModes.unavailable_offer) ? (\r\n
    {this.availabilityStatus}
    \r\n ) : (null)\r\n }\r\n
    { handleOfferIsOpened({ offer }); }}>\r\n \r\n {offer.description}\r\n \r\n
    \r\n
    \r\n
    \r\n {(this.mode !== incompleteOfferModes.recommended_offer && this.mode !== incompleteOfferModes.unavailable_offer) ? (
    { handleOfferIsOpened({ offer }); }}>{offer.appName}
    ) : (null)}\r\n
    { handleOfferIsOpened({ offer }); }}>{offer.MainTitle}
    \r\n
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>\r\n \r\n
    \r\n
    ;\r\n }\r\n}\r\n\r\nexport default IncompleteOffer;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Images from 'utils/Images.js'\r\nimport IncompleteOffer from 'components/offers/Incomplete_Offer.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const recommendedOfferURL = backendURLs.recommendedOfferURL;\r\n\r\nlet thisComponent;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst incompleteOfferModes = configuration.incomplete_offer_modes;\r\nconst recommendedOfferStatuses = configuration.recommended_offer_statuses;\r\n\r\nclass RecommendedOfferDetails extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n //this.loadURL = recommendedOfferURL;\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n recommenderDetails: null,\r\n recommendedOffer: null,\r\n alternativeOffer: null,\r\n offerAvailable: null,\r\n offerStatus: null\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n componentDidMount() {\r\n let recommendedOffer = UserData.getItem(userDataKeys.recommended_offer);\r\n let offerRecommender = UserData.getItem(userDataKeys.offer_recommender);\r\n\r\n if (recommendedOffer !== null && offerRecommender !== null && !ApiFacade.isLoggedIn()) {\r\n let platform = Platform.getPlatformName();\r\n\r\n //let calledURL = `${recommendedOfferURL}?recommendedOffer=${encodeURIComponent(recommendedOffer)}&offerRecommender=${encodeURIComponent(offerRecommender)}&platform=${encodeURIComponent(platform)}`;\r\n const req = ApiFacade.recommendedOffer(recommendedOffer, offerRecommender, platform);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n\r\n thisComponent.setState({\r\n isLoaded: true,\r\n recommendedOffer: result.recommendedOffer,\r\n alternativeOffer: result.alternativeOffer,\r\n recommenderDetails: result.recommenderDetails,\r\n offerAvailable: result.offerAvailable,\r\n offerStatus: result.offerStatus\r\n });\r\n } else if (res.unauthorized){\r\n thisComponent.setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n } \r\n },\r\n (error) => {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, recommendedOffer, alternativeOffer, recommenderDetails, offerAvailable, offerStatus } = this.state;\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (!isLoaded) {\r\n return <>\r\n } else {\r\n if (offerAvailable === false) {\r\n if (alternativeOffer !== null) {\r\n UserData.setItem(userDataKeys.recommended_offer, alternativeOffer.uniqueID);\r\n }\r\n else {\r\n UserData.removeItem(userDataKeys.recommended_offer);\r\n UserData.removeItem(userDataKeys.offer_recommender);\r\n }\r\n }\r\n return (recommenderDetails !== null && \r\n recommendedOffer !== null && \r\n (offerAvailable || (offerStatus !== recommendedOfferStatuses.does_not_exist && alternativeOffer !== null))) ?\r\n (\r\n
    \r\n
    {offerAvailable ? Content.getValue(\"recommended_offer_title\") : Content.getValue(\"recommended_offer_title_not_available\")}
    \r\n \r\n
    \r\n
    \r\n \"Recommender\r\n
    {Content.getValue(\"recommended_by\")} {recommenderDetails.username}
    \r\n
    \r\n\r\n
    \r\n \"Recommender\r\n
    {Formatting.format(Content.getValue(\"recommender_treatcoins_earned\"), [\"(earned)\"], [recommenderDetails.earned])}
    \r\n
    \r\n\r\n
    \r\n \"Recommender\r\n
    {Formatting.format(Content.getValue(\"recommender_joined\"), [\"(joinedAgo)\"], [recommenderDetails.joinedAgo])}
    \r\n
    \r\n\r\n
    \r\n {\r\n (offerAvailable === false && alternativeOffer !== null) ? (\r\n <>\r\n
    {Content.getValue(\"recommended_offer_title_instead\")}
    \r\n \r\n \r\n ) : (null)\r\n }\r\n
    \r\n ) : (null);\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default RecommendedOfferDetails;","import React from 'react';\r\nimport { Swiper, SwiperSlide, } from \"swiper/react\";\r\nimport \"swiper/css\";\r\nimport \"swiper/css/pagination\";\r\nimport \"swiper/css/navigation\";\r\n\r\nimport Content from 'utils/Content.js';\r\nimport ShowMore from 'components/wrappers/Show_More';\r\nconst configuration = require('configuration.json');\r\nconst nftValuePerTreatCoin = configuration.business_logic.nft_value_per_treat_coin\r\nconst usdValuePerTreatCoin = configuration.business_logic.usd_value_per_treatcoin\r\n\r\nclass TreatCoinsEqualsMoneySection extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentIndex: 0,\r\n earnAmount: 0,\r\n }\r\n this.formatter = new Intl.NumberFormat('en').format;\r\n }\r\n\r\n handleSlideChange = (evt) => {\r\n const amount = Content.getValue(\"treat_coins_equals_money_step_1_text\").find((each, idx) => idx===evt.realIndex);\r\n this.setState({\r\n earnAmount: amount,\r\n currentIndex: evt.realIndex\r\n });\r\n };\r\n\r\n render() {\r\n return <>\r\n

    {Content.getValue(\"treat_coins_equals_money_subtitle\")}

    \r\n \r\n
    \r\n
    \r\n {Content.getValue(\"treat_coins_equals_money_step_1_title\")}\r\n \r\n {Content.getValue(\"treat_coins_equals_money_step_1_text\").map((each, idx) => (\r\n \r\n
    \r\n
    \r\n {this.formatter(each)}\r\n {Content.getValue(\"treat_coin_abbreviation\")}\r\n
    \r\n
    \r\n \r\n ))}\r\n \r\n\r\n
    \r\n {Content.getValue(\"treat_coins_equals_money_step_2_title\")}\r\n
    \r\n\r\n
    \r\n
    \r\n

    \r\n ${this.formatter(this.state.earnAmount * usdValuePerTreatCoin)}\r\n

    \r\n

    {Content.getValue(\"treat_coins_equals_money_step_2_text\")}

    \r\n
    \r\n
    \r\n\r\n {/*
    \r\n {Content.getValue(\"treat_coins_equals_money_step_3_title\")}\r\n
    */}\r\n \r\n {/*
    \r\n
    \r\n

    \r\n ${this.formatter(this.state.earnAmount * nftValuePerTreatCoin)}\r\n

    \r\n

    {Content.getValue(\"treat_coins_equals_money_step_3_text\")}

    \r\n
    \r\n
    */}\r\n\r\n
    \r\n {Content.getValue(\"treat_coins_equals_money_step_4_title\")}\r\n
    \r\n\r\n
    \r\n

    {Content.getValue(\"treat_coins_equals_money_step_4_text\")}

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n ;\r\n }\r\n\r\n}\r\n\r\nexport default TreatCoinsEqualsMoneySection;","import ExpandableHashtags from 'components/offers/Expandable_Hashtags.js';\r\nimport OfferDifficultyIndicator from 'components/offers/Offer_Difficulty_Indicator.js';\r\nimport OfferThemeIndicator from 'components/offers/Offer_Theme_Indicator.js';\r\nimport BlurProvider from 'components/offer_providers/Blur_Provider.js';\r\nimport { memo, useEffect, useState } from 'react';\r\nimport 'swiper/css';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport Content from 'utils/Content.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport useTimer from 'utils/hooks/useTimer.js';\r\nimport Offers from 'utils/Offers.js';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\nimport { useContext } from 'react';\r\n\r\nconst configuration = require('configuration.json');\r\nconst featuredOfferTypes = configuration.featured_offer_types;\r\n\r\nconst secondToMillisecond = 1000;\r\n\r\nconst HotOfferHomepage = ({\r\n offers,\r\n type,\r\n isFirstTime,\r\n setIsFirstTime\r\n}) => {\r\n const [state, setState] = useState({\r\n time: null,\r\n limited: false,\r\n });\r\n const [activeindex, setActiveIndex] = useState(0);\r\n const { handleOfferIsOpened } = useContext(OfferPopupContext);\r\n const offer = type !== featuredOfferTypes.x2_offer ? offers[activeindex] : offers;\r\n\r\n const padTo2Digits = (num) => {\r\n return num.toString().padStart(2, '0');\r\n }\r\n\r\n const handleSlideChange = (data) => setActiveIndex(data.realIndex);\r\n\r\n const ordinalSuffixOf = (i) => {\r\n const j = i % 10,\r\n k = i % 100;\r\n if (j === 1 && k !== 11) {\r\n return i + \"st\";\r\n }\r\n if (j === 2 && k !== 12) {\r\n return i + \"nd\";\r\n }\r\n if (j === 3 && k !== 13) {\r\n return i + \"rd\";\r\n }\r\n return i + \"th\";\r\n }\r\n\r\n const { hours, minutes, seconds } = useTimer(offer?.expireTime * secondToMillisecond);\r\n\r\n useEffect(() => {\r\n const isLimited = (hours <= 0) && (minutes <= 0) && (seconds <= 0);\r\n if (isLimited) {\r\n setState(prev => ({\r\n ...prev,\r\n limited: true\r\n }));\r\n return;\r\n }\r\n const time = hours > 0 ?\r\n (padTo2Digits(hours) + ':' + padTo2Digits(minutes) + ':' + padTo2Digits(seconds)) :\r\n (padTo2Digits(minutes) + ':' + padTo2Digits(seconds));\r\n setState(prev => ({\r\n ...prev,\r\n time\r\n }))\r\n if (time && !isFirstTime) setIsFirstTime(true);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [seconds]);\r\n\r\n const MemoizedSwiperSlide = memo(\r\n () => (\r\n {\r\n offers.map((item, idx) => (\r\n \r\n
    \r\n
    \r\n {idx === 0 ? 'Most recent' : ordinalSuffixOf(idx + 1) + ' most recent'}\r\n
    \r\n

    \r\n {type === featuredOfferTypes.hot_offer ? Content.getValue(\"hot_offer_award\") : Content.getValue(\"x2offer_award\")}\r\n

    \r\n

    \r\n {state.time}\r\n

    \r\n

    \r\n {Content.getValue(\"minutes_left\")}\r\n

    \r\n
    \r\n
    \r\n ))\r\n }\r\n \r\n ),\r\n (prevProps, nextProps) => prevProps.idx === nextProps.idx\r\n );\r\n\r\n const offerElement = (\r\n <>\r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>\r\n \r\n {offer.description}\r\n \r\n
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>{offer.appName}
    \r\n
    { handleOfferIsOpened({ offer }); }}>{offer.MainTitle}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n\r\n return (\r\n <>\r\n {\r\n // (!state.limited && isFirstTime) ?\r\n // (\r\n
    \r\n
    \r\n

    \r\n { type !== featuredOfferTypes.x2_offer ?\r\n (\r\n offers?.length>0 ?\r\n \r\n :\r\n null\r\n ) :\r\n Content.getValue(\"x2offer\")\r\n }\r\n

    \r\n\r\n {\r\n type !== featuredOfferTypes.hot_offer ?\r\n <>\r\n

    \r\n {Content.getValue(\"x2offer_award\")}\r\n

    \r\n

    \r\n {state.time}\r\n

    \r\n

    \r\n {Content.getValue(\"minutes_left\")}\r\n

    \r\n :\r\n null\r\n }\r\n
    \r\n\r\n {\r\n !offer.isAvailable ?\r\n (\r\n \r\n { offerElement }\r\n \r\n ) :\r\n offerElement\r\n }\r\n
    \r\n // ) \r\n // (
    )\r\n }\r\n \r\n );\r\n}\r\n\r\nexport default HotOfferHomepage;","import React from 'react';\r\nimport Images from 'utils/Images';\r\n\r\nfunction ChooseSocialsButton({ onClick, imageRoute, text, chosen }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default ChooseSocialsButton;","import React from 'react';\r\nimport Images from 'utils/Images';\r\n\r\nfunction LinkButton({ onClick, imageRoute, text, disabled }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default LinkButton;","import React, { useState } from 'react';\r\nimport Content from 'utils/Content';\r\nimport Images from 'utils/Images';\r\nimport ChooseSocialsButton from 'components/buttons/Choose_Socials_Button';\r\nimport LinkButton from 'components/buttons/Link_Button';\r\nimport UserData from 'User_Data.js';\r\nimport Sharing from 'utils/Sharing';\r\nimport { useEffect } from 'react';\r\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst websiteReferralLink = UserData.getItem(userDataKeys.website_referral_link);\r\nconst telegramReferralLink = UserData.getItem(userDataKeys.telegram_referral_link);\r\n\r\nlet authorized = Boolean(UserData.getItem(userDataKeys.jwt_token));\r\n\r\nconst StatsShowHeading = ({ setShowStats, showStats }) => (\r\n \r\n\r\n \r\n
    \r\n
    \r\n

    {Content.getValue('rewards')}

    \r\n \"TreatCoin\"\r\n
    \r\n

    {Content.getValue('from_your_team')}

    \r\n
    \r\n
    \r\n)\r\n\r\nfunction EarnTeamPopup({ handleClosePopup }) {\r\n const [showStats, setShowStats] = useState(false);\r\n const [link, setLink] = useState(null);\r\n const [isCopied, setIsCopied] = useState(false);\r\n const [isOpened, setIsOpened] = useState(authorized);\r\n\r\n const setInfo = (num) => {\r\n setLink(num === 1 ? websiteReferralLink : telegramReferralLink);\r\n };\r\n\r\n const copyLink = async () => {\r\n await Sharing.copyToClipboard(link, Content.getValue(\"copy_to_clipboard_fallback_title\"), Content.getValue(\"copy_to_clipboard_fallback_text\"));\r\n setIsCopied(true);\r\n setTimeout(() => {\r\n setLink(null);\r\n setIsCopied(false);\r\n }, 1000);\r\n };\r\n\r\n const shareLink = () => {\r\n setLink(null);\r\n return Sharing.shareLink(\r\n {\r\n title: Content.getValue(\"join_treatcoin\"),\r\n text: Content.getValue(\"share_link_cta_message\"),\r\n url: link,\r\n fallbackTitle: Content.getValue(\"share_link_fallback_title\"),\r\n fallbackMessage: Content.getValue(\"share_link_fallback_message\"),\r\n detailsImageURL: null\r\n }\r\n );\r\n };\r\n return (<>\r\n
    \r\n

    {Content.getValue('earn_building_team')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {Content.getValue('invite_uppercase')}\r\n \r\n {Content.getValue('your_team_through')}\r\n

    \r\n\r\n
    \r\n setInfo(1)}\r\n />\r\n setInfo(2)}\r\n />\r\n
    \r\n {link &&\r\n { setLink(null); }}>\r\n \r\n

    {Content.getValue('back')}

    \r\n
    \r\n }\r\n
    \r\n\r\n \r\n

    {Content.getValue('or_label')}

    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n { setShowStats(false); }}\r\n className='hidden-button earn-team-popup-cancel-btn'>\r\n \"TreatCoin\"\r\n \r\n
    \r\n

    {Content.getValue('1st_gen_earns')}

    \r\n
    \r\n
    \r\n \"TreatCoin\"\r\n

    \r\n 150\r\n

    \r\n
    \r\n

    {Content.getValue('per_sign_up')}

    \r\n
    \r\n
    \r\n
    \r\n \"TreatCoin\"\r\n

    37%

    \r\n
    \r\n

    {Content.getValue('on_top_of')}

    \r\n
    \r\n

    {Content.getValue('offers_they_complete')}

    \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue('2nd_gen_earns')}

    \r\n
    \r\n
    \r\n \"TreatCoin\"\r\n

    \r\n 50\r\n

    \r\n
    \r\n

    {Content.getValue('per_sign_up')}

    \r\n
    \r\n
    \r\n
    \r\n \"TreatCoin\"\r\n

    14%

    \r\n
    \r\n

    {Content.getValue('on_top_of')}

    \r\n
    \r\n

    {Content.getValue('offers_they_complete')}

    \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue('3rd_gen_earns')}

    \r\n
    \r\n
    \r\n \"TreatCoin\"\r\n

    \r\n 20\r\n

    \r\n
    \r\n

    {Content.getValue('per_sign_up')}

    \r\n
    \r\n
    \r\n
    \r\n \"TreatCoin\"\r\n

    6%

    \r\n
    \r\n

    {Content.getValue('on_top_of')}

    \r\n
    \r\n

    {Content.getValue('offers_they_complete')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default EarnTeamPopup;","import React, { useState, useEffect, memo } from 'react';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport UserData from 'User_Data.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport HotOfferHomepage from 'components/offers/Hot_Offer_Homepage.js';\r\nimport UserStatsDetails from 'components/one_two_treat_area/User_Stats_Details.js';\r\nimport EarnTeamPopup from 'components/offers/Earn_Team_Popup';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n//const backendURLs = Backend.backendURLs;\r\n//const hotOfferURL = backendURLs.hotOfferUrl;\r\nconst incompleteOfferModes = configuration.incomplete_offer_modes;\r\nconst featuredOfferTypes = configuration.featured_offer_types;\r\n\r\nfunction HotOfferLoaderHomepage() {\r\n const [state, setState] = useState({\r\n hotOffers: null,\r\n x2Offer: null,\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n })\r\n const [isFirstTime, setIsFirstTime] = useState(false);\r\n\r\n useEffect(() => {\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null) {\r\n const platform = Platform.getPlatformName();\r\n const req = ApiFacade.hotOffers(platform);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n UserData.setItem(userDataKeys.offer_completion_disclaimer_displayed, result.coinsDisclaimerDisplayed);\r\n const offers = result.hotOffers;\r\n setState({\r\n isLoaded: true,\r\n hotOffers: offers,\r\n x2Offer: result.x2Offer\r\n });\r\n } else if (res.unauthorized){\r\n setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n } \r\n },\r\n (error) => {\r\n setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n .catch(error => setState({ isLoaded: true, error }))\r\n }\r\n }, []);\r\n\r\n const { hotOffers, x2Offer } = state;\r\n const hotOffer = (hotOffers?.length > 0) ? hotOffers: null;\r\n const isX2Offer = x2Offer;\r\n const type = hotOffer ? featuredOfferTypes.hot_offer : featuredOfferTypes.x2_offer;\r\n const offers = hotOffer || (isX2Offer && x2Offer);\r\n\r\n if (state.isLoaded) {\r\n if (offers) {\r\n return (\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n }\r\n }\r\n};\r\n\r\nexport default memo(HotOfferLoaderHomepage);","import React, { useState, useEffect, useRef, memo } from 'react';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Hi from 'components/static/Hi.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport UserData from 'User_Data.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst uiSettings = configuration.ui_settings;\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const userStatsURL = backendURLs.userStatsUrl;\r\n\r\nconst animationDuration = uiSettings.user_stats_animation_duration;\r\n\r\nconst UserStatsHomepage = () => {\r\n const [isDetailsVisible, setIsDetailsVisible] = useState(false);\r\n const [state, setState] = useState({\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n coinsEarnedToday: 0,\r\n myTeamMembers: 0,\r\n refCount: 0,\r\n refAmount: 0,\r\n ref2ndGenCount: 0,\r\n ref2ndGenAmount: 0,\r\n competitionValidCoins: 0,\r\n position: 0,\r\n availableToUse: 0,\r\n totalCoinsEarned: 0,\r\n username: '',\r\n })\r\n //const loadURL = userStatsURL;\r\n\r\n const earnedRef = useRef();\r\n const membersRef = useRef();\r\n const refCountRef = useRef();\r\n const refAmountRef = useRef();\r\n const ref2ndGenCountRef = useRef();\r\n const ref2ndGenAmountRef = useRef();\r\n const ref3rdGenCountRef = useRef();\r\n const ref3rdGenAmountRef = useRef();\r\n const competitionValidCoinsRef = useRef();\r\n const availableToUseRef = useRef();\r\n const totalCoinsEarnedRef = useRef();\r\n\r\n const { refCount,\r\n refAmount,\r\n ref2ndGenCount,\r\n ref2ndGenAmount,\r\n ref3rdGenCount,\r\n ref3rdGenAmount,\r\n competitionValidCoins,\r\n position,\r\n availableToUse,\r\n totalCoinsEarned,\r\n username } = state;\r\n\r\n const animateHandler = (obj, prevValue, currValue) => {\r\n if (prevValue < currValue) \r\n animateValue(obj, prevValue || 0, currValue || 0, animationDuration);\r\n }\r\n\r\n const animateValue = (obj, start, end, duration) => {\r\n let startTimestamp = null;\r\n const step = (timestamp) => {\r\n if (!startTimestamp) startTimestamp = timestamp;\r\n const progress = Math.min((timestamp - startTimestamp) / duration, 1);\r\n const data = Math.floor(progress * (end - start) + start);\r\n obj.innerHTML = Formatting.formatTreatCoinAmount(data || 0);\r\n if (progress < 1) {\r\n window.requestAnimationFrame(step);\r\n }\r\n else window.cancelAnimationFrame(step)\r\n };\r\n window.requestAnimationFrame(step);\r\n }\r\n\r\n const setLocalStorageVisibleData = ({\r\n coinsEarnedToday,\r\n myTeamMembers,\r\n }) => {\r\n const ext = JSON.parse(UserData.getItem(userDataKeys.stats));\r\n const data = {\r\n ...ext,\r\n [userDataKeys.stats_values.earned_today]: coinsEarnedToday,\r\n [userDataKeys.stats_values.team_members]: myTeamMembers,\r\n }\r\n UserData.setItem(userDataKeys.stats, JSON.stringify(data));\r\n }\r\n\r\n const setLocalStorageExpandableData = ({\r\n refCount,\r\n refAmount,\r\n ref2ndGenCount,\r\n ref2ndGenAmount,\r\n ref3rdGenCount,\r\n ref3rdGenAmount,\r\n competitionValidCoins,\r\n availableToUse,\r\n totalCoinsEarned,\r\n username\r\n }) => {\r\n const ext = JSON.parse(UserData.getItem(userDataKeys.stats));\r\n const data = {\r\n ...ext,\r\n [userDataKeys.stats_values.ref_count]: refCount,\r\n [userDataKeys.stats_values.ref_amount]: refAmount,\r\n [userDataKeys.stats_values.ref_2nd_gen_count]: ref2ndGenCount,\r\n [userDataKeys.stats_values.ref_2nd_gen_amount]: ref2ndGenAmount,\r\n [userDataKeys.stats_values.ref_3rd_gen_count]: ref3rdGenCount || 0,\r\n [userDataKeys.stats_values.ref_3rd_gen_amount]: ref3rdGenAmount || 0,\r\n [userDataKeys.stats_values.competition_valid_coins]: competitionValidCoins,\r\n [userDataKeys.stats_values.available_to_use]: availableToUse,\r\n [userDataKeys.stats_values.total_coins_earned]: totalCoinsEarned,\r\n [userDataKeys.stats_values.username]: username\r\n };\r\n UserData.setItem(userDataKeys.stats, JSON.stringify(data));\r\n }\r\n\r\n useEffect(() => {\r\n if (ApiFacade.isLoggedIn()) {\r\n const req = ApiFacade.userStats();\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n setState({\r\n isLoaded: true,\r\n ...result.userStats,\r\n });\r\n\r\n const stats = JSON.parse(UserData.getItem(userDataKeys.stats));\r\n const prevCoinsEarnedToday = stats?.[userDataKeys.stats_values.earned_today] || 0;\r\n const prevMyTeamMembers = stats?.[userDataKeys.stats_values.team_members] || 0;\r\n\r\n const { coinsEarnedToday, myTeamMembers } = result.userStats;\r\n\r\n if (prevCoinsEarnedToday < coinsEarnedToday) \r\n animateValue(earnedRef.current, prevCoinsEarnedToday, coinsEarnedToday, animationDuration);\r\n if (prevMyTeamMembers < myTeamMembers) \r\n animateValue(membersRef.current, prevMyTeamMembers, myTeamMembers, animationDuration);\r\n\r\n setLocalStorageVisibleData(result.userStats);\r\n } else if (res.unauthorized){\r\n setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n }\r\n else {\r\n setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n .catch(error => setState({ isLoaded: true, error }))\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isDetailsVisible) {\r\n const stats = JSON.parse(UserData.getItem(userDataKeys.stats));\r\n const prevRefCount = +(stats?.[userDataKeys.stats_values.ref_count] || 0);\r\n const prevRefAmount = +(stats?.[userDataKeys.stats_values.ref_amount] || 0);\r\n const prevRef2ndGenCount = +(stats?.[userDataKeys.stats_values.ref_2nd_gen_count] || 0);\r\n const prevRef2ndGenAmount = +(stats?.[userDataKeys.stats_values.ref_2nd_gen_amount] || 0);\r\n const prevRef3rdGenCount = +(stats?.[userDataKeys.stats_values.ref_3rd_gen_count] || 0);\r\n const prevRef3rdGenAmount = +(stats?.[userDataKeys.stats_values.ref_3rd_gen_amount] || 0);\r\n const prevCompetitionValidCoins = +(stats?.[userDataKeys.stats_values.competition_valid_coins] || 0);\r\n const prevAvailableToUse = +(stats?.[userDataKeys.stats_values.available_to_use] || 0);\r\n const prevTotalCoinsEarned = +(stats?.[userDataKeys.stats_values.total_coins_earned] || 0);\r\n\r\n animateHandler(refCountRef.current, prevRefCount, refCount);\r\n animateHandler(refAmountRef.current, prevRefAmount, refAmount);\r\n animateHandler(ref2ndGenCountRef.current, prevRef2ndGenCount, ref2ndGenCount);\r\n animateHandler(ref2ndGenAmountRef.current, prevRef2ndGenAmount, ref2ndGenAmount);\r\n animateHandler(ref3rdGenCountRef.current, prevRef3rdGenCount, ref3rdGenCount);\r\n animateHandler(ref3rdGenAmountRef.current, prevRef3rdGenAmount, ref3rdGenAmount);\r\n animateHandler(competitionValidCoinsRef.current, prevCompetitionValidCoins, competitionValidCoins);\r\n animateHandler(availableToUseRef.current, prevAvailableToUse, availableToUse);\r\n animateHandler(totalCoinsEarnedRef.current, prevTotalCoinsEarned, totalCoinsEarned);\r\n\r\n setLocalStorageExpandableData({\r\n refCount,\r\n refAmount,\r\n ref2ndGenCount,\r\n ref2ndGenAmount,\r\n ref3rdGenCount,\r\n ref3rdGenAmount,\r\n competitionValidCoins,\r\n availableToUse,\r\n totalCoinsEarned,\r\n username\r\n })\r\n }\r\n }, [isDetailsVisible]);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    { Content.getValue(\"coins_earned_today\") }

    \r\n
    \r\n Coins earned today\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.earned_today] || 0) }\r\n \r\n
    \r\n
    \r\n
    \r\n

    { Content.getValue(\"my_team_members\") }

    \r\n
    \r\n \r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.team_members] || 0) }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n Expand / Collapse setIsDetailsVisible(prev => !prev)} />\r\n {isDetailsVisible ?\r\n (\r\n
    \r\n
    \r\n { Content.getValue(\"first_gen_ref\") }\r\n \r\n #\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_count] || 0) }\r\n \r\n \r\n
    \r\n
    \r\n {Content.getValue(\"total_tc_earned\") }\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_amount] || 0) }\r\n \r\n
    \r\n
    \r\n
    \r\n { Content.getValue(\"second_gen_ref\") }\r\n \r\n #\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_2nd_gen_count] || 0) }\r\n \r\n \r\n
    \r\n
    \r\n { Content.getValue(\"total_tc_earned\") }\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_2nd_gen_amount] || 0) }\r\n \r\n
    \r\n
    \r\n
    \r\n { Content.getValue(\"third_gen_ref\") }\r\n \r\n #\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_3rd_gen_count] || 0) }\r\n \r\n \r\n
    \r\n
    \r\n { Content.getValue(\"total_tc_earned\") }\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.ref_3rd_gen_amount] || 0) }\r\n \r\n
    \r\n
    \r\n
    \r\n {Content.getValue(\"competition_valid_coins\") + ` (#${Formatting.formatTreatCoinAmount(position)})` }\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.competition_valid_coins] || 0) }\r\n \r\n
    \r\n
    \r\n { Content.getValue(\"available_to_use\") }\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.available_to_use] || 0) }\r\n \r\n
    \r\n
    \r\n { Content.getValue(\"total_tc_earned\") }\r\n \r\n { Formatting.formatTreatCoinAmount(\r\n JSON.parse(UserData.getItem(userDataKeys.stats))?.\r\n [userDataKeys.stats_values.total_coins_earned] || 0) }\r\n \r\n
    \r\n
    \r\n ) :\r\n ( null )\r\n }\r\n
    \r\n\r\n
    \r\n )\r\n};\r\n\r\nexport default memo(UserStatsHomepage);","import React, { useEffect, useLayoutEffect, useMemo, useState } from 'react';\r\nimport Platform from 'utils/Platform.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport JWTUtils from 'utils/JWT_Utils.js';\r\nimport Images from 'utils/Images.js';\r\nimport Content from 'utils/Content.js';\r\nimport Offers from 'utils/Offers.js';\r\nimport BlurProvider from 'components/offer_providers/Blur_Provider.js';\r\nimport IncompleteOffer from 'components/offers/Incomplete_Offer.js';\r\nimport jwt from 'jwt-decode';\r\nimport UserData from 'User_Data.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nfunction CashbackOffersList({ \r\n clickHandler, \r\n isSearchVisible, \r\n isHomepage,\r\n isPlayground,\r\n category: selectedCategory = '' \r\n}) {\r\n const [state, setState] = useState({\r\n error: null,\r\n isLoaded: false,\r\n offers: []\r\n });\r\n const homepageClass = isHomepage ? \"homepage\" : \"\";\r\n const playgroundClass = isPlayground ? \"playground\" : \"\";\r\n \r\n const [text, setText] = useState('');\r\n const [category, setCategory] = useState('');\r\n const categories = useMemo(() => ({\r\n 1: Content.getValue(\"cashback_categories\")[\"1\"],\r\n 2: Content.getValue(\"cashback_categories\")[\"2\"],\r\n 3: Content.getValue(\"cashback_categories\")[\"3\"],\r\n 4: Content.getValue(\"cashback_categories\")[\"4\"],\r\n 5: Content.getValue(\"cashback_categories\")[\"5\"],\r\n }), []);\r\n\r\n const generateOffersList = (offers) => {\r\n let filteredOffers=[], data = [];\r\n if (text) {\r\n filteredOffers = offers.filter(({ isCashBack, cashbackCategory, description, appName }) => {\r\n const lowerDescription = description.toLowerCase().replaceAll(\" \",\"\");\r\n const lowerAppName = appName.toLowerCase().replaceAll(\" \",\"\");\r\n const lowerCashbackCategory = cashbackCategory ? cashbackCategory.toLowerCase().replaceAll(\" \",\"\"): null;\r\n const lowerText = text.toLowerCase().replaceAll(\" \",\"\");\r\n const matchedSearch = (\r\n lowerDescription.includes(lowerText) || \r\n lowerAppName.includes(lowerText) ||\r\n (lowerCashbackCategory && lowerCashbackCategory.includes(lowerText))\r\n );\r\n\r\n return category ? \r\n isCashBack && matchedSearch && (cashbackCategory === category)\r\n : isCashBack && matchedSearch;\r\n });\r\n }\r\n else if (category)\r\n filteredOffers = offers.filter(({ isCashBack, cashbackCategory }) => (isCashBack && category === cashbackCategory));\r\n else if (filteredOffers.length === 0)\r\n return null;\r\n\r\n data = Offers.getBlurredOfferData(filteredOffers);\r\n\r\n return (\r\n
    \r\n {\r\n data.map(item => (item.length===1) ?\r\n (\r\n \r\n \r\n \r\n ) :\r\n (item.length>1) ?\r\n (\r\n \r\n {item.offers.map(offer => (\r\n \r\n ))}\r\n \r\n ) :\r\n (\r\n \r\n )\r\n )\r\n }\r\n
    \r\n );\r\n }\r\n\r\n const handleArrowClick = value => {\r\n if (clickHandler) clickHandler(categories[value]);\r\n else setCategory(categories[value]);\r\n }\r\n\r\n useLayoutEffect(() => {\r\n if (selectedCategory) setCategory(selectedCategory);\r\n }, [selectedCategory])\r\n\r\n useEffect(() => {\r\n const platform = Platform.getPlatformName();\r\n let preferredLanguage = Content.getPreferredLanguage();\r\n let currentCountry = JWTUtils.getJWTCountry();\r\n\r\n if (!isHomepage) {\r\n const req = ApiFacade.offers(preferredLanguage, currentCountry, platform, 1);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n setState({\r\n isLoaded: true,\r\n offers: result.apps\r\n });\r\n } else {\r\n setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n }, []);\r\n\r\n return (\r\n <>\r\n {\r\n isSearchVisible ?\r\n
    \r\n \"Unlimited\r\n setText(value)}\r\n />\r\n
    : \r\n null\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n !text ? \r\n
    \r\n {category === categories[1] || !category?\r\n <>\r\n { category ?\r\n

    \r\n { Content.getValue(\"category\") }\r\n handleArrowClick('')}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" \r\n />\r\n

    :\r\n null\r\n }\r\n
    \r\n \r\n handleArrowClick(1)}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" />\r\n

    { categories[\"1\"] }

    \r\n
    \r\n \r\n : \r\n null}\r\n {category === categories[2] || !category?\r\n <>\r\n { category ?\r\n

    \r\n { Content.getValue(\"category\") }\r\n setCategory('')}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" \r\n />\r\n

    :\r\n null\r\n }\r\n
    \r\n \r\n handleArrowClick(2)}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" />\r\n

    { categories[\"2\"] }

    \r\n
    \r\n \r\n : \r\n null}\r\n {category === categories[3] || !category?\r\n <>\r\n { category ?\r\n

    \r\n { Content.getValue(\"category\") }\r\n setCategory('')}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" \r\n />\r\n

    :\r\n null\r\n }\r\n
    \r\n \r\n handleArrowClick(3)}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" />\r\n

    { categories[\"3\"] }

    \r\n
    \r\n \r\n : \r\n null}\r\n {category === categories[4] || !category?\r\n <>\r\n { category ?\r\n

    \r\n { Content.getValue(\"category\") }\r\n setCategory('')}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" \r\n />\r\n

    :\r\n null\r\n }\r\n
    \r\n \r\n handleArrowClick(4)}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" />\r\n

    { categories[\"4\"] }

    \r\n
    \r\n \r\n : \r\n null}\r\n {category === categories[5] || !category?\r\n <>\r\n { category ?\r\n

    \r\n { Content.getValue(\"category\") }\r\n setCategory('')}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" \r\n />\r\n

    :\r\n null\r\n }\r\n
    \r\n \r\n handleArrowClick(5)}\r\n alt=\"arrow\"\r\n width=\"30\"\r\n height=\"20\" />\r\n

    { categories[\"5\"] }

    \r\n
    \r\n \r\n : \r\n null}\r\n
    :\r\n null\r\n }\r\n
    \r\n\r\n {\r\n state.offers?.length > 0 && !isHomepage ?\r\n <>\r\n
    \r\n { (text || category) &&

    { Content.getValue(\"options\") }

    }\r\n {\r\n state.offers.map(item => (\r\n
    \r\n { generateOffersList(item.offers) }\r\n
    \r\n ))\r\n }\r\n
    \r\n :\r\n null\r\n }\r\n
    \r\n\r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default CashbackOffersList;","import Content from 'utils/Content.js';\r\nimport Images from 'utils/Images.js';\r\nimport 'design/home.css';\r\n\r\nconst BrandsContainer = () => {\r\n\r\n return (\r\n
    \r\n

    {Content.getValue(\"providers_homepage_brands_text\")}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default BrandsContainer;","import React from 'react';\r\nimport Content from 'utils/Content';\r\nimport Images from 'utils/Images';\r\n\r\nfunction CompletedLayout({ coins, isCompleted, widthValue }) {\r\n let styles = { display: !isCompleted && 'none', };\r\n if (widthValue) { styles['width'] = widthValue; }\r\n return (\r\n
    \r\n

    {Content.getValue('completed')}

    \r\n
    \r\n
    \r\n
    +
    \r\n\r\n \"TreatCoin\"\r\n
    \r\n\r\n

    {coins.toLocaleString()}

    \r\n

    = ${(coins * 0.01).toFixed(2)}

    \r\n
    \r\n

    {Content.getValue('received')}

    \r\n
    \r\n );\r\n}\r\n\r\nexport default CompletedLayout;","import Images from 'utils/Images';\r\nimport Joining from 'utils/Joining';\r\nimport CompletedLayout from 'components/offers/Completed_Layout';\r\nimport Offers from 'utils/Offers';\r\nimport Formatting from 'utils/Formatting';\r\nimport { useEffect, useState } from 'react';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\nimport { useContext } from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require(\"configuration.json\");\r\n\r\nconst offerMainType = configuration.offer_main_type;\r\n\r\nfunction TopOfferHomepageCard(offer) {\r\n\r\n\r\n const { handleOfferIsOpened } = useContext(OfferPopupContext);\r\n\r\n const getImageDimensions = (url) => {\r\n const img = new Image();\r\n img.src = url;\r\n\r\n\r\n /*if (img.width > 199) {\r\n setImageStyle({\r\n backgroundSize: 'cover'\r\n });\r\n } else if (img.width < 180 && img.width / img.height === 1) {\r\n setImageStyle({\r\n backgroundSize: 'auto',\r\n });\r\n } */\r\n };\r\n const {\r\n ID,\r\n offerType,\r\n topHeading,\r\n isFree,\r\n uniqueID,\r\n description,\r\n imageURL,\r\n category,\r\n appName,\r\n coins,\r\n authorized,\r\n url,\r\n isCompleted,\r\n CategoryImageURL,\r\n CategoryHPID,\r\n MainTitle,\r\n } = offer?.offer;\r\n \r\n useEffect(() => {\r\n getImageDimensions(imageURL);\r\n }, [imageURL])\r\n return (\r\n
  • \r\n
  • \r\n
    \r\n
    \r\n \"TreatCoin\"\r\n

    {coins.toLocaleString()}

    \r\n
    \r\n

    = ${(coins * 0.01).toFixed(2)}

    \r\n

    USD

    \r\n
    \r\n
    \r\n

    Treat Coins

    \r\n
    \r\n \r\n \r\n );\r\n}\r\n\r\nexport default TopOfferHomepageCard;","import React, { useEffect, useRef, useState } from 'react';\r\nimport Content from 'utils/Content';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\r\nimport TopOfferHomepageCard from './Top_Offer_Homepage_Card';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport JWTUtils from 'utils/JWT_Utils.js';\r\nimport UserData from 'User_Data';\r\nimport Platform from 'utils/Platform';\r\nimport jwt from 'jwt-decode';\r\nimport { Spinner } from 'react-spinners-css';\r\nimport Formatting from 'utils/Formatting';\r\nimport Images from 'utils/Images';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nfunction TopOfferHomepageList() {\r\n const scrollRef = useRef(null);\r\n const [items, setItems] = useState(null);\r\n const [authorized, setAuthorized] = useState(false);\r\n const menuOptions = Content.getValue('menu_options');\r\n const top12OffersOption = menuOptions.top_12_offers;\r\n\r\n const handleScroll = (scrollOffset) => {\r\n if (scrollRef.current) {\r\n const element = scrollRef.current;\r\n element.scrollBy({\r\n left: scrollOffset,\r\n behavior: 'smooth' // Adds smooth scrolling behavior\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let platform = Platform.getPlatformName();\r\n let preferredLanguage = Content.getPreferredLanguage();\r\n let currentCountry = JWTUtils.getJWTCountry();\r\n\r\n //let calledOffersURL = `${Backend.backendURLs.top12OffersURL}?language=${encodeURIComponent(preferredLanguage)}&country=${encodeURIComponent(currentCountry)}&platformName=${encodeURIComponent(platform)}`;\r\n const req = ApiFacade.top12Offers(preferredLanguage, currentCountry, platform);\r\n req.then( (res) => {\r\n let result = res.response;\r\n setAuthorized(Boolean(UserData.getItem(userDataKeys.jwt_token)));\r\n setItems(result.offers);\r\n });\r\n\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n {Formatting.format(Content.getValue(\"earn_from_top_12\"), [\"(offers)\"], [items?.length || ''])}\r\n

    \r\n \r\n
    \r\n
      {\r\n // if (!authorized) {\r\n // return Joining.showPopup();\r\n // }\r\n // }}\r\n >\r\n {items ?\r\n items.map(item => )\r\n :
      \r\n \r\n
      \r\n }\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default TopOfferHomepageList;","import React, { useContext } from 'react';\r\nimport Images from 'utils/Images';\r\nimport Formatting from 'utils/Formatting';\r\nimport Joining from 'utils/Joining';\r\nimport OfferEvents from \"utils/Offer_Events.js\";\r\nimport Platform from 'utils/Platform.js';\r\nimport UserData from 'User_Data.js';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context';\r\n\r\nconst configuration = require(\"configuration.json\");\r\nconst eventTypes = configuration.event_types;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nfunction AdditionalOfferCard({ categoryID, offer, userToken }) {\r\n const { handleOfferIsOpened } = useContext(OfferPopupContext)\r\n const { imageURL, appName, detailedDescription, description, coins, ID, url, OfferHeading, uniqueID } = offer;\r\n const prefixCpx = uniqueID.substring(0, 3) === 'cpx';\r\n\r\n return (\r\n {\r\n if (userToken) {\r\n Joining.showPopup();\r\n } else {\r\n handleOfferIsOpened({isOpened: true, offer})\r\n }\r\n }}\r\n key={ID} className={`additional-offer-card additional-offer-card-${categoryID}`}>\r\n
    \r\n

    {appName}

    \r\n

    {description}

    \r\n
    \r\n
    \r\n \r\n

    {prefixCpx ? '1 - ' : ''}{coins.toLocaleString()}

    \r\n
    \r\n

    = {prefixCpx ? '0.01$ - ' : ''} ${(coins * 0.01).toFixed(2)}

    \r\n

    USD

    \r\n
    \r\n
    \r\n

    Treat Coins

    \r\n
    \r\n
    \r\n

    \r\n {Formatting.shortenText(OfferHeading, 88)}\r\n

    \r\n \r\n )\r\n}\r\n\r\nexport default AdditionalOfferCard","import React, { useEffect, useRef, useState } from 'react';\r\nimport Content from 'utils/Content';\r\nimport Images from 'utils/Images';\r\nimport AdditionalOfferCard from './Additional_Offer_Card';\r\nimport UserData from 'User_Data.js';\r\n\r\nconst configuration = require(\"configuration.json\");\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nfunction AdditionalOffersContainer({\r\n offersObj,\r\n type\r\n}) {\r\n const { categoryID, categoryHeading1, categoryHeading2, categoryImageURL, offers } = offersObj;\r\n const scrollRef = useRef(null);\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [totalPages, setTotalPages] = useState(null);\r\n const [scrollOffset, setScrollOffset] = useState(null);\r\n\r\n const userToken = UserData.getItem(userDataKeys.jwt_token) === null;\r\n\r\n const handleWindowResize = () => {\r\n setScrollOffset(window.innerWidth > 1440 ? (326) : (343 * 3 + 60));\r\n const summary = Math.ceil(offers.length / (window.innerWidth > 1440 ? 3 : 1));\r\n setTotalPages(summary > 1 ? summary : 0);\r\n };\r\n\r\n const handleScroll = (realIdx) => {\r\n if (scrollRef.current) {\r\n const element = scrollRef.current;\r\n element.scrollBy({\r\n left: scrollOffset * (realIdx - currentPage),\r\n behavior: 'smooth'\r\n });\r\n setCurrentPage(realIdx);\r\n }\r\n };\r\n\r\n const handleManualScroll = () => {\r\n if (scrollRef.current) {\r\n const element = scrollRef.current;\r\n const newPosition = element.scrollLeft;\r\n const scrollOffsetLocal = window.innerWidth < 1440 ? (326) : (343 * 3 + 60);\r\n setCurrentPage(Math.ceil(newPosition / scrollOffsetLocal)+1)\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setTotalPages(Math.ceil(offers.length / (window.innerWidth > 1440 ? 3 : 1)));\r\n setScrollOffset(window.innerWidth < 1440 ? (326) : (343 * 3 + 60));\r\n window.addEventListener('resize', handleWindowResize);\r\n const element = scrollRef.current;\r\n if (scrollRef.current) {\r\n element.addEventListener('scroll', handleManualScroll);\r\n }\r\n return () => {\r\n element.remove('scroll', handleManualScroll);\r\n window.removeEventListener('resize', handleWindowResize);\r\n };\r\n }, [scrollRef]);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n

    \r\n {Content.getValue(categoryHeading1)}\r\n

    \r\n
    \r\n

    {Content.getValue(categoryHeading2)}

    \r\n
      \r\n {offers?.map(offer => \r\n )}\r\n
    \r\n {totalPages > 1 && \r\n
    \r\n {Array(totalPages).fill().map((i, idx) => {\r\n const realIdx = idx + 1;\r\n const isCurrent = realIdx === currentPage;\r\n return (\r\n \r\n );\r\n }\r\n )}\r\n
    \r\n }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default AdditionalOffersContainer;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction PurpleGradientButton({ onClick, classNames, content, disabled = false, style, children }) {\r\n return (\r\n \r\n {content}\r\n {children}\r\n \r\n );\r\n}\r\n\r\nPurpleGradientButton.propTypes = {\r\n onClick: PropTypes.func.isRequired,\r\n classNames: PropTypes.string,\r\n content: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool,\r\n style: PropTypes.object,\r\n children: PropTypes.node\r\n};\r\n\r\nPurpleGradientButton.defaultProps = {\r\n disabled: false,\r\n style: {},\r\n children: null\r\n};\r\n\r\nexport default PurpleGradientButton;","import Switch from '@mui/material/Switch';\r\nimport { styled } from '@mui/material/styles';\r\nimport React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Content from 'utils/Content.js';\r\nimport Consent from 'utils/Consent.js';\r\nimport UserData from 'User_Data.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nlet mixpanelAccepted = true;\r\nlet googleAnalyticsAccepted = true;\r\n\r\nconst PinkSwitch = styled(Switch)(({ theme }) => ({\r\n '& .MuiSwitch-switchBase.Mui-checked': {\r\n color: '#fff',\r\n marginLeft: \"-10px\",\r\n '&:hover': {\r\n backgroundColor: '#9F7DDB',\r\n },\r\n },\r\n '& .MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track': {\r\n backgroundColor: '#9F7DDB',\r\n },\r\n '& .MuiSwitch-switchBase.Mui-disabled + .MuiSwitch-track': {\r\n backgroundColor: '#9191BF',\r\n opacity: 0.4,\r\n },\r\n '& .MuiSwitch-switchBase + .MuiSwitch-track': {\r\n backgroundColor: '#9191BF',\r\n height: \"30px\",\r\n width: \"74px\",\r\n borderRadius: \"15px\",\r\n marginTop: '-8px',\r\n marginLeft: '-10px',\r\n },\r\n}));\r\n\r\nfunction CookieModal({refer }) {\r\n return (\r\n
    \r\n {\r\n if (e.currentTarget) {\r\n let thirdPartySettings = {};\r\n thirdPartySettings[userDataKeys.third_party_cookies.mixpanel] = mixpanelAccepted;\r\n thirdPartySettings[userDataKeys.third_party_cookies.google_analytics] = googleAnalyticsAccepted;\r\n UserData.setItem(userDataKeys.third_party_settings, JSON.stringify(thirdPartySettings));\r\n if (googleAnalyticsAccepted) {\r\n Consent.addGoogleAnalyticsScripts();\r\n }\r\n if (mixpanelAccepted) {\r\n Consent.addMixpanel();\r\n Mixpanel.trackByArgs(mixpanelEvents.cookies_click_accept, {});\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { \r\n page_name: window.location.pathname.includes(configuration.paths.welcome) ? pages.welcome : pages.homepage \r\n });\r\n }\r\n refer.current.style.display = \"none\";\r\n document.getElementsByClassName(\"cookie-popup-overlay\")[0].style.display = 'none';\r\n\r\n }\r\n }}\r\n className=\"hidden-button\">\r\n \r\n \r\n\r\n
      \r\n
    • \r\n

      {Content.getValue('mixpanel_cookies')}

      \r\n {\r\n mixpanelAccepted = !(mixpanelAccepted);\r\n }} />\r\n
    • \r\n
    • \r\n

      {Content.getValue('google_analytics_cookies')}

      \r\n {\r\n googleAnalyticsAccepted = !(googleAnalyticsAccepted);\r\n }}\r\n />\r\n
    • \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default CookieModal;","import React from 'react';\r\nimport Joining from 'utils/Joining.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\n\r\nconst JoinTreatCoinButtonGreen = (dataEvent) => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const playgroundMenuOption = menuOptions.playground;\r\n\r\n const handleClick = (userDataKeys.jwt_token === null) ? (() => Joining.showPopup()) : (() => redirectWithLangFunc(playgroundMenuOption.url));\r\n return (\r\n {\r\n Mixpanel.trackByEvent(event);\r\n return handleClick();\r\n }}\r\n >\r\n {(userDataKeys.jwt_token === null) ? Content.getValue(\"join_treatcoin\") : Content.getValue(\"to_the_playground\")}\r\n \r\n );\r\n};\r\n\r\nexport default JoinTreatCoinButtonGreen;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport GainTreatCoinsByFunActButton from 'components/buttons/Gain_Treat_Coins_By_Fun_Act_Button.js';\r\nimport Fade from 'react-reveal/Fade';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\n\r\nclass GainCoinsByFunActivities extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentIndex: 0,\r\n earnAmount: 0,\r\n };\r\n this.formatter = new Intl.NumberFormat('en').format;\r\n }\r\n\r\n handleSlideChange = (evt) => {\r\n const amount = Content.getValue(\"treat_coins_equals_money_step_1_text\").find((each, idx) => idx === evt.realIndex);\r\n this.setState({\r\n earnAmount: amount,\r\n currentIndex: evt.realIndex\r\n });\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n
    \r\n

    {Content.getValue(\"providers_homepage_title1\")}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"providers_homepage_card2_title\")}

    \r\n

    {Content.getValue(\"providers_homepage_card2_description\")}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"providers_homepage_card3_title\")}

    \r\n

    {Content.getValue(\"providers_homepage_card3_description\")}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default GainCoinsByFunActivities;","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport * as queryString from 'query-string';\r\nimport Images from 'utils/Images.js';\r\nimport JoinTreatCoinButton from 'components/buttons/Join_TreatCoin_Button.js';\r\nimport UsernameIndicator from 'components/data/Username_Indicator.js';\r\nimport HomepageLogo from 'components/graphics/Homepage_Logo.js';\r\nimport ReferHomepageContainer from 'components/referrals/Refer_Homepage_Container.js';\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Highscore from \"components/prizes/Highscore.js\";\r\nimport CurrentRewards from \"components/prizes/Current_Rewards.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport HowDoesItWorkSection from 'components/static/How_Does_It_Work_Section.js';\r\nimport ScrollToTop from 'components/widgets/Scroll_To_Top.js';\r\nimport RecommendedOfferDetails from 'components/top_12_offers/Recommended_Offer_Details.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport TreatCoinsEqualsMoneySection from 'components/static/Treat_Coins_Equals_Money_Section';\r\nimport HotOfferLoaderHomepage from 'components/offers/Hot_Offer_Loader_Homepage.js';\r\nimport UserStatsHomepage from 'components/one_two_treat_area/User_Stats_Homepage.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\nimport NewsTrack from 'components/live_news/News_Track.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport UserData from 'User_Data.js';\r\nimport CashbackOffersList from 'components/offers/Cashback_Offers_List.js';\r\nimport BrandsContainer from 'components/static/Brands_Container.js';\r\nimport Consent from 'utils/Consent.js';\r\nimport CompetitionInterval from 'utils/Competition_Interval.js';\r\nimport TopOfferHomepageList from 'components/top_12_offers/Top_Offer_Homepage_List';\r\nimport ContentPageHeader from 'components/sections/Content_Page_Header';\r\nimport AdditionalOffersContainer from 'components/offers/additional_offers/Additional_Offers_Container';\r\nimport ShowMore from 'components/wrappers/Show_More';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport JWTUtils from 'utils/JWT_Utils.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport LinkCreator from \"utils/Link_Creator.js\";\r\nimport PurpleGradientButton from 'components/buttons/Purple_Gradient_Button.js';\r\nimport CookieModal from 'components/modals/Cookie_Modal.js';\r\nimport Join from 'components/widgets/Join/Join.js';\r\nimport GainCoinsByFunActivities from 'components/static/Gain_Coins_By_Fun_Act.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\nconst emailSignupModes = configuration.email_signup_modes;\r\n\r\nconst discordConnection = globalConf.discord_connection;\r\nconst discordCommunityURL = discordConnection.community_url;\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst Homepage = () => {\r\n\r\n const startDiscordAuth = () => {\r\n window.location.href = LinkCreator.createDiscordLink();\r\n };\r\n\r\n const setToDiscordToDiscordCommunityAfterAuth = () => {\r\n UserData.setItem(userDataKeys.redirect_to_discord_community_after_auth, true);\r\n };\r\n\r\n const isSetToRedirectToDiscordCommunity = () => {\r\n return (UserData.getItem(userDataKeys.redirect_to_discord_community) !== null);\r\n };\r\n\r\n const redirectToDiscordCommunity = () => {\r\n\r\n UserData.removeItem(userDataKeys.redirect_to_discord_community);\r\n window.location.href = discordCommunityURL;\r\n \r\n };\r\n\r\n const urlParams = queryString.parse(window.location.search);\r\n\r\n const discord = urlParams.discord;\r\n const community = urlParams.community;\r\n\r\n if (community === '1') {\r\n setToDiscordToDiscordCommunityAfterAuth();\r\n }\r\n if (document.referrer.indexOf('discord.com') !== -1 || discord === '1') {\r\n startDiscordAuth();\r\n }\r\n\r\n if (isSetToRedirectToDiscordCommunity()) {\r\n redirectToDiscordCommunity();\r\n }\r\n\r\n const emailSignup = UserData.getItem(userDataKeys.email_signup);\r\n const emailReg = UserData.getItem(userDataKeys.email_register);\r\n let initialEmailReg = null;\r\n let initialShowSignup = false;\r\n if (emailSignup === emailSignupModes.direct && !ApiFacade.isLoggedIn()) {\r\n if (emailReg) {\r\n initialEmailReg = emailReg;\r\n } else {\r\n initialShowSignup = true;\r\n }\r\n }\r\n\r\n const [regEmail, setRegEmail] = useState(initialEmailReg);\r\n const [showSignUp, setShowSignUp] = useState(initialShowSignup);\r\n const [hotOffer, setHotOffer] = useState(null);\r\n const [additionalOffers, setAdditionalOffers] = useState(null)\r\n const menuOptions = Content.getValue('menu_options');\r\n const playgroundOption = menuOptions.playground;\r\n const history = useHistory();\r\n const cookieRef = useRef();\r\n const cookieModalRef = useRef();\r\n\r\n const cashbackCategoryClickHandler = (value) => {\r\n UserData.setItem(userDataKeys.category, value);\r\n history.push(playgroundOption.url);\r\n }\r\n\r\n const customEventListener = event => {\r\n const { detail: offer } = event;\r\n setHotOffer(offer);\r\n };\r\n\r\n const closeCookieDialogHandler = () => {\r\n cookieRef.current.style.display = \"none\";\r\n }\r\n\r\n const openCookieDialogue = () => {\r\n closeCookieDialogHandler();\r\n cookieModalRef.current.style.display = \"block\";\r\n }\r\n\r\n const acceptCookies = () => {\r\n const thirdPartySettings = {};\r\n thirdPartySettings[userDataKeys.third_party_cookies.mixpanel] = true;\r\n thirdPartySettings[userDataKeys.third_party_cookies.google_analytics] = true;\r\n UserData.setItem(userDataKeys.third_party_settings, JSON.stringify(thirdPartySettings));\r\n Consent.approveThirdParty();\r\n Mixpanel.trackByArgs(mixpanelEvents.cookies_click_accept, {}); \r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { \r\n page_name: window.location.pathname.includes(configuration.paths.welcome) ? pages.welcome : pages.homepage \r\n });\r\n document.getElementsByClassName(\"cookie-popup-container\")[0].style.display = 'none';\r\n document.getElementsByClassName(\"cookie-popup-overlay\")[0].style.display = 'none';\r\n }\r\n\r\n const receiveAdditionalOffersHandler = async () => {\r\n //await Backend.receiveAdditionalOffers();\r\n\r\n let platform = Platform.getPlatformName();\r\n let currentCountry = JWTUtils.getJWTCountry();\r\n let preferredLanguage = null;\r\n\r\n if (!ApiFacade.isLoggedIn()){\r\n preferredLanguage = Content.getPreferredLanguage();\r\n }\r\n\r\n const req = ApiFacade.additionalOffers(platform, currentCountry, preferredLanguage);\r\n const res = await req;\r\n if (res.ok) {\r\n UserData.setItem(userDataKeys.additional_offers, JSON.stringify(res.response));\r\n setAdditionalOffers(\r\n JSON.parse(UserData.getItem(userDataKeys.additional_offers))\r\n )\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { \r\n page_name: window.location.pathname.includes(configuration.paths.welcome) ? pages.welcome : pages.homepage \r\n });\r\n receiveAdditionalOffersHandler();\r\n let emailRefer = UserData.getItem(userDataKeys.email_refer);\r\n if (emailRefer === \"1\" && ApiFacade.isLoggedIn()) {\r\n setTimeout(function() {\r\n document.getElementById('one-two-treat-button').click();\r\n }, 300);\r\n UserData.removeItem(userDataKeys.email_refer);\r\n }\r\n\r\n window.addEventListener('openOfferDetails', customEventListener);\r\n return () => {\r\n window.removeEventListener('openOfferDetails', customEventListener);\r\n }\r\n }, []);\r\n\r\n let preferredLanguage = Content.getPreferredLanguage();\r\n let thirdPartySettings = JSON.parse(UserData.getItem(userDataKeys.third_party_settings));\r\n\r\n return (\r\n <> \r\n \r\n \r\n {\r\n (thirdPartySettings === null) ? (
    {\r\n acceptCookies();\r\n }}>\r\n
    ) : (null)\r\n }\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {\r\n (UserData.getItem(userDataKeys.jwt_token) === null) ?\r\n (\r\n <>\r\n
    \r\n \r\n \r\n \r\n \"Homepage\r\n \r\n \r\n {(regEmail || showSignUp) ?\r\n \r\n : <>\r\n
    \r\n

    \r\n Treat\r\n Coin\r\n

    \r\n
    \r\n \r\n
    \r\n {(UserData.getItem(userDataKeys.email_signup) === emailSignupModes.join_button) ?\r\n (null)\r\n :
    document.getElementById('current-rewards-title').scrollIntoView({ behavior: 'smooth' })}>\r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n \r\n }\r\n\r\n
    \r\n {\r\n (thirdPartySettings === null) ? ( <>\r\n
    \r\n \r\n

    {Content.getValue('cookie_text')}

    \r\n
    \r\n \r\n {\r\n acceptCookies();\r\n }}\r\n classNames={'purple-light-button '} content={Content.getValue('accept')} />\r\n
    \r\n
    \r\n \r\n ) : (null)\r\n }\r\n \r\n ) : (null)\r\n }\r\n
    \r\n
    \r\n {\r\n (UserData.getItem(userDataKeys.jwt_token) !== null) ?\r\n (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) :\r\n (\r\n <>\r\n \r\n \r\n )\r\n }\r\n {additionalOffers?.length && }\r\n
    \r\n \r\n {\r\n (regEmail || showSignUp) ?\r\n
    \r\n \r\n\r\n
    \r\n : \r\n }\r\n {additionalOffers?.length > 1 && }\r\n \r\n
    \r\n \r\n {additionalOffers?.length > 2 && }\r\n {additionalOffers?.length > 3 && }\r\n \r\n \r\n
    \r\n

    \r\n {CompetitionInterval() + ' ' + Content.getValue(\"monthly_leaderboard\")}\r\n

    \r\n \r\n \r\n \r\n
    \r\n
    {Content.getValue(\"highscores_display_end_description\")}
    \r\n {additionalOffers?.length > 4 && }\r\n \r\n {/*
    \r\n <>\r\n

    {Content.getValue(\"homepage_cashback_title\")}

    \r\n \r\n

    {\r\n Content.getValue(\"homepage_cashback_subtitle\")\r\n }

    \r\n \r\n
    \r\n {additionalOffers?.length > 5 && }\r\n \r\n
    */}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Homepage;","import React from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nclass StartNowButton extends React.Component {\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default StartNowButton;","import Images from 'utils/Images.js';\r\nimport { RedirectWithLang } from 'utils/RedirectWithLang.js';\r\n\r\nfunction TopRightCloseIcon(props) {\r\n\r\n return (\r\n { } }}\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default TopRightCloseIcon;","import Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Images from 'utils/Images.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { redirectWithLangFunc } from './RedirectWithLang';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nclass Survey {\r\n\r\n static displaySurveyAlreadyCompleted() {\r\n \r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"intro_survey_already_completed_title\") + '

    ',\r\n html: \"

    \" + Content.getValue(\"intro_survey_already_completed_message\") + \"

    \",\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button',\r\n cancelButton: 'standard-cancel-button',\r\n }\r\n });\r\n\r\n setTimeout(function () {\r\n redirectWithLangFunc(menuOptions.playground.url);\r\n }, 3000);\r\n }\r\n\r\n}\r\n\r\nexport default Survey;","import React from 'react';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport UserData from 'User_Data.js';\r\nimport Survey from 'utils/Survey.js';\r\nimport Content from 'utils/Content.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const introSurveyAvailableUrl = backendURLs.introSurveyAvailableUrl;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass IntroSurveyAvailableCall extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n //this.loadURL = introSurveyAvailableUrl;\r\n }\r\n\r\n componentDidMount() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n if (UserData.getItem(userDataKeys.intro_survey_available) === false) {\r\n Survey.displaySurveyAlreadyCompleted();\r\n }\r\n else { \r\n const req = ApiFacade.introSurveyAvailable();\r\n req.then(function (res) {\r\n if (res.ok) {\r\n let result = res.response;\r\n let introSurveyAvailable = result.introSurveyAvailable;\r\n if (introSurveyAvailable === false) {\r\n UserData.setItem(userDataKeys.intro_survey_available, introSurveyAvailable);\r\n Survey.displaySurveyAlreadyCompleted();\r\n }\r\n } else {\r\n redirectWithLangFunc(menuOptions.playground.url);\r\n }\r\n },\r\n (error) => {\r\n redirectWithLangFunc(menuOptions.playground.url);\r\n }\r\n );\r\n }\r\n }\r\n\r\n render() {\r\n return (null);\r\n }\r\n\r\n}\r\n\r\nexport default IntroSurveyAvailableCall;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport StartNowButton from 'components/buttons/Start_Now_Button.js';\r\nimport TopRightCloseIcon from 'components/widgets/Top_Right_Close_Icon.js';\r\nimport IntroSurveyAvailableCall from 'components/survey/Intro_Survey_Available_Call.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nfunction IntroSurveyStartingSection({ quizStartHandler }) {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Logo \r\n
    \r\n
    \r\n

    { Content.getValue(\"intro_survey_starting_section_header\") }

    \r\n

    \r\n { Content.getValue(\"intro_survey_starting_section_content\") }\r\n

    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default IntroSurveyStartingSection;","import React from 'react';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nclass BackToThePlayground extends React.Component {\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default BackToThePlayground;","import React from 'react';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nclass BackToThePlayground extends React.Component {\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default BackToThePlayground;","import React from 'react';\r\nimport BackToThePlayground from 'components/buttons/Back_To_The_Playground.js';\r\nimport AllowThirdPartySharingCheckbox from 'components/checkboxes/Allow_Third_Party_Sharing_Checkbox.js';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport UserData from 'User_Data.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const allowSurveyDataSharingUrl = backendURLs.allowSurveyDataSharingUrl;\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nfunction IntroSurveyFinishingSection() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n const handleBackToPlayground = () => {\r\n\r\n let allow3rdPartySharingChecked = document.getElementById('allow3rdPartySharing').checked;\r\n\r\n if (allow3rdPartySharingChecked) {\r\n let robotIconURL = Images.imageURL('robot-icon.png');\r\n\r\n const req = ApiFacade.allowSurveyDataSharing();\r\n req.then(\r\n function (res) {\r\n if (res.ok){\r\n //let result = res.response;\r\n redirectWithLangFunc(menuOptions.playground.url);\r\n } else if (res.unauthorized){\r\n //...\r\n } else {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"error_submitting_survey_title\") + '

    ',\r\n html: '

    ' + Backend.loadBackendMessages().errorMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n },\r\n (error) => {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"error_submitting_survey_title\") + '

    ',\r\n html: '

    ' + Backend.loadBackendMessages().errorMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n );\r\n }\r\n else {\r\n redirectWithLangFunc(menuOptions.playground.url);\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    { Content.getValue(\"intro_survey_finishing_section_header\") }

    \r\n

    \r\n { Formatting.format(Content.getValue(\"intro_survey_finishing_section_content\"), [\"(treatCoinsAmount)\"], [UserData.getItem(userDataKeys.offer_coins_amount)]) }\r\n

    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default IntroSurveyFinishingSection;","import Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Alerts from 'utils/Alerts.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport { redirectWithLangFunc } from './RedirectWithLang';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const submitIntroSurveyUrl = backendURLs.submitIntroSurveyUrl;\r\n\r\nlet introSurveyQuestions;\r\n\r\nclass IntroSurveyAnswersStorage {\r\n\r\n static initializeAnswersStorage() {\r\n introSurveyQuestions = Content.getValue(\"intro_survey_questions\");\r\n UserData.setItem(userDataKeys.intro_survey_answers, JSON.stringify([]));\r\n }\r\n\r\n static addSingleSelectionAnswer(questionIndex, answerIndex) {\r\n let introSurveyQuestion = introSurveyQuestions[questionIndex];\r\n let availableAnswers = introSurveyQuestion.answers;\r\n this.addAnswer(questionIndex, { questionType: introSurveyQuestion.type, questionContent: introSurveyQuestion.content, questionAvailableAnswers: availableAnswers, answer: answerIndex, answerContent: availableAnswers[answerIndex] });\r\n }\r\n\r\n static addMultipleSelectionAnswer(questionIndex, answerIndexesArray) {\r\n let introSurveyQuestion = introSurveyQuestions[questionIndex];\r\n let availableAnswers = introSurveyQuestion.answers;\r\n this.addAnswer(questionIndex, { questionType: introSurveyQuestion.type, questionContent: introSurveyQuestion.content, questionAvailableAnswers: availableAnswers, answer: answerIndexesArray, answerContent: answerIndexesArray.map(answerIndex => availableAnswers[answerIndex]) });\r\n } \r\n\r\n static addDropdownSelectionAnswer(questionIndex, dropdownIndex) {\r\n let introSurveyQuestion = introSurveyQuestions[questionIndex];\r\n let availableAnswers = introSurveyQuestion.answers;\r\n this.addAnswer(questionIndex, { questionType: introSurveyQuestion.type, questionContent: introSurveyQuestion.content, questionAvailableAnswers: availableAnswers, answer: dropdownIndex, answerContent: availableAnswers[dropdownIndex] });\r\n }\r\n\r\n static addRangeSelectionAnswer(questionIndex, value) {\r\n let introSurveyQuestion = introSurveyQuestions[questionIndex];\r\n this.addAnswer(questionIndex, { questionType: introSurveyQuestion.type, questionContent: introSurveyQuestion.content, minValue: introSurveyQuestion.minValue, maxValue: introSurveyQuestion.maxValue, answer: value });\r\n }\r\n\r\n static addOpenQuestionAnswer(questionIndex, surname, country, state, city, dateOfBirth, phoneNumber, gender) {\r\n let introSurveyQuestion = introSurveyQuestions[questionIndex];\r\n this.addAnswer(questionIndex, { questionType: introSurveyQuestion.type, questionContent: introSurveyQuestion.content, answer: { surname: surname, country: country, state: state, city: city, dateOfBirth: dateOfBirth, phoneNumber: phoneNumber, gender: gender } });\r\n }\r\n\r\n static addAnswer(questionIndex, data) {\r\n let answers = JSON.parse(UserData.getItem(userDataKeys.intro_survey_answers));\r\n answers = answers.filter(answer => (answer.questionIndex !== questionIndex) && !((answer.questionIndex === 2 || answer.questionIndex === 3) && (questionIndex === 2 || questionIndex === 3)));\r\n data.questionIndex = questionIndex;\r\n answers.push(data);\r\n UserData.setItem(userDataKeys.intro_survey_answers, JSON.stringify(answers));\r\n }\r\n\r\n static fetchAnswer(questionIndex) {\r\n let answers = JSON.parse(UserData.getItem(userDataKeys.intro_survey_answers));\r\n let selection = answers.filter(answer => answer.questionIndex === questionIndex);\r\n if (selection.length === 1 && selection[0] !== null) return selection[0].answer;\r\n else return null;\r\n }\r\n\r\n static async sendAnswersToServer(nextUrl, setStatus) {\r\n const answers = JSON.parse(UserData.getItem(userDataKeys.intro_survey_answers));\r\n const startingTime = UserData.getItem(userDataKeys.intro_survey_starting_time);\r\n const timeTaken = Math.floor((Date.now() - startingTime) / 1000);\r\n\r\n let robotIconURL = Images.imageURL('robot-icon.png');\r\n\r\n const platform = Platform.getPlatformName();\r\n\r\n const req = ApiFacade.submitIntroSurvey(platform, answers, timeTaken);\r\n req.then(\r\n function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n if (nextUrl !== null && result.tokenValid === true && result.accountSuspended === false) {\r\n UserData.setItem(userDataKeys.intro_survey_available, false);\r\n }\r\n setStatus(result.legitimate);\r\n UserData.removeItem(userDataKeys.intro_survey_starting_time);\r\n if (!result.legitimate) {\r\n Alerts.introSurveyLegitimacyWarning();\r\n } \r\n else redirectWithLangFunc(nextUrl);\r\n } else if (res.unauthorized){\r\n //...\r\n } else {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"error_submitting_survey_title\") + '

    ',\r\n html: '

    ' + Backend.loadBackendMessages().errorMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n },\r\n (error) => {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"error_submitting_survey_title\") + '

    ',\r\n html: '

    ' + Backend.loadBackendMessages().errorMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n static clearAnswersStorage() {\r\n UserData.removeItem(userDataKeys.intro_survey_answers);\r\n }\r\n}\r\n\r\nexport default IntroSurveyAnswersStorage;","import React from 'react';\r\n\r\nfunction IntroSurveyQuizLayout({ children }) {\r\n\r\n return (\r\n
    \r\n { children }\r\n
    \r\n )\r\n}\r\n\r\nexport default IntroSurveyQuizLayout;","import React from 'react';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nfunction StepProgress({ stepNumber = 1, totalSteps = 5, questionNumber = 1, totalQuestions = 8 }) {\r\n\r\n return (\r\n
    \r\n

    \r\n {Content.getValue(\"step\")} {stepNumber} {Content.getValue(\"of\")} {totalSteps} \r\n

    \r\n {\r\n stepNumber !== 5 ?\r\n

    \r\n {Content.getValue(\"question\")} {questionNumber} {Content.getValue(\"out_of\")} {totalQuestions}\r\n

    :\r\n

    \r\n {Content.getValue(\"intro_survey_final_step\")}\r\n

    \r\n }\r\n
    \r\n )\r\n}\r\n\r\nexport default StepProgress;","import React from 'react';\r\n\r\nfunction ProgressBar({ width }) {\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ProgressBar;","import React from 'react';\r\n\r\nfunction QuizOption({ \r\n data, \r\n checked, \r\n changeCheckboxHandler\r\n}) {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default QuizOption;","import React from 'react';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nclass BackButton extends React.Component {\r\n\r\n render() {\r\n return ( \r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default BackButton;","import React from 'react';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nclass NextButton extends React.Component {\r\n \r\n render() {\r\n const enabled = this.props.enabled;\r\n return (\r\n \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default NextButton;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\n\r\nfunction Slider({\r\n value, \r\n defaultValue,\r\n setValueHandler, \r\n minValue = 1, \r\n maxValue = 10 \r\n}) {\r\n const currentValue = value || 5;\r\n const items = new Array(maxValue - minValue + 1).fill(minValue).map((item, idx) => item + idx);\r\n const changeHandler = (evt) => setValueHandler(+evt.target.value);\r\n const incrementHandler = () => currentValue < maxValue && setValueHandler(currentValue + 1);\r\n const decrementHandler = () => currentValue > minValue && setValueHandler(currentValue - 1);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {\r\n items.map((each) => (\r\n { each }\r\n ))\r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default Slider;","import React, { useState } from 'react';\r\nimport Images from 'utils/Images.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nfunction Select({ value, placeholder, items=[], optionChangeHandler }) {\r\n const [open, setOpen] = useState(false);\r\n const clickHandler = () => setOpen(prev => !prev);\r\n const changeHandler = (value) => {\r\n optionChangeHandler(value);\r\n setOpen(false);\r\n }\r\n\r\n return (\r\n
    \r\n

    { Content.getValue(\"intro_survey_dropdown_label\") }

    \r\n
    \r\n { items[value] || placeholder }\r\n
    \r\n Expand \r\n
    \r\n
    \r\n {open && items.length>0 ?\r\n
    \r\n { items.map((each, idx) => (\r\n

    changeHandler(idx)}> { each }

    \r\n ))}\r\n
    :\r\n null\r\n }\r\n
    \r\n )\r\n}\r\n\r\nexport default Select;","import React from \"react\"\n\nexport var AC = ({ title, ...rest }) => (\n \n {title && {title}}\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\nexport var AD = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var AE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var AF = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var AG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var AI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var AL = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var AM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var AO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var AQ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var AR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var AS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var AT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var AU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var AW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var AX = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var AZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var BA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var BB = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var BD = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var BE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var BF = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var BG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var BH = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var BI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var BJ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var BL = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var BM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var BN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var BO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var BQ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var BR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var BS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var BT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var BV = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var BW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var BY = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var BZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var CA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var CC = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var CD = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var CF = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var CG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var CH = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var CI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var CK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var CL = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var CM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var CN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var CO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var CR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var CU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var CV = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var CW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var CX = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var CY = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var CZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var DE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var DJ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var DK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var DM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var DO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var DZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var EC = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var EE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var EG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var EH = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var ER = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var ES = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var ET = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var EU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var FI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var FJ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var FK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var FM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var FO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var FR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var GA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var GB = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var GD = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var GE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var GF = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var GG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var GH = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var GI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var GL = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var GM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var GN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var GP = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var GQ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var GR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var GS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var GT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var GU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var GW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var GY = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var HK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var HM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var HN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var HR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var HT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var HU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var IC = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var ID = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var IE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var IL = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var IM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var IN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var IO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var IQ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var IR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var IS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var IT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var JE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var JM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var JO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var JP = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var KE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n)\n\nexport var KG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var KH = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var KI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var KM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var KN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var KP = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var KR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var KW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var KY = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var KZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var LA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var LB = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var LC = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var LI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var LK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var LR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var LS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var LT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var LU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var LV = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var LY = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var MA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var MC = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var MD = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var ME = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var MF = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var MG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var MH = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var MK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var ML = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var MM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var MN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var MO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var MP = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport var MQ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var MR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var MS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var MT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var MU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var MV = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var MW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var MX = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var MY = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var MZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var NA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var NC = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n)\n\nexport var NE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var NF = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var NG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var NI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var NL = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var NO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var NP = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var NR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var NU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var NZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n)\n\nexport var OM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var PA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var PE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var PF = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var PG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var PH = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var PK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var PL = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var PM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var PN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var PR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var PS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var PT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var PW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var PY = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var QA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var RE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var RO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var RS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var RU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var RW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var SA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var SB = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var SC = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var SD = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var SE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var SG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var SH = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var SI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var SJ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var SK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var SL = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var SM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var SN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var SO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var SR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var SS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var ST = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var SV = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var SX = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n)\n\nexport var SY = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var SZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var TA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var TC = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var TD = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var TF = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var TG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var TH = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var TJ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var TK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var TL = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var TM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var TN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var TO = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var TR = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var TT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var TV = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var TW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var TZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var UA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var UG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var UM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var US = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var UY = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var UZ = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var VA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var VC = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var VE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n)\n\nexport var VG = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var VI = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport var VN = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n)\n\nexport var VU = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n)\n\nexport var WF = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var WS = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var XK = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var YE = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n)\n\nexport var YT = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n)\n\nexport var ZA = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n)\n\nexport var ZM = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n)\n\nexport var ZW = ({ title, ...rest }) => (\n \n {title && {title}}\n\n \n \n \n \n \n \n \n \n \n)\n\nexport default {\n\tAC: AC,\n\tAD: AD,\n\tAE: AE,\n\tAF: AF,\n\tAG: AG,\n\tAI: AI,\n\tAL: AL,\n\tAM: AM,\n\tAO: AO,\n\tAQ: AQ,\n\tAR: AR,\n\tAS: AS,\n\tAT: AT,\n\tAU: AU,\n\tAW: AW,\n\tAX: AX,\n\tAZ: AZ,\n\tBA: BA,\n\tBB: BB,\n\tBD: BD,\n\tBE: BE,\n\tBF: BF,\n\tBG: BG,\n\tBH: BH,\n\tBI: BI,\n\tBJ: BJ,\n\tBL: BL,\n\tBM: BM,\n\tBN: BN,\n\tBO: BO,\n\tBQ: BQ,\n\tBR: BR,\n\tBS: BS,\n\tBT: BT,\n\tBV: BV,\n\tBW: BW,\n\tBY: BY,\n\tBZ: BZ,\n\tCA: CA,\n\tCC: CC,\n\tCD: CD,\n\tCF: CF,\n\tCG: CG,\n\tCH: CH,\n\tCI: CI,\n\tCK: CK,\n\tCL: CL,\n\tCM: CM,\n\tCN: CN,\n\tCO: CO,\n\tCR: CR,\n\tCU: CU,\n\tCV: CV,\n\tCW: CW,\n\tCX: CX,\n\tCY: CY,\n\tCZ: CZ,\n\tDE: DE,\n\tDJ: DJ,\n\tDK: DK,\n\tDM: DM,\n\tDO: DO,\n\tDZ: DZ,\n\tEC: EC,\n\tEE: EE,\n\tEG: EG,\n\tEH: EH,\n\tER: ER,\n\tES: ES,\n\tET: ET,\n\tEU: EU,\n\tFI: FI,\n\tFJ: FJ,\n\tFK: FK,\n\tFM: FM,\n\tFO: FO,\n\tFR: FR,\n\tGA: GA,\n\tGB: GB,\n\tGD: GD,\n\tGE: GE,\n\tGF: GF,\n\tGG: GG,\n\tGH: GH,\n\tGI: GI,\n\tGL: GL,\n\tGM: GM,\n\tGN: GN,\n\tGP: GP,\n\tGQ: GQ,\n\tGR: GR,\n\tGS: GS,\n\tGT: GT,\n\tGU: GU,\n\tGW: GW,\n\tGY: GY,\n\tHK: HK,\n\tHM: HM,\n\tHN: HN,\n\tHR: HR,\n\tHT: HT,\n\tHU: HU,\n\tIC: IC,\n\tID: ID,\n\tIE: IE,\n\tIL: IL,\n\tIM: IM,\n\tIN: IN,\n\tIO: IO,\n\tIQ: IQ,\n\tIR: IR,\n\tIS: IS,\n\tIT: IT,\n\tJE: JE,\n\tJM: JM,\n\tJO: JO,\n\tJP: JP,\n\tKE: KE,\n\tKG: KG,\n\tKH: KH,\n\tKI: KI,\n\tKM: KM,\n\tKN: KN,\n\tKP: KP,\n\tKR: KR,\n\tKW: KW,\n\tKY: KY,\n\tKZ: KZ,\n\tLA: LA,\n\tLB: LB,\n\tLC: LC,\n\tLI: LI,\n\tLK: LK,\n\tLR: LR,\n\tLS: LS,\n\tLT: LT,\n\tLU: LU,\n\tLV: LV,\n\tLY: LY,\n\tMA: MA,\n\tMC: MC,\n\tMD: MD,\n\tME: ME,\n\tMF: MF,\n\tMG: MG,\n\tMH: MH,\n\tMK: MK,\n\tML: ML,\n\tMM: MM,\n\tMN: MN,\n\tMO: MO,\n\tMP: MP,\n\tMQ: MQ,\n\tMR: MR,\n\tMS: MS,\n\tMT: MT,\n\tMU: MU,\n\tMV: MV,\n\tMW: MW,\n\tMX: MX,\n\tMY: MY,\n\tMZ: MZ,\n\tNA: NA,\n\tNC: NC,\n\tNE: NE,\n\tNF: NF,\n\tNG: NG,\n\tNI: NI,\n\tNL: NL,\n\tNO: NO,\n\tNP: NP,\n\tNR: NR,\n\tNU: NU,\n\tNZ: NZ,\n\tOM: OM,\n\tPA: PA,\n\tPE: PE,\n\tPF: PF,\n\tPG: PG,\n\tPH: PH,\n\tPK: PK,\n\tPL: PL,\n\tPM: PM,\n\tPN: PN,\n\tPR: PR,\n\tPS: PS,\n\tPT: PT,\n\tPW: PW,\n\tPY: PY,\n\tQA: QA,\n\tRE: RE,\n\tRO: RO,\n\tRS: RS,\n\tRU: RU,\n\tRW: RW,\n\tSA: SA,\n\tSB: SB,\n\tSC: SC,\n\tSD: SD,\n\tSE: SE,\n\tSG: SG,\n\tSH: SH,\n\tSI: SI,\n\tSJ: SJ,\n\tSK: SK,\n\tSL: SL,\n\tSM: SM,\n\tSN: SN,\n\tSO: SO,\n\tSR: SR,\n\tSS: SS,\n\tST: ST,\n\tSV: SV,\n\tSX: SX,\n\tSY: SY,\n\tSZ: SZ,\n\tTA: TA,\n\tTC: TC,\n\tTD: TD,\n\tTF: TF,\n\tTG: TG,\n\tTH: TH,\n\tTJ: TJ,\n\tTK: TK,\n\tTL: TL,\n\tTM: TM,\n\tTN: TN,\n\tTO: TO,\n\tTR: TR,\n\tTT: TT,\n\tTV: TV,\n\tTW: TW,\n\tTZ: TZ,\n\tUA: UA,\n\tUG: UG,\n\tUM: UM,\n\tUS: US,\n\tUY: UY,\n\tUZ: UZ,\n\tVA: VA,\n\tVC: VC,\n\tVE: VE,\n\tVG: VG,\n\tVI: VI,\n\tVN: VN,\n\tVU: VU,\n\tWF: WF,\n\tWS: WS,\n\tXK: XK,\n\tYE: YE,\n\tYT: YT,\n\tZA: ZA,\n\tZM: ZM,\n\tZW: ZW\n}","import React, { useState } from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport * as Flags from 'country-flag-icons/react/3x2'\r\n\r\n\r\n\r\nfunction OpenScreenSelect({ items, value, optionChangeHandler }) {\r\n const [open, setOpen] = useState(false);\r\n const [prefix, setPrefix] = useState(value);\r\n const clickHandler = () => setOpen(prev => !prev);\r\n const changeHandler = (value) => {\r\n optionChangeHandler(value);\r\n setOpen(false);\r\n setPrefix(value);\r\n }\r\n\r\n const Flag = ({ countryCode = 'UA' }) => {\r\n const FlagComponent = Flags[countryCode]\r\n return FlagComponent ? : <>\r\n };\r\n\r\n const getObjectKey = (obj, value) => {\r\n return Object.keys(obj).find(key => obj[key] === value);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {prefix} \r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {open && Object.keys(items).length > 0 ?\r\n
    \r\n {\r\n Object.keys(items)\r\n .sort((a, b) => items[a].localeCompare(items[b]))\r\n .map((country) => (\r\n
    changeHandler(items[country])} key={items[country]} className=\"select-item-container\">\r\n

    \r\n {items[country]}\r\n

    \r\n \r\n
    \r\n ))\r\n }\r\n
    :\r\n null\r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default OpenScreenSelect;","import OpenScreenSelect from 'components/options/Open_Screen_Select.js';\r\nimport { useEffect, useRef } from 'react';\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst countryToPhonePrefix = configuration.country_to_phone_prefix;\r\nconst introSurveyInputTypes = configuration.intro_survey_input_types;\r\n\r\nfunction QuizOptionWithLabel({ \r\n type, \r\n label, \r\n data, \r\n placeholder, \r\n optional, \r\n prefix,\r\n changeTextHandler,\r\n changePhonePrefixHandler\r\n}) {\r\n const inputRef = useRef(null);\r\n useEffect(() => {\r\n if (type === introSurveyInputTypes.surname) {\r\n inputRef.current.focus(); // Set focus conditionally\r\n }\r\n }, [type]);\r\n\r\n const maxDate = new Date();\r\n maxDate.setFullYear(maxDate.getFullYear() - 18);\r\n\r\n if (type === introSurveyInputTypes.phone) {\r\n return (\r\n
    \r\n \r\n
    \r\n changePhonePrefixHandler(value)}\r\n />\r\n
    \r\n changeTextHandler(evt.target.value)}\r\n className=\"quiz-option-data-text desktop\" \r\n />\r\n
    \r\n
    \r\n { optional ?
    { optional }
    : null }\r\n
    \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n { \r\n (type === introSurveyInputTypes.birth_date) ?\r\n (\r\n changeTextHandler(date) }\r\n />\r\n ) :\r\n (\r\n changeTextHandler(evt.target.value)}\r\n className=\"quiz-option-data-text desktop\" \r\n />\r\n )\r\n }\r\n
    \r\n { optional ?
    { optional }
    : null }\r\n
    \r\n )\r\n}\r\n\r\nexport default QuizOptionWithLabel;","import React from 'react';\r\nimport QuizOptionWithLabel from 'components/options/Quiz_Option_With_Label.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nfunction OpenScreen({ data, changeHandler, prefix: phonePrefix }) {\r\n const openScreenQuestions = Object.values(Content.getValue(\"intro_survey_open_screen\").questions);\r\n const openScreenRadio = Content.getValue(\"intro_survey_open_screen\").radio;\r\n const openScreenRadioOptions = Object.values(openScreenRadio.options);\r\n const configuration = require('configuration.json');\r\n const surveyRadioValues = configuration.survey_radio_values;\r\n\r\n return (\r\n <>\r\n { openScreenQuestions.map(({ label, type, placeholder, optional_label, prefix }) => (\r\n changeHandler(type, value)}\r\n changePhonePrefixHandler={(value) => changeHandler(prefix, value)}\r\n />\r\n ))}\r\n\r\n \r\n
    \r\n
    \r\n {\r\n openScreenRadioOptions.map((each, idx) => (\r\n
    changeHandler(openScreenRadio.type, surveyRadioValues[openScreenRadio.type][(idx + 1).toString()]) } \r\n >\r\n \r\n \r\n
    \r\n ))\r\n }\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default OpenScreen;","import React, { useState, useMemo } from 'react';\r\nimport UserData from 'User_Data.js';\r\nimport TopRightCloseIcon from 'components/widgets/Top_Right_Close_Icon.js';\r\nimport IntroSurveyQuizLayout from 'components/static/Intro_Survey_Quiz_Layout.js';\r\nimport StepProgress from 'components/survey/Step_Progress.js';\r\nimport ProgressBar from 'components/widgets/Progress_Bar.js';\r\nimport QuizOption from 'components/options/Quiz_Option.js';\r\nimport BackButton from 'components/buttons/Back_Button.js';\r\nimport NextButton from 'components/buttons/Next_Button.js';\r\nimport Slider from 'components/widgets/Slider.js';\r\nimport Select from 'components/options/Select.js';\r\nimport OpenScreen from 'components/survey/Open_Screen.js';\r\nimport IntroSurveyAnswersStorage from 'utils/Intro_Survey_Answers_Storage.js';\r\nimport { format } from \"date-fns\";\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst phonePrefixes = configuration.country_to_phone_prefix;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst introSurveyQuestionTypes = configuration.intro_survey_question_types;\r\nconst country = UserData.getItem(userDataKeys.country);\r\n\r\nfunction Quiz({ \r\n goToNext, \r\n goToBack, \r\n submitHandler,\r\n data, \r\n index, \r\n hint \r\n}) {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const introSurveyTotalSteps = parseInt(Content.getValue(\"intro_survey_total_steps\"));\r\n const introSurveyTotalQuestions = parseInt(Content.getValue(\"intro_survey_finishing_index\"));\r\n const { \r\n type, \r\n step, \r\n indexInStep, \r\n totalInStep, \r\n content, \r\n answers, \r\n footerText,\r\n extraHTML,\r\n minValue,\r\n maxValue,\r\n defaultValue,\r\n placeholder } = data;\r\n const [checkedId, setCheckedId] = useState(-1);\r\n const [checkedItems, setCheckedItems] = useState({});\r\n const [sliderValue, setSliderValue] = useState(null);\r\n const [dropDownValue, setDropDownValue] = useState();\r\n const [openScreen, setOpenScreen] = useState({});\r\n const progressBarWidth = 100 * (index / introSurveyTotalQuestions)+'%';\r\n const isBackButtonEnabled = step!==1 || indexInStep!==1;\r\n const isNextButtonEnabledForSingle = checkedId >= 0;\r\n const isNextButtonEnabledForMultiple = Object.values(checkedItems).some(each => each);\r\n const isNextButtonEnabledForDropdown = dropDownValue >= 0;\r\n const isNextButtonEnabledForRange = true;\r\n const isNextButtonEnabledForOpenScreen = useMemo(() => {\r\n const { bdate, city, state, country, surname, gender } = openScreen;\r\n if (!bdate || !city || !state || !country || !surname || !gender) {\r\n return false;\r\n }\r\n return true;\r\n }, [openScreen]); \r\n\r\n const isNextButtonEnabled = \r\n type === introSurveyQuestionTypes.range_selection ? \r\n sliderValue :\r\n type === introSurveyQuestionTypes.dropdown_selection ?\r\n isNextButtonEnabledForDropdown :\r\n type === introSurveyQuestionTypes.multiple_selection ? \r\n isNextButtonEnabledForMultiple :\r\n type === introSurveyQuestionTypes.single_selection ? \r\n isNextButtonEnabledForSingle :\r\n isNextButtonEnabledForOpenScreen;\r\n\r\n const backClickHandler = () => {\r\n if (!isBackButtonEnabled) return;\r\n let previousQuestionIndex = null;\r\n if (step === 1 && indexInStep === 2) {\r\n previousQuestionIndex = 1;\r\n }\r\n else if (step === 1 && indexInStep === 3) {\r\n if (IntroSurveyAnswersStorage.fetchAnswer(1) === 1) {\r\n previousQuestionIndex = 2;\r\n }\r\n else {\r\n previousQuestionIndex = 3;\r\n }\r\n }\r\n else {\r\n previousQuestionIndex = index - 1;\r\n }\r\n goToBack(previousQuestionIndex);\r\n setQuestionSelection(previousQuestionIndex);\r\n }\r\n\r\n const addAnswer = () => {\r\n if (type === introSurveyQuestionTypes.range_selection) {\r\n IntroSurveyAnswersStorage.addRangeSelectionAnswer(index, sliderValue || null);\r\n }\r\n else if (type === introSurveyQuestionTypes.dropdown_selection) {\r\n IntroSurveyAnswersStorage.addDropdownSelectionAnswer(index, dropDownValue + 1);\r\n }\r\n else if (type === introSurveyQuestionTypes.single_selection) {\r\n IntroSurveyAnswersStorage.addSingleSelectionAnswer(index, checkedId + 1);\r\n }\r\n else if (type === introSurveyQuestionTypes.multiple_selection) {\r\n const selected = [];\r\n for (const key in checkedItems) {\r\n if (checkedItems[key]) selected.push(+key+1);\r\n }\r\n IntroSurveyAnswersStorage.addMultipleSelectionAnswer(index, selected);\r\n }\r\n else {\r\n IntroSurveyAnswersStorage.addOpenQuestionAnswer(\r\n index,\r\n openScreen.surname,\r\n openScreen.country,\r\n openScreen.state,\r\n openScreen.city,\r\n format(openScreen.bdate, 'yyyy-MM-dd'),\r\n (openScreen.prefix || phonePrefixes[country]) + openScreen.phone,\r\n openScreen.gender,\r\n );\r\n }\r\n }\r\n\r\n const nextClickHandler = () => {\r\n addAnswer();\r\n if (index === introSurveyTotalQuestions) {\r\n goToNext();\r\n submitHandler();\r\n return;\r\n }\r\n \r\n const goOverOne = (step === 1) && ((indexInStep === 1 && checkedId === 1) || (indexInStep === 2 && index === 2));\r\n const nextQuestionIndex = goOverOne ? index + 2 : index + 1;\r\n goToNext(nextQuestionIndex);\r\n setQuestionSelection(nextQuestionIndex);\r\n setSliderValue(null)\r\n }\r\n\r\n const setQuestionSelection = (questionIndex) => {\r\n const introSurveyQuestions = Content.getValue(\"intro_survey_questions\");\r\n const questionType = introSurveyQuestions[questionIndex].type;\r\n const answer = IntroSurveyAnswersStorage.fetchAnswer(questionIndex);\r\n if (questionType === introSurveyQuestionTypes.single_selection) {\r\n setCheckedId(answer - 1);\r\n }\r\n else if (questionType === introSurveyQuestionTypes.multiple_selection) {\r\n const checked = {};\r\n if (answer !== null) {\r\n let singleAnswer;\r\n for (let i = 0, len = answer.length; i < len; i++) {\r\n singleAnswer = answer[i];\r\n checked[singleAnswer - 1] = true;\r\n }\r\n }\r\n setCheckedItems(checked);\r\n }\r\n else if (questionType === introSurveyQuestionTypes.range_selection) {\r\n setSliderValue(answer || defaultValue);\r\n }\r\n else if (questionType === introSurveyQuestionTypes.dropdown_selection) {\r\n setDropDownValue(answer - 1);\r\n }\r\n else if (questionType === introSurveyQuestionTypes.open_question) {\r\n setOpenScreen({});\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n {\r\n type === introSurveyQuestionTypes.range_selection ? \r\n (\r\n
    \r\n
    \r\n
    \r\n ) :\r\n type === introSurveyQuestionTypes.open_question ?\r\n (\r\n setOpenScreen(prev => ({ ...prev, [type]: value }))}\r\n />\r\n ) :\r\n (\r\n <>\r\n
    { content }
    \r\n { type === introSurveyQuestionTypes.multiple_selection && hint ?
    { hint }
    : null } \r\n
    \r\n {\r\n type === introSurveyQuestionTypes.single_selection ?\r\n Object.values(answers).map((each, idx) => (\r\n setCheckedId(idx)}\r\n />\r\n )) :\r\n type === introSurveyQuestionTypes.multiple_selection ?\r\n Object.values(answers).map((each, idx) => (\r\n setCheckedItems(prev => ({...prev, [idx]: !prev[idx]}))}\r\n />\r\n )) :\r\n type === introSurveyQuestionTypes.dropdown_selection ?\r\n setDropDownValue(value)}\r\n /> :\r\n null\r\n }\r\n
    \r\n \r\n )\r\n }\r\n
    \r\n {\r\n type === introSurveyQuestionTypes.range_selection ? \r\n
    \r\n
    { content }
    \r\n setSliderValue(value)}\r\n minValue={minValue}\r\n maxValue={maxValue}\r\n />\r\n
    :\r\n null\r\n }\r\n\r\n { footerText ?
    { footerText }
    : null }\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default Quiz;","import React from 'react';\r\n\r\nimport Backend from 'Backend.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport { SpinnerContext } from 'context/Global_Spinner.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport Redirects from 'utils/Redirects.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst backendURLs = Backend.backendURLs;\r\nconst signInURL = backendURLs.signInURL;\r\n\r\nlet thisComponent;\r\n\r\nclass LoginForm extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: null\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n signIn() {\r\n const { updateIsVisibleSpinner } = thisComponent.context;\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const accountSuspendedOption = menuOptions.account_suspended;\r\n let usernameInput = document.getElementById('username');\r\n let passwordInput = document.getElementById('password');\r\n let username = usernameInput.value;\r\n let password = passwordInput.value;\r\n\r\n if (username === '') {\r\n usernameInput.focus();\r\n return;\r\n }\r\n\r\n if (password === '') {\r\n passwordInput.focus();\r\n return;\r\n }\r\n\r\n const platform = Platform.getPlatformName();\r\n\r\n const postBody = {\r\n username: username,\r\n password: password,\r\n platformName: platform\r\n };\r\n\r\n updateIsVisibleSpinner({ isVisible: true, contentKey: 'logging_in' });\r\n\r\n fetch(signInURL, {\r\n credentials: \"include\",\r\n method: Backend.backendMethods.post,\r\n headers: Backend.generateHeader(),\r\n body: JSON.stringify(postBody)\r\n })\r\n .then(async function (res) {\r\n if(res.status === Backend.backendResponseCodes.internalServerErrorCode || res.status === Backend.backendResponseCodes.serviceUnavailableCode) {\r\n thisComponent.setState({\r\n error: Backend.loadBackendMessages().errorMessage,\r\n });\r\n return;\r\n }\r\n let result = await res.json();\r\n let loginSuccess = result.loginSuccess;\r\n if (loginSuccess) {\r\n await Backend.setEmailSessionData(result);\r\n Redirects.makeRedirectAfterLogin(true);\r\n }\r\n else {\r\n let accountSuspended = result.accountSuspended;\r\n if (accountSuspended) {\r\n redirectWithLangFunc(accountSuspendedOption.url);\r\n }\r\n else { \r\n let error = Content.getValue(result.error);\r\n thisComponent.setState({\r\n error: error,\r\n });\r\n setTimeout(function () {\r\n thisComponent.setState({\r\n error: null,\r\n });\r\n },\r\n 3000);\r\n }\r\n }\r\n })\r\n .catch((e) => {\r\n })\r\n .finally(() => { updateIsVisibleSpinner({ isVisible: false }); });\r\n }\r\n\r\n render() {\r\n const { error } = thisComponent.state;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n

    {error !== null ? error : 'Login result'}

    \r\n \r\n )\r\n }\r\n}\r\n\r\nLoginForm.contextType = SpinnerContext;\r\n\r\nexport default LoginForm;","import React, { useEffect, useState } from 'react';\r\nimport Organization from 'components/seo/Organization.js';\r\nimport Breadcrumb from 'components/seo/Breadcrumb.js';\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport IntroSurveyStartingSection from 'components/static/Intro_Survey_Starting_Section.js';\r\nimport IntroSurveyFinishingSection from 'components/static/Intro_Survey_Finishing_Section.js';\r\nimport IntroSurveyAnswersStorage from 'utils/Intro_Survey_Answers_Storage.js';\r\nimport Quiz from 'components/survey/Quiz.js';\r\nimport UserData from 'User_Data.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\n\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst IntroSurvey = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const introSurveyQuestions = Content.getValue(\"intro_survey_questions\");\r\n const startIndex = parseInt(Content.getValue(\"intro_survey_starting_index\"));\r\n const finalIndex = parseInt(Content.getValue(\"intro_survey_finishing_index\"));\r\n const introSurveyFinishedOption = menuOptions.intro_survey_finished;\r\n const multipleSelectionQuestionHint = introSurveyQuestions.multiple_selection_question_hint;\r\n\r\n const [questionIndex, setQuestionIndex] = useState(startIndex);\r\n const [validityStatus, setValidityStatus] = useState(false);\r\n\r\n const data = introSurveyQuestions[questionIndex];\r\n if (questionIndex === startIndex) IntroSurveyAnswersStorage.initializeAnswersStorage();\r\n\r\n if (UserData.getItem(userDataKeys.jwt_token) === null) {\r\n redirectWithLangFunc(menuOptions.playground.url);\r\n }\r\n \r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.intro_survey });\r\n }, []);\r\n\r\n const submitHandler = async () => {\r\n IntroSurveyAnswersStorage.sendAnswersToServer(\r\n introSurveyFinishedOption.url,\r\n (value) => setValidityStatus(value),\r\n );\r\n IntroSurveyAnswersStorage.clearAnswersStorage();\r\n };\r\n\r\n return (UserData.getItem(userDataKeys.jwt_token) !== null) ? (\r\n <>\r\n \r\n \r\n \r\n {\r\n questionIndex === startIndex ?\r\n {\r\n UserData.setItem(userDataKeys.intro_survey_starting_time, Date.now());\r\n setQuestionIndex(questionIndex + 1);\r\n }} /> :\r\n questionIndex > finalIndex && validityStatus ?\r\n :\r\n questionIndex > finalIndex && !validityStatus ?\r\n null :\r\n setQuestionIndex(number || questionIndex + 1)}\r\n goToBack={(number) => setQuestionIndex(number || questionIndex - 1)}\r\n />\r\n }\r\n \r\n ) : (null);\r\n};\r\n\r\nexport default IntroSurvey;","import Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport IntroSurveyFinishingSection from 'components/static/Intro_Survey_Finishing_Section.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect } from \"react\";\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\nimport { redirectWithLangFunc } from \"utils/RedirectWithLang.js\";\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst IntroSurveyFinished = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.intro_survey_finished });\r\n }, []);\r\n\r\n if (UserData.getItem(userDataKeys.jwt_token) === null) {\r\n redirectWithLangFunc(menuOptions.playground.url);\r\n }\r\n\r\n return (UserData.getItem(userDataKeys.jwt_token) !== null) ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n ) : (null);\r\n};\r\n\r\nexport default IntroSurveyFinished;\r\n\r\n","import Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Highscore from 'components/prizes/Highscore.js';\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport Footer from 'components/sections/Footer.js';\r\n\r\nimport NewsTrack from \"components/live_news/News_Track.js\";\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect } from \"react\";\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nconst Leaderboards = () => {\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.leaderboards });\r\n }, []);\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n let preferredLanguage = Content.getPreferredLanguage();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.leaderboards.title}

    \r\n
    \r\n
    \r\n
    \r\n {Content.getValue(\"contest_leaderboards_description\")}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Leaderboards;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\n\r\nconst SocialLoginOverlay = ({ text }) => {\r\n return (\r\n
    \r\n \r\n {text &&
    {text}
    }\r\n
    \r\n );\r\n};\r\n\r\nexport default SocialLoginOverlay;","import React, { Component } from 'react';\r\nimport * as queryString from 'query-string';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport Backend from 'Backend.js';\r\nimport UserData from 'User_Data.js';\r\nimport Images from 'utils/Images.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport Redirects from 'utils/Redirects.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nconst configuration = require('configuration.json');\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst backendURLs = Backend.backendURLs;\r\nconst facebookLoginURL = backendURLs.facebookLoginURL;\r\n\r\nconst urls = configuration.urls;\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst facebookConnection = globalConf.facebook_connection;\r\n\r\nconst facebookAuthURL = urls.facebook_auth_url;\r\n\r\nconst facebookAppID = facebookConnection.app_id;\r\nconst facebookRedirectUrl = facebookConnection.redirect_url;\r\n\r\nclass LoginFacebook extends Component {\r\n\r\n static handleFacebookLogin(facebookCode, gclient_id, fbclid, fbp) {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const homeOption = menuOptions.home;\r\n const playgroundOption = menuOptions.playground;\r\n const accountSuspendedOption = menuOptions.account_suspended;\r\n\r\n let robotIconURL = Images.imageURL('robot-icon.png');\r\n\r\n let ref = UserData.getItem(userDataKeys.referrer_code);\r\n const platform = Platform.getPlatformName();\r\n const directToDiscordCommunity = UserData.getItem(userDataKeys.redirect_to_discord_community_after_auth) ? 1 : 0;\r\n\r\n const postBody = {\r\n facebookCode: facebookCode,\r\n ref: ref,\r\n platformName: platform,\r\n gclient_id: gclient_id, \r\n fbclid: fbclid,\r\n fbp: fbp,\r\n directToDiscordCommunity\r\n }\r\n\r\n fetch(facebookLoginURL, {\r\n credentials: \"include\",\r\n method: Backend.backendMethods.post,\r\n headers: Backend.generateHeader(),\r\n body: JSON.stringify(postBody)\r\n }).then(async function (res) {\r\n let socialLoginOverlay = document.getElementById('social-login-overlay');\r\n if (socialLoginOverlay !== null) {\r\n socialLoginOverlay.parentNode.removeChild(socialLoginOverlay);\r\n }\r\n if (res.status === Backend.backendResponseCodes.internalServerErrorCode || res.status === Backend.backendResponseCodes.serviceUnavailableCode) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"facebook_login_failed_title\") + '

    ',\r\n html: '

    ' + Backend.loadBackendMessages().errorMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n else if (res.status === Backend.backendResponseCodes.badRequestCode) {\r\n const result = await res.json();\r\n if (result.accountSuspended === true) {\r\n redirectWithLangFunc(accountSuspendedOption.url);\r\n }\r\n else {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"facebook_login_failed_title\") + '

    ',\r\n html: '

    ' + Content.getValue(result.message) + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n const result = await res.json();\r\n await Backend.setFacebookSessionData(result);\r\n Redirects.makeRedirectAfterLogin(result.existingAccount);\r\n }\r\n\r\n });\r\n }\r\n\r\n render() {\r\n const stringifiedParams = queryString.stringify({\r\n client_id: facebookAppID,\r\n redirect_uri: facebookRedirectUrl,\r\n scope: ['email'].join(','),\r\n response_type: 'code',\r\n auth_type: 'rerequest',\r\n display: 'popup',\r\n });\r\n\r\n const facebookLoginUrl = Formatting.format(facebookAuthURL, [\"(stringifiedParams)\"], [stringifiedParams]);\r\n\r\n return \r\n {Content.getValue(\"login_with_facebook_button_text\")}\r\n \r\n }\r\n}\r\n\r\nexport default LoginFacebook;","import Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport React, { useContext, Component } from 'react';\r\nimport GoogleLogin from 'react-google-login';\r\nimport Images from 'utils/Images.js';\r\nimport Platform from 'utils/Platform.js';\r\n\r\nimport Backend from 'Backend.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport { SpinnerContext } from 'context/Global_Spinner.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport Redirects from 'utils/Redirects.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nconst globalConf = require('global_conf.json');\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst backendURLs = Backend.backendURLs;\r\nconst googleLoginURL = backendURLs.googleLoginURL;\r\n\r\nconst googleConnection = globalConf.google_connection;\r\n\r\nconst googleClientID = googleConnection.client_id;\r\nconst googleRedirectUrl = googleConnection.redirect_url;\r\n\r\n\r\nconst robotIconURL = Images.imageURL('robot-icon.png');\r\n\r\nclass LoginGoogle extends Component {\r\n\r\n \r\n\r\n static handleGoogleLogin(tokenId, gclient_id, fbclid, fbp) {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const homeOption = menuOptions.home;\r\n const playgroundOption = menuOptions.playground;\r\n const accountSuspendedOption = menuOptions.account_suspended;\r\n let ref = UserData.getItem(userDataKeys.referrer_code);\r\n const platform = Platform.getPlatformName();\r\n const directToDiscordCommunity = UserData.getItem(userDataKeys.redirect_to_discord_community_after_auth) ? 1 : 0;\r\n\r\n const postBody = {\r\n googleToken: tokenId,\r\n ref: ref,\r\n platformName: platform,\r\n gclient_id: gclient_id, \r\n fbclid: fbclid,\r\n fbp: fbp,\r\n directToDiscordCommunity\r\n }\r\n fetch(googleLoginURL, {\r\n credentials: \"include\",\r\n method: Backend.backendMethods.post,\r\n headers: Backend.generateHeader(),\r\n body: JSON.stringify(postBody)\r\n }).then(async function (res) {\r\n let socialLoginOverlay = document.getElementById('social-login-overlay');\r\n if (socialLoginOverlay !== null) {\r\n socialLoginOverlay.parentNode.removeChild(socialLoginOverlay);\r\n }\r\n if (res.status === Backend.backendResponseCodes.internalServerErrorCode || res.status === Backend.backendResponseCodes.serviceUnavailableCode) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"google_login_failed\") + '

    ',\r\n html: '

    ' + Backend.loadBackendMessages().errorMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n else if (res.status === Backend.backendResponseCodes.badRequestCode) {\r\n const result = await res.json();\r\n if (result.accountSuspended === true) {\r\n redirectWithLangFunc(accountSuspendedOption.url);\r\n }\r\n else {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"google_login_failed_title\") + '

    ',\r\n html: '

    ' + Content.getValue(result.message) + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n const result = await res.json();\r\n await Backend.setGoogleSessionData(result);\r\n Redirects.makeRedirectAfterLogin(result.existingAccount);\r\n }\r\n });\r\n\r\n }\r\n \r\n render() {\r\n if (UserData.getItem(userDataKeys.jwt_token) === null) {\r\n return (\r\n \r\n )\r\n }\r\n scope=\"profile\"\r\n uxMode=\"redirect\"\r\n redirectUri={googleRedirectUrl}\r\n buttonText={Content.getValue(\"sign_up_with_google_button_text\")}\r\n cookiePolicy={'single_host_origin'} />;\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n\r\nexport default LoginGoogle;\r\n\r\n\r\n","import Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport React, { useContext, Component } from 'react';\r\nimport Backend from 'Backend.js';\r\nimport UserData from 'User_Data.js';\r\nimport Images from 'utils/Images.js';\r\nimport Content from 'utils/Content.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport Consent from 'utils/Consent.js';\r\nimport Redirects from 'utils/Redirects.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst backendURLs = Backend.backendURLs;\r\nconst discordLoginURL = backendURLs.discordLoginURL;\r\nconst mergeDiscordURL = backendURLs.mergeDiscordURL;\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst cookies = configuration.cookies;\r\n\r\n\r\nclass LoginDiscord extends Component {\r\n\r\n static redirectToHomepage() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const homeOption = menuOptions.home;\r\n\r\n redirectWithLangFunc(homeOption.url);\r\n }\r\n\r\n static redirectToWelcomePage() {\r\n \r\n const welcomeUrl = configuration.paths.welcome;\r\n redirectWithLangFunc(welcomeUrl);\r\n }\r\n\r\n static isSetToRedirectToDiscordCommunityAfterAuth() {\r\n return (UserData.getItem(userDataKeys.redirect_to_discord_community_after_auth) !== null);\r\n }\r\n\r\n static setToRedirectToDiscordCommunity() {\r\n UserData.removeItem(userDataKeys.redirect_to_discord_community_after_auth);\r\n UserData.setItem(userDataKeys.redirect_to_discord_community, true);\r\n }\r\n\r\n static handleDiscord(discordRedirectRequestCode) {\r\n \r\n let jwtToken = UserData.getItem(userDataKeys.jwt_token);\r\n\r\n if (jwtToken === null) {\r\n const startRegistration = function() {\r\n const gclient_id = UserData.getItem(userDataKeys.gclient_id);\r\n const fbclid = UserData.getCookie(cookies.fbc) || UserData.getItem(userDataKeys.fbclid);\r\n const fbp = UserData.getCookie(cookies.fbp);\r\n LoginDiscord.handleDiscordLogin(discordRedirectRequestCode, gclient_id, fbclid, fbp);\r\n };\r\n Backend.startAfterAnalyticsInitialized(startRegistration);\r\n }\r\n else {\r\n let connectedToDiscord = UserData.getItem(userDataKeys.connected_to_discord);\r\n if (connectedToDiscord === \"1\") {\r\n LoginDiscord.redirectToHomepage();\r\n }\r\n else {\r\n LoginDiscord.handleDiscordMerge(discordRedirectRequestCode);\r\n } \r\n }\r\n }\r\n\r\n static handleDiscordLogin(discordCode, gclient_id, fbclid, fbp) {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const playgroundOption = menuOptions.playground;\r\n const accountSuspendedOption = menuOptions.account_suspended;\r\n\r\n let robotIconURL = Images.imageURL('robot-icon.png');\r\n\r\n let ref = UserData.getItem(userDataKeys.referrer_code);\r\n const platform = Platform.getPlatformName();\r\n\r\n const postBody = {\r\n discordCode: discordCode,\r\n ref: ref,\r\n platformName: platform,\r\n gclient_id: gclient_id, \r\n fbclid: fbclid,\r\n fbp: fbp\r\n }\r\n\r\n fetch(discordLoginURL, {\r\n credentials: \"include\",\r\n method: Backend.backendMethods.post,\r\n headers: Backend.generateHeader(),\r\n body: JSON.stringify(postBody)\r\n }).then(async function (res) {\r\n let socialLoginOverlay = document.getElementById('social-login-overlay');\r\n if (socialLoginOverlay !== null) {\r\n socialLoginOverlay.parentNode.removeChild(socialLoginOverlay);\r\n }\r\n if (res.status === Backend.backendResponseCodes.internalServerErrorCode || res.status === Backend.backendResponseCodes.serviceUnavailableCode) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"discord_login_failed_title\") + '

    ',\r\n html: '

    ' + Backend.loadBackendMessages().errorMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n else if (res.status === Backend.backendResponseCodes.badRequestCode) {\r\n const result = await res.json();\r\n if (result.accountSuspended === true) {\r\n redirectWithLangFunc(accountSuspendedOption.url);\r\n }\r\n else {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"discord_login_failed_title\") + '

    ',\r\n html: '

    ' + Content.getValue(result.message) + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n const result = await res.json();\r\n await Backend.setDiscordSessionData(result);\r\n if (Redirects.recommendedOrEmailOfferSet()) {\r\n redirectWithLangFunc(playgroundOption.url);\r\n }\r\n else {\r\n if (LoginDiscord.isSetToRedirectToDiscordCommunityAfterAuth()) {\r\n LoginDiscord.setToRedirectToDiscordCommunity();\r\n }\r\n else if (result.existingAccount) {\r\n LoginDiscord.redirectToHomepage();\r\n }\r\n else {\r\n LoginDiscord.redirectToWelcomePage();\r\n }\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n static handleDiscordMerge(discordCode) {\r\n\r\n let robotIconURL = Images.imageURL('robot-icon.png');\r\n\r\n const postBody = {\r\n discordCode: discordCode\r\n }\r\n\r\n fetch(mergeDiscordURL, {\r\n method: Backend.backendMethods.post,\r\n headers: Backend.generateHeader(),\r\n body: JSON.stringify(postBody)\r\n }).then(async function (res) {\r\n let socialLoginOverlay = document.getElementById('social-login-overlay');\r\n if (socialLoginOverlay !== null) {\r\n socialLoginOverlay.parentNode.removeChild(socialLoginOverlay);\r\n }\r\n if (res.status === Backend.backendResponseCodes.internalServerErrorCode || res.status === Backend.backendResponseCodes.serviceUnavailableCode) {\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"discord_login_failed_title\") + '

    ',\r\n html: '

    ' + Backend.loadBackendMessages().errorMessage + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n }\r\n else if (res.status === Backend.backendResponseCodes.badRequestCode) {\r\n const result = await res.json();\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"discord_login_failed_title\") + '

    ',\r\n html: '

    ' + Content.getValue(result.message) + '

    ',\r\n iconHtml: '\"TreatCoin',\r\n background: 'linear-gradient(46.77deg, #DEF5FE 14.02%, #F9E7FF 48.07%, #FEEBE3 69.02%, #FFF1CC 91.84%), #C4C4C4',\r\n showCancelButton: false,\r\n confirmButtonText: Content.getValue(\"close_button_text\"),\r\n customClass: {\r\n confirmButton: 'standard-confirm-button'\r\n }\r\n });\r\n\r\n }\r\n else {\r\n const result = await res.json();\r\n const directToDiscordCommunity = result.directToDiscordCommunity;\r\n if (LoginDiscord.isSetToRedirectToDiscordCommunityAfterAuth() || \r\n directToDiscordCommunity) {\r\n LoginDiscord.setToRedirectToDiscordCommunity();\r\n }\r\n LoginDiscord.redirectToHomepage();\r\n }\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\nexport default LoginDiscord;","import AccountAccessPageHeader from 'components/sections/Account_Access_Page_Header.js';\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport LoginForm from 'components/forms/Email_Login_Form.js';\r\nimport SocialLoginOverlay from 'components/login/Social_Login_Overlay.js';\r\nimport LinkCreator from 'utils/Link_Creator.js';\r\nimport Images from 'utils/Images.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport * as queryString from 'query-string';\r\nimport LoginFacebook from 'components/social/Login_Facebook.js';\r\nimport LoginGoogle from 'components/social/Login_Google.js';\r\nimport LoginDiscord from 'components/social/Login_Discord.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect, useState } from 'react';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport UserData from 'User_Data.js';\r\nimport Backend from 'Backend.js';\r\nimport Consent from 'utils/Consent.js';\r\nimport Join from 'components/widgets/Join/Join.js';\r\nimport { useLocation } from 'react-router-dom';\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst websiteConnection = globalConf.website_connection;\r\nconst facebookConnection = globalConf.facebook_connection;\r\nconst discordConnection = globalConf.discord_connection;\r\nconst urls = configuration.urls;\r\nconst cookies = configuration.cookies;\r\n\r\nconst host = websiteConnection.frontend_host;\r\n\r\nconst facebookAppID = facebookConnection.app_id;\r\nconst facebookRedirectUrl = facebookConnection.redirect_url;\r\n\r\nconst discordClientID = discordConnection.client_id;\r\nconst discordRedirectUrl = discordConnection.redirect_url;\r\n\r\nconst facebookAuthURL = urls.facebook_auth_url;\r\nconst discordAuthURL = urls.discord_auth_url;\r\n\r\nconst stringifiedFacebookParams = queryString.stringify({\r\n client_id: facebookAppID,\r\n redirect_uri: facebookRedirectUrl,\r\n scope: ['email'].join(','),\r\n response_type: 'code',\r\n auth_type: 'rerequest',\r\n display: 'popup',\r\n});\r\n\r\nconst stringifiedDiscordParams = queryString.stringify({\r\n client_id: discordClientID,\r\n response_type: 'code',\r\n redirect_uri: discordRedirectUrl,\r\n scope: ['identify', 'email', 'guilds.join', 'guilds.members.read'].join(' '),\r\n prompt: 'none'\r\n});\r\n\r\n\r\nconst botLinkAddress = LinkCreator.createBotLink();\r\nconst facebookLoginUrl = Formatting.format(facebookAuthURL, [\"(stringifiedParams)\"], [stringifiedFacebookParams]);\r\nconst discordLoginUrl = Formatting.format(discordAuthURL, [\"(stringifiedParams)\"], [stringifiedDiscordParams]);\r\n\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nfunction thisPageIsGoingToRedirectToDifferentLanguage() {\r\n const url = window.location.pathname;\r\n let match = url.match(/^\\/([a-z]{2})\\//);\r\n if (!match) {\r\n match = url.match(/^\\/([a-z]{2})$/);\r\n }\r\n const langData = configuration.languages;\r\n const langCode = match ? langData.find(i => i.url_code === match[1])?.code : '';\r\n const storedLangCode = Content.getPreferredLanguage();\r\n const hasCodeMatch = langData.some(i => i.code === storedLangCode);\r\n let willRedirect = (!langCode && storedLangCode !== null && storedLangCode !== langData[0].code && hasCodeMatch);\r\n return willRedirect;\r\n}\r\n\r\n\r\nconst Login = () => {\r\n const location = useLocation();\r\n const [regEmail, setRegEmail] = useState('');\r\n\r\n const urlParams = queryString.parse(window.location.search);\r\n const code = urlParams.code;\r\n let facebookRedirectRequestCode = null;\r\n let discordRedirectRequestCode = null;\r\n if (code) {\r\n if (code.length > 128) {\r\n facebookRedirectRequestCode = urlParams.code;\r\n } \r\n else {\r\n discordRedirectRequestCode = urlParams.code;\r\n }\r\n }\r\n\r\n const locationFragment = window.location.href.split(\"#\")[1];\r\n const fragmentParams = queryString.parse(locationFragment);\r\n const googleRedirectRequestCode = fragmentParams.id_token;\r\n\r\n if (!thisPageIsGoingToRedirectToDifferentLanguage()) {\r\n if (facebookRedirectRequestCode) {\r\n const startRegistration = function () {\r\n const gclient_id = UserData.getItem(userDataKeys.gclient_id);\r\n const fbclid = UserData.getCookie(cookies.fbc) || UserData.getItem(userDataKeys.fbclid);\r\n const fbp = UserData.getCookie(cookies.fbp);\r\n LoginFacebook.handleFacebookLogin(facebookRedirectRequestCode, gclient_id, fbclid, fbp);\r\n };\r\n Backend.startAfterAnalyticsInitialized(startRegistration);\r\n\r\n }\r\n else if (googleRedirectRequestCode) {\r\n const startRegistration = function () {\r\n const gclient_id = UserData.getItem(userDataKeys.gclient_id);\r\n const fbclid = UserData.getCookie(cookies.fbc) || UserData.getItem(userDataKeys.fbclid);\r\n const fbp = UserData.getCookie(cookies.fbp);\r\n LoginGoogle.handleGoogleLogin(googleRedirectRequestCode, gclient_id, fbclid, fbp);\r\n };\r\n Backend.startAfterAnalyticsInitialized(startRegistration);\r\n }\r\n\r\n else if (discordRedirectRequestCode) {\r\n LoginDiscord.handleDiscord(discordRedirectRequestCode);\r\n }\r\n }\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.login });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {\"TreatCoin\"}\r\n\r\n
    \r\n {\r\n facebookRedirectRequestCode ? (\r\n \r\n ) : \r\n googleRedirectRequestCode ? (\r\n \r\n ) : \r\n discordRedirectRequestCode ? (\r\n \r\n ) : \r\n (null)\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default Login;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Formatting from 'utils/Formatting.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nconst StatsTab = ({ \r\n data: {\r\n refCount = 0,\r\n refAmount = 0,\r\n ref2ndGenCount = 0,\r\n ref2ndGenAmount = 0,\r\n ref3rdGenCount = 0,\r\n ref3rdGenAmount = 0,\r\n totalCoinsEarned = 0\r\n }\r\n}) => {\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n monthly-user-1.png\r\n
    \r\n
    \r\n \r\n { Formatting.formatTreatCoinAmount(refCount) }\r\n \r\n \r\n { Content.getValue(\"first_gen_ref\") }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n monthly-user-4.png\r\n
    \r\n
    \r\n \r\n {Formatting.formatTreatCoinAmount(refAmount)}\r\n \r\n \r\n {Content.getValue(\"earned_first_gen_ref\")}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n monthly-user-2.png\r\n
    \r\n
    \r\n \r\n {Formatting.formatTreatCoinAmount(ref2ndGenCount)}\r\n \r\n \r\n {Content.getValue(\"second_gen_ref\")}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n monthly-user-5.png\r\n
    \r\n
    \r\n \r\n {Formatting.formatTreatCoinAmount(ref2ndGenAmount)}\r\n \r\n \r\n {Content.getValue(\"earned_second_gen_ref\")}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n monthly-user-3.png\r\n
    \r\n
    \r\n \r\n {Formatting.formatTreatCoinAmount(ref3rdGenCount)}\r\n \r\n \r\n {Content.getValue(\"third_gen_ref\")}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n monthly-user-6.png\r\n
    \r\n
    \r\n \r\n {Formatting.formatTreatCoinAmount(ref3rdGenAmount)}\r\n \r\n \r\n { Content.getValue(\"earned_third_gen_ref\") }\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n monthly-user-1.png\r\n
    \r\n
    \r\n \r\n { Formatting.formatTreatCoinAmount(totalCoinsEarned) }\r\n \r\n \r\n { Content.getValue(\"earned_your_team\") }\r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default StatsTab;","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","/*!\n * @kurkle/color v0.3.2\n * https://github.com/kurkle/color#readme\n * (c) 2023 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\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 return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/**\n * @namespace Chart.helpers\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ActiveDataPoint, ChartEvent} from '../types/index.js';\n\n/**\n * An empty function that can be used, for example, for optional callback.\n */\nexport function noop() {\n /* noop */\n}\n\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */\nexport const uid = (() => {\n let id = 0;\n return () => id++;\n})();\n\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isNullOrUndef(value: unknown): value is null | undefined {\n return value === null || typeof value === 'undefined';\n}\n\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */\nexport function isArray(value: unknown): value is T[] {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nexport function isObject(value: unknown): value is AnyObject {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */\nfunction isNumberFinite(value: unknown): value is number {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\nexport {\n isNumberFinite as isFinite,\n};\n\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */\nexport function finiteOrDefault(value: unknown, defaultValue: number) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */\nexport function valueOrDefault(value: T | undefined, defaultValue: T) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\n\nexport const toPercentage = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : +value / dimension;\n\nexport const toDimension = (value: number | string, dimension: number) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\n\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */\nexport function callback R, TA, R>(\n fn: T | undefined,\n args: unknown[],\n thisArg?: TA\n): R | undefined {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\n\n/**\n * Note(SB) for performance sake, this method should only be used when loopable type\n * is unknown or in none intensive code (not called often and small loopable). Else\n * it's preferable to use a regular for() loop and save extra function calls.\n * @param loopable - The object or array to be iterated.\n * @param fn - The function to call for each item.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n * @param [reverse] - If true, iterates backward on the loopable.\n */\nexport function each(\n loopable: Record,\n fn: (this: TA, v: T, i: string) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[],\n fn: (this: TA, v: T, i: number) => void,\n thisArg?: TA,\n reverse?: boolean\n): void;\nexport function each(\n loopable: T[] | Record,\n fn: (this: TA, v: T, i: any) => void,\n thisArg?: TA,\n reverse?: boolean\n) {\n let i: number, len: number, keys: string[];\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */\nexport function _elementsEqual(a0: ActiveDataPoint[], a1: ActiveDataPoint[]) {\n let i: number, ilen: number, v0: ActiveDataPoint, v1: ActiveDataPoint;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */\nexport function clone(source: T): T {\n if (isArray(source)) {\n return source.map(clone) as unknown as T;\n }\n\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = clone(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n}\n\nfunction isValidKey(key: string) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */\nexport function _merger(key: string, target: AnyObject, source: AnyObject, options: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\n\nexport interface MergeOptions {\n merger?: (key: string, target: AnyObject, source: AnyObject, options?: AnyObject) => void;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` with the given `options`.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @param [options] - Merging options:\n * @param [options.merger] - The merge method (key, target, source, options)\n * @returns The `target` object.\n */\nexport function merge(target: T, source: [], options?: MergeOptions): T;\nexport function merge(target: T, source: S1, options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1], options?: MergeOptions): T & S1;\nexport function merge(target: T, source: [S1, S2], options?: MergeOptions): T & S1 & S2;\nexport function merge(target: T, source: [S1, S2, S3], options?: MergeOptions): T & S1 & S2 & S3;\nexport function merge(\n target: T,\n source: [S1, S2, S3, S4],\n options?: MergeOptions\n): T & S1 & S2 & S3 & S4;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject;\nexport function merge(target: T, source: AnyObject[], options?: MergeOptions): AnyObject {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n\n if (!isObject(target)) {\n return target as AnyObject;\n }\n\n options = options || {};\n const merger = options.merger || _merger;\n let current: AnyObject;\n\n for (let i = 0; i < ilen; ++i) {\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n\n const keys = Object.keys(current);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, current, options as AnyObject);\n }\n }\n\n return target;\n}\n\n/**\n * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n * @param target - The target object in which all sources are merged into.\n * @param source - Object(s) to merge into `target`.\n * @returns The `target` object.\n */\nexport function mergeIf(target: T, source: []): T;\nexport function mergeIf(target: T, source: S1): T & S1;\nexport function mergeIf(target: T, source: [S1]): T & S1;\nexport function mergeIf(target: T, source: [S1, S2]): T & S1 & S2;\nexport function mergeIf(target: T, source: [S1, S2, S3]): T & S1 & S2 & S3;\nexport function mergeIf(target: T, source: [S1, S2, S3, S4]): T & S1 & S2 & S3 & S4;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject;\nexport function mergeIf(target: T, source: AnyObject[]): AnyObject {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {merger: _mergerIf});\n}\n\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\nexport function _mergerIf(key: string, target: AnyObject, source: AnyObject) {\n if (!isValidKey(key)) {\n return;\n }\n\n const tval = target[key];\n const sval = source[key];\n\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n\n/**\n * @private\n */\nexport function _deprecated(scope: string, value: unknown, previous: string, current: string) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': v => v,\n // default resolvers\n x: o => o.x,\n y: o => o.y\n};\n\n/**\n * @private\n */\nexport function _splitKey(key: string) {\n const parts = key.split('.');\n const keys: string[] = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\n\nfunction _getKeyResolver(key: string) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n // For backward compatibility:\n // Chart.helpers.core resolveObjectKey should break at empty key\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\n\nexport function resolveObjectKey(obj: AnyObject, key: string): AnyObject {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n\n/**\n * @private\n */\nexport function _capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\n\nexport const defined = (value: unknown) => typeof value !== 'undefined';\n\nexport const isFunction = (value: unknown): value is (...args: any[]) => any => typeof value === 'function';\n\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nexport const setsEqual = (a: Set, b: Set) => {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * @param e - The event\n * @private\n */\nexport function _isClickEvent(e: ChartEvent) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n","import type {Point} from '../types/geometric.js';\nimport {isFinite as isFiniteNumber} from './helpers.core.js';\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\n\nexport const PI = Math.PI;\nexport const TAU = 2 * PI;\nexport const PITAU = TAU + PI;\nexport const INFINITY = Number.POSITIVE_INFINITY;\nexport const RAD_PER_DEG = PI / 180;\nexport const HALF_PI = PI / 2;\nexport const QUARTER_PI = PI / 4;\nexport const TWO_THIRDS_PI = PI * 2 / 3;\n\nexport const log10 = Math.log10;\nexport const sign = Math.sign;\n\nexport function almostEquals(x: number, y: number, epsilon: number) {\n return Math.abs(x - y) < epsilon;\n}\n\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */\nexport function niceNum(range: number) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */\nexport function _factorize(value: number) {\n const result: number[] = [];\n const sqrt = Math.sqrt(value);\n let i: number;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) { // if value is a square number\n result.push(sqrt);\n }\n\n result.sort((a, b) => a - b).pop();\n return result;\n}\n\nexport function isNumber(n: unknown): n is number {\n return !isNaN(parseFloat(n as string)) && isFinite(n as number);\n}\n\nexport function almostWhole(x: number, epsilon: number) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\n\n/**\n * @private\n */\nexport function _setMinAndMaxByKey(\n array: Record[],\n target: { min: number, max: number },\n property: string\n) {\n let i: number, ilen: number, value: number;\n\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\n\nexport function toRadians(degrees: number) {\n return degrees * (PI / 180);\n}\n\nexport function toDegrees(radians: number) {\n return radians * (180 / PI);\n}\n\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */\nexport function _decimalPlaces(x: number) {\n if (!isFiniteNumber(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\n\n// Gets the angle from vertical upright to the point about a centre.\nexport function getAngleFromPoint(\n centrePoint: Point,\n anglePoint: Point\n) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n if (angle < (-0.5 * PI)) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\n\nexport function distanceBetweenPoints(pt1: Point, pt2: Point) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */\nexport function _angleDiff(a: number, b: number) {\n return (a - b + PITAU) % TAU - PI;\n}\n\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */\nexport function _normalizeAngle(a: number) {\n return (a % TAU + TAU) % TAU;\n}\n\n/**\n * @private\n */\nexport function _angleBetween(angle: number, start: number, end: number, sameAngleIsFullCircle?: boolean) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\n\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */\nexport function _limitValue(value: number, min: number, max: number) {\n return Math.max(min, Math.min(max, value));\n}\n\n/**\n * @param {number} value\n * @private\n */\nexport function _int16Range(value: number) {\n return _limitValue(value, -32768, 32767);\n}\n\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */\nexport function _isBetween(value: number, start: number, end: number, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n","import {_capitalize} from './helpers.core.js';\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param value - value to find\n * @param cmp\n * @private\n */\nexport function _lookup(\n table: number[],\n value: number,\n cmp?: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: T[],\n value: number,\n cmp: (value: number) => boolean\n): {lo: number, hi: number};\nexport function _lookup(\n table: unknown[],\n value: number,\n cmp?: (value: number) => boolean\n) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid: number;\n\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n\n return {lo, hi};\n}\n\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */\nexport const _lookupByKey = (\n table: Record[],\n key: string,\n value: number,\n last?: boolean\n) =>\n _lookup(table, value, last\n ? index => {\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n }\n : index => table[index][key] < value);\n\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */\nexport const _rlookupByKey = (\n table: Record[],\n key: string,\n value: number\n) =>\n _lookup(table, value, index => table[index][key] >= value);\n\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */\nexport function _filterBetween(values: number[], min: number, max: number) {\n let start = 0;\n let end = values.length;\n\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\n\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'] as const;\n\nexport interface ArrayListener {\n _onDataPush?(...item: T[]): void;\n _onDataPop?(): void;\n _onDataShift?(): void;\n _onDataSplice?(index: number, deleteCount: number, ...items: T[]): void;\n _onDataUnshift?(...item: T[]): void;\n}\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the '_onData*' callbacks (e.g. _onDataPush, etc.) with same arguments.\n */\nexport function listenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n\n return res;\n }\n });\n });\n}\n\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nexport function unlistenArrayEvents(array: T[], listener: ArrayListener): void;\nexport function unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n\n delete array._chartjs;\n}\n\n/**\n * @param items\n */\nexport function _arrayUnique(items: T[]) {\n const set = new Set();\n let i: number, ilen: number;\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n\n if (set.size === ilen) {\n return items;\n }\n\n return Array.from(set);\n}\n","import type {ChartMeta, PointElement} from '../types/index.js';\n\nimport {_limitValue} from './helpers.math.js';\nimport {_lookupByKey} from './helpers.collection.js';\n\nexport function fontString(pixelSize: number, fontStyle: string, fontFamily: string) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n\n/**\n* Request animation polyfill\n*/\nexport const requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\n\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */\nexport function throttled>(\n fn: (...args: TArgs) => void,\n thisArg: any,\n) {\n let argsToUse = [] as TArgs;\n let ticking = false;\n\n return function(...args: TArgs) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n\n/**\n * Debounces calling `fn` for `delay` ms\n */\nexport function debounce>(fn: (...args: TArgs) => void, delay: number) {\n let timeout;\n return function(...args: TArgs) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */\nexport const _toLeftRightCenter = (align: 'start' | 'end' | 'center') => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */\nexport const _alignStartEnd = (align: 'start' | 'end' | 'center', start: number, end: number) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */\nexport const _textX = (align: 'left' | 'right' | 'center', left: number, right: number, rtl: boolean) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\n/**\n * Return start and count of visible points.\n * @private\n */\nexport function _getStartAndCountOfVisiblePoints(meta: ChartMeta<'line' | 'scatter'>, points: PointElement[], animationsDisabled: boolean) {\n const pointCount = points.length;\n\n let start = 0;\n let count = pointCount;\n\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n\n if (minDefined) {\n start = _limitValue(Math.min(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, min).lo,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n // @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n\n return {start, count};\n}\n\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */\nexport function _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n","import {PI, TAU, HALF_PI} from './helpers.math.js';\n\nconst atEdge = (t: number) => t === 0 || t === 1;\nconst elasticIn = (t: number, s: number, p: number) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t: number, s: number, p: number) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */\nconst effects = {\n linear: (t: number) => t,\n\n easeInQuad: (t: number) => t * t,\n\n easeOutQuad: (t: number) => -t * (t - 2),\n\n easeInOutQuad: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n\n easeInCubic: (t: number) => t * t * t,\n\n easeOutCubic: (t: number) => (t -= 1) * t * t + 1,\n\n easeInOutCubic: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n\n easeInQuart: (t: number) => t * t * t * t,\n\n easeOutQuart: (t: number) => -((t -= 1) * t * t * t - 1),\n\n easeInOutQuart: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n\n easeInQuint: (t: number) => t * t * t * t * t,\n\n easeOutQuint: (t: number) => (t -= 1) * t * t * t * t + 1,\n\n easeInOutQuint: (t: number) => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n\n easeInSine: (t: number) => -Math.cos(t * HALF_PI) + 1,\n\n easeOutSine: (t: number) => Math.sin(t * HALF_PI),\n\n easeInOutSine: (t: number) => -0.5 * (Math.cos(PI * t) - 1),\n\n easeInExpo: (t: number) => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n\n easeOutExpo: (t: number) => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n\n easeInOutExpo: (t: number) => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n\n easeInCirc: (t: number) => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n\n easeOutCirc: (t: number) => Math.sqrt(1 - (t -= 1) * t),\n\n easeInOutCirc: (t: number) => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n\n easeInElastic: (t: number) => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n\n easeOutElastic: (t: number) => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n\n easeInOutElastic(t: number) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n\n easeInBack(t: number) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n\n easeOutBack(t: number) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n\n easeInOutBack(t: number) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n\n easeInBounce: (t: number) => 1 - effects.easeOutBounce(1 - t),\n\n easeOutBounce(t: number) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n\n easeInOutBounce: (t: number) => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n} as const;\n\nexport type EasingFunction = keyof typeof effects\n\nexport default effects;\n","import {Color} from '@kurkle/color';\n\nexport function isPatternOrGradient(value: unknown): value is CanvasPattern | CanvasGradient {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n\n return false;\n}\n\nexport function color(value: CanvasGradient): CanvasGradient;\nexport function color(value: CanvasPattern): CanvasPattern;\nexport function color(\n value:\n | string\n | { r: number; g: number; b: number; a: number }\n | [number, number, number]\n | [number, number, number, number]\n): Color;\nexport function color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\n\nexport function getHoverColor(value: CanvasGradient): CanvasGradient;\nexport function getHoverColor(value: CanvasPattern): CanvasPattern;\nexport function getHoverColor(value: string): string;\nexport function getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n","const numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\n\nexport function applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n });\n\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n });\n\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n });\n\n defaults.describe('animations', {\n _fallback: 'animation',\n });\n\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0 // show immediately\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0 // for keeping the dataset visible all the way through the animation\n },\n }\n }\n });\n}\n","\nconst intlCache = new Map();\n\nfunction getNumberFormat(locale: string, options?: Intl.NumberFormatOptions) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\n\nexport function formatNumber(num: number, locale: string, options?: Intl.NumberFormatOptions) {\n return getNumberFormat(locale, options).format(num);\n}\n","import {isArray} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {log10} from '../helpers/helpers.math.js';\n\n/**\n * Namespace to hold formatters for different types of ticks\n * @namespace Chart.Ticks.formatters\n */\nconst formatters = {\n /**\n * Formatter for value labels\n * @method Chart.Ticks.formatters.values\n * @param value the value to display\n * @return {string|string[]} the label to display\n */\n values(value) {\n return isArray(value) ? /** @type {string[]} */ (value) : '' + value;\n },\n\n /**\n * Formatter for numeric ticks\n * @method Chart.Ticks.formatters.numeric\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0'; // never show decimal places for 0\n }\n\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue; // This is used when there are less than 2 ticks as the tick interval.\n\n if (ticks.length > 1) {\n // all ticks are small or there huge numbers; use scientific notation\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n\n delta = calculateDelta(tickValue, ticks);\n }\n\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0); // toFixed has a max of 20 decimal places\n\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n\n return formatNumber(tickValue, locale, options);\n },\n\n\n /**\n * Formatter for logarithmic ticks\n * @method Chart.Ticks.formatters.logarithmic\n * @param tickValue {number} the value to be formatted\n * @param index {number} the position of the tickValue parameter in the ticks array\n * @param ticks {object[]} the list of ticks being converted\n * @return {string} string representation of the tickValue parameter\n */\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || (tickValue / (Math.pow(10, Math.floor(log10(tickValue)))));\n if ([1, 2, 3, 5, 10, 15].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n\n};\n\n\nfunction calculateDelta(tickValue, ticks) {\n // Figure out how many digits to show\n // The space between the first two ticks might be smaller than normal spacing\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n\n // If we have a number like 2.5 as the delta, figure out how many decimal places we need\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n // not an integer\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nexport default {formatters};\n","import {getHoverColor} from '../helpers/helpers.color.js';\nimport {isObject, merge, valueOrDefault} from '../helpers/helpers.core.js';\nimport {applyAnimationsDefaults} from './core.animations.defaults.js';\nimport {applyLayoutsDefaults} from './core.layouts.defaults.js';\nimport {applyScaleDefaults} from './core.scale.defaults.js';\n\nexport const overrides = Object.create(null);\nexport const descriptors = Object.create(null);\n\n/**\n * @param {object} node\n * @param {string} key\n * @return {object}\n */\nfunction getScope(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\n\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope(root, scope), values);\n }\n return merge(getScope(root, ''), scope);\n}\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Defaults {\n constructor(_descriptors, _appliers) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n set(scope, values) {\n return set(this, scope, values);\n }\n\n /**\n\t * @param {string} scope\n\t */\n get(scope) {\n return getScope(this, scope);\n }\n\n /**\n\t * @param {string|object} scope\n\t * @param {object} [values]\n\t */\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n\n override(scope, values) {\n return set(overrides, scope, values);\n }\n\n /**\n\t * Routes the named defaults to fallback to another scope/name.\n\t * This routing is useful when those target values, like defaults.color, are changed runtime.\n\t * If the values would be copied, the runtime change would not take effect. By routing, the\n\t * fallback is evaluated at each access, so its always up to date.\n\t *\n\t * Example:\n\t *\n\t * \tdefaults.route('elements.arc', 'backgroundColor', '', 'color')\n\t * - reads the backgroundColor from defaults.color when undefined locally\n\t *\n\t * @param {string} scope Scope this route applies to.\n\t * @param {string} name Property name that should be routed to different namespace when not defined here.\n\t * @param {string} targetScope The namespace where those properties should be routed to.\n\t * Empty string ('') is the root of defaults.\n\t * @param {string} targetName The target name in the target scope the property should be routed to.\n\t */\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope(this, scope);\n const targetScopeObject = getScope(this, targetScope);\n const privateName = '_' + name;\n\n Object.defineProperties(scopeObject, {\n // A private property is defined to hold the actual value, when this property is set in its scope (set in the setter)\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n // The actual property is defined as getter/setter so we can do the routing when value is not locally set.\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n\n apply(appliers) {\n appliers.forEach((apply) => apply(this));\n }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n}, [applyAnimationsDefaults, applyLayoutsDefaults, applyScaleDefaults]);\n","export function applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n","import Ticks from './core.ticks.js';\n\nexport function applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 3.0.0\n */\n bounds: 'ticks',\n\n /**\n * Addition grace added to max and reduced from min data value.\n * @since 3.0.0\n */\n grace: 0,\n\n // grid line settings\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n },\n\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n\n // scale title\n title: {\n // display property\n display: false,\n\n // actual label\n text: '',\n\n // top/bottom padding\n padding: {\n top: 4,\n bottom: 4\n }\n },\n\n // label settings\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n // We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n });\n\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash',\n });\n\n defaults.describe('scales', {\n _fallback: 'scale',\n });\n\n defaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n });\n}\n","import {isArray, isNullOrUndef} from './helpers.core.js';\nimport {PI, TAU, HALF_PI, QUARTER_PI, TWO_THIRDS_PI, RAD_PER_DEG} from './helpers.math.js';\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `canvas` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } canvas.Chart\n * @typedef { import('../types/index.js').Point } Point\n */\n\n/**\n * @namespace Chart.helpers.canvas\n */\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string|null} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nexport function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @private\n */\nexport function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n\n/**\n * @private\n */\nexport function _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n\n ctx.save();\n\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n\n ctx.restore();\n\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param {canvas.Chart} chart - The chart instance.\n * @param {number} pixel - A pixel value.\n * @param {number} width - The width of the element.\n * @returns {number} The aligned pixel value.\n * @private\n */\nexport function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n\n/**\n * Clears the entire canvas.\n * @param {HTMLCanvasElement} canvas\n * @param {CanvasRenderingContext2D} [ctx]\n */\nexport function clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\n\nexport function drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\n\nexport function drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */\n case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */\n case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n\n/**\n * Returns true if the point is inside the rectangle\n * @param {Point} point - The point to test\n * @param {object} area - The rectangle\n * @param {number} [margin] - allowed margin\n * @returns {boolean}\n * @private\n */\nexport function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\n\nexport function clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\n\nexport function unclipArea(ctx) {\n ctx.restore();\n}\n\n/**\n * @private\n */\nexport function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n\n/**\n * @private\n */\nexport function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\n\n/**\n * Render text onto the canvas\n */\nexport function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n\n y += font.lineHeight;\n }\n\n ctx.restore();\n}\n\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\n\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\n\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param {CanvasRenderingContext2D} ctx Context\n * @param {*} rect Bounding rect\n */\nexport function addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n","import defaults from '../core/core.defaults.js';\nimport {isArray, isObject, toDimension, valueOrDefault} from './helpers.core.js';\nimport {Point, toFontString} from './helpers.canvas.js';\nimport type {ChartArea, FontSpec} from '../types/index.js';\nimport type {TRBL, TRBLCorners} from '../types/geometric.js';\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\n/**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */\nexport function toLineHeight(value: number | string, size: number): number {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n default:\n break;\n }\n\n return size * value;\n}\n\nconst numberOrZero = (v: unknown) => +v || 0;\n\n/**\n * @param value\n * @param props\n */\nexport function _readValueToProps(value: number | Record, props: K[]): Record;\nexport function _readValueToProps(value: number | Record, props: Record): Record;\nexport function _readValueToProps(value: number | Record, props: string[] | Record) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */\nexport function toTRBL(value: number | TRBL | Point) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\n\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */\nexport function toTRBLCorners(value: number | TRBLCorners) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\nexport function toPadding(value?: number | TRBL): ChartArea {\n const obj = toTRBL(value) as ChartArea;\n\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n\n return obj;\n}\n\nexport interface CanvasFontSpec extends FontSpec {\n string: string;\n}\n\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */\n\nexport function toFont(options: Partial, fallback?: Partial) {\n options = options || {};\n fallback = fallback || defaults.font as FontSpec;\n\n let size = valueOrDefault(options.size, fallback.size);\n\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n\n font.string = toFontString(font);\n return font;\n}\n\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */\nexport function resolve(inputs: Array, context?: object, index?: number, info?: { cacheable: boolean }) {\n let cacheable = true;\n let i: number, ilen: number, value: unknown;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */\nexport function _addGrace(minmax: { min: number; max: number; }, grace: number | string, beginAtZero: boolean) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value: number, add: number) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\n\n/**\n * Create a context inheriting parentContext\n * @param parentContext\n * @param context\n * @returns\n */\nexport function createContext(parentContext: null, context: T): T;\nexport function createContext(parentContext: P, context: T): P & T;\nexport function createContext(parentContext: object, context: object) {\n return Object.assign(Object.create(parentContext), context);\n}\n","import {defined, isArray, isFunction, isObject, resolveObjectKey, _capitalize} from './helpers.core.js';\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param {object[]} scopes - The option scopes to look for values, in resolution order\n * @param {string[]} [prefixes] - The prefixes for values, in resolution order.\n * @param {object[]} [rootScopes] - The root option scopes\n * @param {string|boolean} [fallback] - Parent scopes fallback\n * @param {function} [getTarget] - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */\nexport function _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n\n/**\n * Returns an Proxy for resolving option values with context.\n * @param {object} proxy - The Proxy returned by `_createResolver`\n * @param {object} context - Context object for scriptable/indexable options\n * @param {object} [subProxy] - The proxy provided for scriptable options\n * @param {{scriptable: boolean, indexable: boolean, allKeys?: boolean}} [descriptorDefaults] - Defaults for descriptors\n * @private\n */\nexport function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */\n deleteProperty(target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n\n /**\n * A trap for getting property values.\n */\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n\n /**\n * A trap for Object.getPrototypeOf.\n */\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n\n /**\n * A trap for the in operator.\n */\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n\n /**\n * A trap for setting property values.\n */\n set(target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n\n/**\n * @private\n */\nexport function _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\n\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\n\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\n\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop]; // resolve from proxy\n\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\n\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n // @ts-ignore\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\n\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\n\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\n\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\n\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\n\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\n\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\n\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\n\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\n\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\n\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\n\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nexport function _parseObjectDataRadialScale(meta, data, start, count) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n","import {almostEquals, distanceBetweenPoints, sign} from './helpers.math.js';\nimport {_isPointInArea} from './helpers.canvas.js';\nimport type {ChartArea} from '../types/index.js';\n\nexport interface SplinePoint {\n x: number;\n y: number;\n skip?: boolean;\n\n // Both Bezier and monotone interpolations have these fields\n // but they are added in different spots\n cp1x?: number;\n cp1y?: number;\n cp2x?: number;\n cp2y?: number;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\n\ntype OptionalSplinePoint = SplinePoint | false\nconst getPoint = (points: SplinePoint[], i: number): OptionalSplinePoint => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis: 'x' | 'y') => indexAxis === 'x' ? 'y' : 'x';\n\nexport function splineCurve(\n firstPoint: SplinePoint,\n middlePoint: SplinePoint,\n afterPoint: SplinePoint,\n t: number\n): {\n previous: SplinePoint\n next: SplinePoint\n } {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n // This function must also respect \"skipped\" points\n\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n\n/**\n * Adjust tangents to ensure monotonic properties\n */\nfunction monotoneAdjust(points: SplinePoint[], deltaK: number[], mK: number[]) {\n const pointsLen = points.length;\n\n let alphaK: number, betaK: number, tauK: number, squaredMagnitude: number, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\n\nfunction monotoneCompute(points: SplinePoint[], mK: number[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta: number, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */\nexport function splineCurveMonotone(points: SplinePoint[], indexAxis: 'x' | 'y' = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK: number[] = Array(pointsLen).fill(0);\n const mK: number[] = Array(pointsLen);\n\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore: OptionalSplinePoint, pointCurrent: OptionalSplinePoint;\n let pointAfter = getPoint(points, 0);\n\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n\n monotoneAdjust(points, deltaK, mK);\n\n monotoneCompute(points, mK, indexAxis);\n}\n\nfunction capControlPoint(pt: number, min: number, max: number) {\n return Math.max(Math.min(pt, max), min);\n}\n\nfunction capBezierPoints(points: SplinePoint[], area: ChartArea) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n\n/**\n * @private\n */\nexport function _updateBezierControlPoints(\n points: SplinePoint[],\n options,\n area: ChartArea,\n loop: boolean,\n indexAxis: 'x' | 'y'\n) {\n let i: number, ilen: number, point: SplinePoint, controlPoints: ReturnType;\n\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n","import type {ChartArea, Scale} from '../types/index.js';\nimport type Chart from '../core/core.controller.js';\nimport type {ChartEvent} from '../types.js';\nimport {INFINITY} from './helpers.math.js';\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `dom` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } dom.Chart\n * @typedef { import('../../types').ChartEvent } ChartEvent\n */\n\n/**\n * @private\n */\nexport function _isDomSupported(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * @private\n */\nexport function _getParentNode(domNode: HTMLCanvasElement): HTMLCanvasElement {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = (parent as ShadowRoot).host;\n }\n return parent as HTMLCanvasElement;\n}\n\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */\n\nfunction parseMaxStyle(styleValue: string | number, node: HTMLElement, parentProperty: string) {\n let valueInPixels: number;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = (valueInPixels / 100) * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n\n return valueInPixels;\n}\n\nconst getComputedStyle = (element: HTMLElement): CSSStyleDeclaration =>\n element.ownerDocument.defaultView.getComputedStyle(element, null);\n\nexport function getStyle(el: HTMLElement, property: string): string {\n return getComputedStyle(el).getPropertyValue(property);\n}\n\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles: CSSStyleDeclaration, style: string, suffix?: string): ChartArea {\n const result = {} as ChartArea;\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\n\nconst useOffsetPos = (x: number, y: number, target: HTMLElement | EventTarget) =>\n (x > 0 || y > 0) && (!target || !(target as HTMLElement).shadowRoot);\n\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */\nfunction getCanvasPosition(\n e: Event | TouchEvent | MouseEvent,\n canvas: HTMLCanvasElement\n): {\n x: number;\n y: number;\n box: boolean;\n } {\n const touches = (e as TouchEvent).touches;\n const source = (touches && touches.length ? touches[0] : e) as MouseEvent;\n const {offsetX, offsetY} = source as MouseEvent;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\n\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */\n\nexport function getRelativePosition(\n event: Event | ChartEvent | TouchEvent | MouseEvent,\n chart: Chart\n): { x: number; y: number } {\n if ('native' in event) {\n return event;\n }\n\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\n\nfunction getContainerSize(canvas: HTMLCanvasElement, width: number, height: number): Partial {\n let maxWidth: number, maxHeight: number;\n\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\n\nconst round1 = (v: number) => Math.round(v * 10) / 10;\n\n// eslint-disable-next-line complexity\nexport function getMaximumSize(\n canvas: HTMLCanvasElement,\n bbWidth?: number,\n bbHeight?: number,\n aspectRatio?: number\n): { width: number; height: number } {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n\n return {width, height};\n}\n\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */\nexport function retinaScale(\n chart: Chart,\n forceRatio: number,\n forceStyle?: boolean\n): boolean | void {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n\n const canvas = chart.canvas;\n\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nexport const supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() { // This function will be called when the browser attempts to access the passive property.\n passiveSupported = true;\n return false;\n }\n } as EventListenerOptions;\n\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}());\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */\n\nexport function readUsedSize(\n element: HTMLElement,\n property: 'width' | 'height'\n): number | undefined {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n","import type {Point} from '../types/geometric.js';\nimport type {SplinePoint} from './helpers.curve.js';\n\n/**\n * @private\n */\nexport function _pointInLine(p1: Point, p2: Point, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n\n/**\n * @private\n */\nexport function _steppedInterpolation(\n p1: Point,\n p2: Point,\n t: number, mode: 'middle' | 'after' | unknown\n) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\n\n/**\n * @private\n */\nexport function _bezierInterpolation(p1: SplinePoint, p2: SplinePoint, t: number, mode?) { // eslint-disable-line @typescript-eslint/no-unused-vars\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n","export interface RTLAdapter {\n x(x: number): number;\n setWidth(w: number): void;\n textAlign(align: 'center' | 'left' | 'right'): 'center' | 'left' | 'right';\n xPlus(x: number, value: number): number;\n leftForLtr(x: number, itemWidth: number): number;\n}\n\nconst getRightToLeftAdapter = function(rectX: number, width: number): RTLAdapter {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\n\nconst getLeftToRightAdapter = function(): RTLAdapter {\n return {\n x(x) {\n return x;\n },\n setWidth(w) { // eslint-disable-line no-unused-vars\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) { // eslint-disable-line @typescript-eslint/no-unused-vars\n return x;\n },\n };\n};\n\nexport function getRtlAdapter(rtl: boolean, rectX: number, width: number) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\n\nexport function overrideTextDirection(ctx: CanvasRenderingContext2D, direction: 'ltr' | 'rtl') {\n let style: CSSStyleDeclaration, original: [string, string];\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n\n style.setProperty('direction', direction, 'important');\n (ctx as { prevTextDirection?: [string, string] }).prevTextDirection = original;\n }\n}\n\nexport function restoreTextDirection(ctx: CanvasRenderingContext2D, original?: [string, string]) {\n if (original !== undefined) {\n delete (ctx as { prevTextDirection?: [string, string] }).prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n","import {_angleBetween, _angleDiff, _isBetween, _normalizeAngle} from './helpers.math.js';\nimport {createContext} from './helpers.options.js';\n\n/**\n * @typedef { import('../elements/element.line.js').default } LineElement\n * @typedef { import('../elements/element.point.js').default } PointElement\n * @typedef {{start: number, end: number, loop: boolean, style?: any}} Segment\n */\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\n\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\n\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n // eslint-disable-next-line prefer-const\n let {start, end, loop} = segment;\n let i, ilen;\n\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\n\n/**\n * Returns the sub-segment(s) of a line segment that fall in the given bounds\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} [segment.style] - segment style\n * @param {PointElement[]} points - the points that this segment refers to\n * @param {object} [bounds]\n * @param {string} bounds.property - the property of a `PointElement` we are bounding. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the property\n * @param {number} bounds.end - end value of the property\n * @private\n **/\nexport function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n\n if (point.skip) {\n continue;\n }\n\n value = normalize(point[property]);\n\n if (value === prevValue) {\n continue;\n }\n\n inside = between(value, startBound, endBound);\n\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n\n return result;\n}\n\n\n/**\n * Returns the segments of the line that are inside given bounds\n * @param {LineElement} line\n * @param {object} [bounds]\n * @param {string} bounds.property - the property we are bounding with. `x`, `y` or `angle`.\n * @param {number} bounds.start - start value of the `property`\n * @param {number} bounds.end - end value of the `property`\n * @private\n */\nexport function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n\n/**\n * Find start and end index of a line.\n */\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n\n if (loop && !spanGaps) {\n // loop and not spanning gaps, first find a gap to start from\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n\n // find first non skipped point (after the first gap possibly)\n while (start < count && points[start].skip) {\n start++;\n }\n\n // if we looped to count, start needs to be 0\n start %= count;\n\n if (loop) {\n // loop will go past count, if start > 0\n end += start;\n }\n\n while (end > start && points[end % count].skip) {\n end--;\n }\n\n // end could be more than count, normalize\n end %= count;\n\n return {start, end};\n}\n\n/**\n * Compute solid segments from Points, when spanGaps === false\n * @param {PointElement[]} points - the points\n * @param {number} start - start index\n * @param {number} max - max index (can go past count on a loop)\n * @param {boolean} loop - boolean indicating that this would be a loop if no gaps are found\n */\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n // @ts-ignore\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n\n return result;\n}\n\n/**\n * Compute the continuous segments that define the whole line\n * There can be skipped points within a segment, if spanGaps is true.\n * @param {LineElement} line\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n * @private\n */\nexport function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n\n if (!count) {\n return [];\n }\n\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n\n/**\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n\n/**\n * @param {LineElement} line\n * @param {Segment[]} segments\n * @param {PointElement[]} points\n * @param {object} [segmentOptions]\n * @return {Segment[]}\n */\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n // Style can not start/end on a skipped point, adjust indices accordingly\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n\n return result;\n}\n\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\n\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n","import {requestAnimFrame} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('./core.animation.js').default } Animation\n * @typedef { import('./core.controller.js').default } Chart\n */\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is export for typedoc\n */\nexport class Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n\n /**\n\t * @private\n\t */\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n\n /**\n\t * @private\n\t */\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n\n if (this._running) {\n this._refresh();\n }\n });\n }\n\n /**\n\t * @private\n\t */\n _update(date = Date.now()) {\n let remaining = 0;\n\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n\n for (; i >= 0; --i) {\n item = items[i];\n\n if (item._active) {\n if (item._total > anims.duration) {\n // if the animation has been updated and its duration prolonged,\n // update to total duration of current animations run (for progress event)\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n // Remove the item by replacing it with last item and removing the last\n // A lot faster than splice.\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n\n remaining += items.length;\n });\n\n this._lastDate = date;\n\n if (remaining === 0) {\n this._running = false;\n }\n }\n\n /**\n\t * @private\n\t */\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n\n /**\n\t * @param {Chart} chart\n\t * @param {string} event - event name\n\t * @param {Function} cb - callback\n\t */\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n\n /**\n\t * Add animations\n\t * @param {Chart} chart\n\t * @param {Animation[]} items - animations\n\t */\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n\n /**\n\t * Counts number of active animations for the chart\n\t * @param {Chart} chart\n\t */\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n\n /**\n\t * Start animating (all charts)\n\t * @param {Chart} chart\n\t */\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n\n /**\n\t * Stop all animations for the chart\n\t * @param {Chart} chart\n\t */\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n\n /**\n\t * Remove chart from Animator\n\t * @param {Chart} chart\n\t */\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Animator();\n","import effects from '../helpers/helpers.easing.js';\nimport {resolve} from '../helpers/helpers.options.js';\nimport {color as helpersColor} from '../helpers/helpers.color.js';\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n /**\n * @param {string} from\n * @param {string} to\n * @param {number} factor\n */\n color(from, to, factor) {\n const c0 = helpersColor(from || transparent);\n const c1 = c0.valid && helpersColor(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\n\nexport default class Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n\n active() {\n return this._active;\n }\n\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n\n cancel() {\n if (this._active) {\n // update current evaluated value, for smoother animations\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n\n this._active = from !== to && (loop || (elapsed < duration));\n\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n\n this._target[prop] = this._fn(from, to, factor);\n }\n\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n","import animator from './core.animator.js';\nimport Animation from './core.animation.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isObject} from '../helpers/helpers.core.js';\n\nexport default class Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n\n /**\n\t * Utility to handle animation of `options`.\n\t * @private\n\t */\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n // Going to shared options:\n // After all animations are done, assign the shared options object to the element\n // So any new updates to the shared options are observed\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n // rejected, noop\n });\n }\n\n return animations;\n }\n\n /**\n\t * @private\n\t */\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n\n if (animation) {\n if (cfg && animation.active()) {\n // There is an existing active animation, let's update that\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n // not animated, set directly to new value\n target[prop] = value;\n continue;\n }\n\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n\n\n /**\n\t * Update `target` properties to new values, using configured animations\n\t * @param {object} target - object to update\n\t * @param {object} values - new target properties\n\t * @returns {boolean|undefined} - `true` if animations were started\n\t **/\n update(target, values) {\n if (this._properties.size === 0) {\n // Nothing is animated, just apply the new values.\n Object.assign(target, values);\n return;\n }\n\n const animations = this._createAnimations(target, values);\n\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\n\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n // @ts-ignore\n return Promise.all(running);\n}\n\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n // Going from shared options to distinct one:\n // Create new options object containing the old shared values and start updating that.\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n","import Animations from './core.animations.js';\nimport defaults from './core.defaults.js';\nimport {isArray, isFinite, isObject, valueOrDefault, resolveObjectKey, defined} from '../helpers/helpers.core.js';\nimport {listenArrayEvents, unlistenArrayEvents} from '../helpers/helpers.collection.js';\nimport {createContext, sign} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('./core.scale.js').default } Scale\n */\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\n\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\n\nfunction toClip(value) {\n let t, r, b, l;\n\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\n\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\n\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n\n if (value === null) {\n return;\n }\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\n\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\n\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\n\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\n\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\n\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\n\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n\n return null;\n}\n\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {}); // map structure is {stackKey: {datasetIndex: value}}\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\n\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\n\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\n\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\n\nfunction clearStacks(meta, items) {\n // Not using meta.index here, because it might be already updated if the dataset changed location\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\n\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\n\nexport default class DatasetController {\n\n /**\n * @type {any}\n */\n static defaults = {};\n\n /**\n * Element type used to generate a meta dataset (e.g. Chart.element.LineElement).\n */\n static datasetElementType = null;\n\n /**\n * Element type used to generate a meta data (e.g. Chart.element.PointElement).\n */\n static dataElementType = null;\n\n /**\n\t * @param {Chart} chart\n\t * @param {number} datasetIndex\n\t */\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n /** @type {boolean | object} */\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n\n this.initialize();\n }\n\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n\n /**\n\t * @param {string} scaleID\n\t * @return {Scale}\n\t */\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n\n /**\n\t * @private\n\t */\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n\n reset() {\n this._update('reset');\n }\n\n /**\n\t * @private\n\t */\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n\n /**\n\t * @private\n\t */\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n\n // In order to correctly handle data addition/deletion animation (an thus simulate\n // real-time charts), we need to monitor these data modifications and synchronize\n // the internal meta data accordingly.\n\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n // This case happens when the user replaced the data array instance.\n unlistenArrayEvents(_data, this);\n // Discard old parsed data and stacks\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n\n addElements() {\n const meta = this._cachedMeta;\n\n this._dataCheck();\n\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n\n this._dataCheck();\n\n // make sure cached _stacked status is current\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n\n // detect change in stack option\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n // remove values from old stack\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n\n // Re-sync meta data in case the user replaced the data array or if we missed\n // any updates and so make sure that we handle number of datapoints changing.\n this._resyncElements(resetNewElements);\n\n // if stack changed, update stack values for the whole dataset\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n\n /**\n\t * Merges user-supplied and default dataset-level options\n\t * @private\n\t */\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n\n /**\n\t * @param {number} start\n\t * @param {number} count\n\t */\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n\n /**\n\t * Parse array of primitive values\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [1,3,4]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {xScale0: 0, yScale0: 1}\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n\n /**\n\t * Parse array of arrays\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [[1,2],[3,4]]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id.\n\t * Example: {x: 0, y: 1}\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n\n /**\n\t * Parse array of objects\n\t * @param {object} meta - dataset meta\n\t * @param {array} data - data array. Example [{x:1, y:5}, {x:2, y:10}]\n\t * @param {number} start - start index\n\t * @param {number} count - number of items to parse\n\t * @returns {object} parsed item - item containing index and a parsed value\n\t * for each scale id. _custom is optional\n\t * Example: {xScale0: 0, yScale0: 1, _custom: {r: 10, foo: 'bar'}}\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n\n /**\n\t * @protected\n\t */\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n\n /**\n\t * @protected\n\t */\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n\n /**\n\t * @protected\n\t */\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n\n /**\n\t * @protected\n\t */\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n // if the data is sorted, we don't need to check further from this end of array\n break;\n }\n }\n if (sorted) {\n // in the sorted case, find first non-skipped value from other end of array\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n\n /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n getMaxOverflow() {\n return false;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n\n /**\n\t * @private\n\t */\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n\n /**\n\t * @param {string} mode\n\t */\n update(mode) {} // eslint-disable-line no-unused-vars\n\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n\n /**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @param {boolean} [active] - true if hover\n\t * @return {object} style object\n\t */\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n\n /**\n\t * @protected\n\t */\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n\n /**\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n\n /**\n\t * @param {number} index\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n\n /**\n\t * @private\n\t */\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n // context is provided as a function, and is called only if needed,\n // so we don't create a context for each element if not needed.\n const context = () => this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n\n if (values.$shared) {\n // `$shared` indicates this set of options can be shared between multiple elements.\n // Sharing is used to reduce number of properties to change during animation.\n values.$shared = sharing;\n\n // We cache options by `mode`, which can be 'active' for example. This enables us\n // to have the 'active' element options and 'default' options to switch between\n // when interacting.\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n\n return values;\n }\n\n\n /**\n\t * @private\n\t */\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n\n /**\n\t * Utility for getting the options object shared between elements\n\t * @protected\n\t */\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n\n /**\n\t * Utility for determining if `options` should be included in the updated properties\n\t * @protected\n\t */\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n\n /**\n * @todo v4, rename to getSharedOptions and remove excess functions\n */\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n\n /**\n\t * Utility for updating an element with new properties, using animations when appropriate.\n\t * @protected\n\t */\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n\n /**\n\t * Utility to animate the shared options, that are potentially affecting multiple elements.\n\t * @protected\n\t */\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n\n /**\n\t * @private\n\t */\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n // When going from active to inactive, we need to update to the shared options.\n // This way the once hovered element will end up with the same original shared options instance, after animation.\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n\n /**\n\t * @private\n\t */\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n\n /**\n\t * @private\n\t */\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n\n /**\n\t * @private\n\t */\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n\n // Apply changes detected through array listeners\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n\n if (count) {\n // TODO: It is not optimal to always parse the old data\n // This is done because we are not detecting direct assignments:\n // chart.data.datasets[0].data[5] = 10;\n // chart.data.datasets[0].data[5].y = 10;\n this.parse(0, count);\n }\n\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n\n /**\n\t * @private\n\t */\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n\n updateElements(element, start, count, mode) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * @private\n\t */\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n\n /**\n\t * @private\n */\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {\n _arrayUnique, isArray, isNullOrUndef,\n valueOrDefault, resolveObjectKey, sign, defined\n} from '../helpers/index.js';\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n // Ignore truncated pixels\n return;\n }\n if (defined(prev)) {\n // curr - prev === 0 is ignored\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n\n return min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n // When bar thickness is enforced, category and bar percentages are ignored.\n // Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n // and deprecate barPercentage since this value is ignored when thickness is absolute.\n size = thickness * stackCount;\n ratio = 1;\n }\n\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n\n if (prev === null) {\n // first data: its size is double based on the next point or,\n // if it's also the last data, we use the scale size.\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n\n if (next === null) {\n // last data: its size is also double based on the previous point.\n next = curr + curr - prev;\n }\n\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\n\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n\n // Store `barEnd` (furthest away from origin) as parsed value,\n // to make stacking straight forward\n item[vScale.axis] = barEnd;\n\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\n\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\n\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\n\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\n\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\n\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\n\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n\n if (edge === true) {\n properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n return;\n }\n\n const {start, end, reverse, top, bottom} = borderProps(properties);\n\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\n\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\n\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\n\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\n\nexport default class BarController extends DatasetController {\n\n static id = 'bar';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n };\n\n\n /**\n\t * Overriding primitive data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n\n /**\n\t * Overriding array data parsing since we support mixed primitive/array\n\t * data for float bars\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n\n /**\n\t * Overriding object data parsing since we support mixed primitive/array\n\t * value-scale data for float bars\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n // float bar: only one end of the bar is considered by `super`\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n\n /**\n\t * @return {number|boolean}\n\t * @protected\n\t */\n getMaxOverflow() {\n return 0;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n\n initialize() {\n this.enableOptionSharing = true;\n\n super.initialize();\n\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n\n /**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @param {number} [dataIndex] - The data index of the ruler\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n\n const skipNull = (meta) => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n\n // stacked | meta.stack\n // | found | not found | undefined\n // false | x | x | x\n // true | | x |\n // undefined | | x | x\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n\n // No stacks? that means there is no visible data. Let's still initialize an `undefined`\n // stack where possible invisible bars will be located.\n // https://github.com/chartjs/Chart.js/issues/6368\n if (!stacks.length) {\n stacks.push(undefined);\n }\n\n return stacks;\n }\n\n /**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n\n /**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n * @param {number} [dataIndex]\n\t * @returns {number} The stack index\n\t * @private\n\t */\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1; // indexOf returns -1 if element is not present\n\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n\n /**\n\t * @private\n\t */\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n // bar thickness ratio used for non-grouped bars\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n\n /**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked, index: datasetIndex}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n\n if (length !== value) {\n start = length - value;\n length = value;\n }\n\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n // bars crossing origin are not stacked\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n // When not visible, no height\n head = base;\n }\n\n size = head - base;\n\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n\n if (_stacked && !floating) {\n // visual data coordinates after applying minBarLength\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n\n /**\n\t * @private\n\t */\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n // For non-grouped bar charts, exact pixel values are used\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {valueOrDefault} from '../helpers/helpers.core.js';\n\nexport default class BubbleController extends DatasetController {\n\n static id = 'bubble';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n\n /**\n\t * Parse array of primitive values\n\t * @protected\n\t */\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n\n /**\n\t * Parse array of arrays\n\t * @protected\n\t */\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n\n /**\n\t * Parse array of objects\n\t * @protected\n\t */\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n\n update(mode) {\n const points = this._cachedMeta.data;\n\n // Update Points\n this.updateElements(points, 0, points.length, mode);\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n\n if (reset) {\n properties.options.radius = 0;\n }\n }\n\n this.updateElement(point, i, properties, mode);\n }\n }\n\n /**\n\t * @param {number} index\n\t * @param {string} [mode]\n\t * @protected\n\t */\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n\n // In case values were cached (and thus frozen), we need to clone the values\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n\n // Custom radius resolution\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n\n return values;\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isObject, resolveObjectKey, toPercentage, toDimension, valueOrDefault} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {toRadians, PI, TAU, HALF_PI, _angleBetween} from '../helpers/helpers.math.js';\n\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n // If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\n\nexport default class DoughnutController extends DatasetController {\n\n static id = 'doughnut';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n // Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n // Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n // The percentage of the chart that we cut out of the middle.\n cutout: '50%',\n\n // The rotation of the chart, where the first data arc begins.\n rotation: 0,\n\n // The total circumference of the chart.\n circumference: 360,\n\n // The outr radius of the chart\n radius: '100%',\n\n // Spacing between arcs\n spacing: 0,\n\n indexAxis: 'r',\n };\n\n static descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n aspectRatio: 1,\n\n // Need to override these to give a nice default\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle, color}} = chart.legend.options;\n\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n\n linkScales() {}\n\n /**\n\t * Override data parsing, since we are not using scales\n\t */\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n\n /**\n\t * @private\n\t */\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n\n /**\n\t * @private\n\t */\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n\n /**\n\t * Get the maximal rotation & circumference extents\n\t * across all visible datasets.\n\t */\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n\n /**\n\t * @param {string} mode\n\t */\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n\n // Compute the maximal rotation & circumference limits.\n // If we only consider our dataset, this can cause problems when two datasets\n // are both less than a circle with different rotations (starting angles)\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n\n meta.total = this.calculateTotal();\n\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n\n /**\n * @private\n */\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n\n this.updateElement(arc, i, properties, mode);\n }\n }\n\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n\n return total;\n }\n\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n\n return {\n label: labels[index] || '',\n value,\n };\n }\n\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n\n if (!arcs) {\n // Find the outmost visible dataset\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n\n if (!arcs) {\n return 0;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n\n getMaxOffset(arcs) {\n let max = 0;\n\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n\n /**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n\n return ringWeightOffset;\n }\n\n /**\n\t * @private\n\t */\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n\n /**\n\t * Returns the sum of all visible data set weights.\n\t * @private\n\t */\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isNullOrUndef} from '../helpers/index.js';\nimport {isNumber} from '../helpers/helpers.math.js';\nimport {_getStartAndCountOfVisiblePoints, _scaleRangesChanged} from '../helpers/helpers.extras.js';\n\nexport default class LineController extends DatasetController {\n\n static id = 'line';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n\n showLine: true,\n spanGaps: false,\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n };\n\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n // @ts-ignore\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n // Update Line\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n\n // Update Points\n this.updateElements(points, start, count, mode);\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (let i = 0; i < pointsCount; ++i) {\n const point = points[i];\n const properties = directUpdate ? point : {};\n\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {toRadians, PI, formatNumber, _parseObjectDataRadialScale} from '../helpers/index.js';\n\nexport default class PolarAreaController extends DatasetController {\n\n static id = 'polarArea';\n\n /**\n * @type {any}\n */\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n aspectRatio: 1,\n\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle, color}} = chart.legend.options;\n\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n return [];\n }\n },\n\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n\n return {\n label: labels[index] || '',\n value,\n };\n }\n\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n\n update(mode) {\n const arcs = this._cachedMeta.data;\n\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n\n /**\n * @protected\n */\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n\n return range;\n }\n\n /**\n\t * @private\n\t */\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n\n const defaultAngle = 360 / this.countVisibleElements();\n\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n\n this.updateElement(arc, i, properties, mode);\n }\n }\n\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n\n return count;\n }\n\n /**\n\t * @private\n\t */\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\n","import DoughnutController from './controller.doughnut.js';\n\n// Pie charts are Doughnut chart with different defaults\nexport default class PieController extends DoughnutController {\n\n static id = 'pie';\n\n /**\n * @type {any}\n */\n static defaults = {\n // The percentage of the chart that we cut out of the middle.\n cutout: 0,\n\n // The rotation of the chart, where the first data arc begins.\n rotation: 0,\n\n // The total circumference of the chart.\n circumference: 360,\n\n // The outr radius of the chart\n radius: '100%'\n };\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {_parseObjectDataRadialScale} from '../helpers/index.js';\n\nexport default class RadarController extends DatasetController {\n\n static id = 'radar';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n aspectRatio: 1,\n\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n };\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n\n // Update Line\n line.points = points;\n // In resize mode only point locations change, so no need to set the points or options.\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n\n this.updateElement(line, undefined, properties, mode);\n }\n\n // Update Points\n this.updateElements(points, 0, points.length, mode);\n }\n\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n","import DatasetController from '../core/core.datasetController.js';\nimport {isNullOrUndef} from '../helpers/index.js';\nimport {isNumber} from '../helpers/helpers.math.js';\nimport {_getStartAndCountOfVisiblePoints, _scaleRangesChanged} from '../helpers/helpers.extras.js';\n\nexport default class ScatterController extends DatasetController {\n\n static id = 'scatter';\n\n /**\n * @type {any}\n */\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n\n /**\n * @type {any}\n */\n static overrides = {\n\n interaction: {\n mode: 'point'\n },\n\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n\n /**\n\t * @protected\n\t */\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n\n update(mode) {\n const meta = this._cachedMeta;\n const {data: points = []} = meta;\n // @ts-ignore\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n\n this._drawStart = start;\n this._drawCount = count;\n\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n\n if (this.options.showLine) {\n\n const {dataset: line, _dataset} = meta;\n\n // Update Line\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n }\n\n // Update Points\n this.updateElements(points, start, count, mode);\n }\n\n addElements() {\n const {showLine} = this.options;\n\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n\n super.addElements();\n }\n\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n\n prevParsed = parsed;\n }\n\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n\n /**\n\t * @protected\n\t */\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n\n if (!this.options.showLine) {\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n\n if (!data.length) {\n return border;\n }\n\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n","/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */\n\nimport type {AnyObject} from '../types/basic.js';\nimport type {ChartOptions} from '../types/index.js';\n\nexport type TimeUnit = 'millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';\n\nexport interface DateAdapter {\n readonly options: T;\n /**\n * Will called with chart options after adapter creation.\n */\n init(this: DateAdapter, chartOptions: ChartOptions): void;\n /**\n * Returns a map of time formats for the supported formatting units defined\n * in Unit as well as 'datetime' representing a detailed date/time string.\n */\n formats(this: DateAdapter): Record;\n /**\n * Parses the given `value` and return the associated timestamp.\n * @param value - the value to parse (usually comes from the data)\n * @param [format] - the expected data format\n */\n parse(this: DateAdapter, value: unknown, format?: TimeUnit): number | null;\n /**\n * Returns the formatted date in the specified `format` for a given `timestamp`.\n * @param timestamp - the timestamp to format\n * @param format - the date/time token\n */\n format(this: DateAdapter, timestamp: number, format: TimeUnit): string;\n /**\n * Adds the specified `amount` of `unit` to the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param amount - the amount to add\n * @param unit - the unit as string\n */\n add(this: DateAdapter, timestamp: number, amount: number, unit: TimeUnit): number;\n /**\n * Returns the number of `unit` between the given timestamps.\n * @param a - the input timestamp (reference)\n * @param b - the timestamp to subtract\n * @param unit - the unit as string\n */\n diff(this: DateAdapter, a: number, b: number, unit: TimeUnit): number;\n /**\n * Returns start of `unit` for the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param unit - the unit as string\n * @param [weekday] - the ISO day of the week with 1 being Monday\n * and 7 being Sunday (only needed if param *unit* is `isoWeek`).\n */\n startOf(this: DateAdapter, timestamp: number, unit: TimeUnit | 'isoWeek', weekday?: number): number;\n /**\n * Returns end of `unit` for the given `timestamp`.\n * @param timestamp - the input timestamp\n * @param unit - the unit as string\n */\n endOf(this: DateAdapter, timestamp: number, unit: TimeUnit | 'isoWeek'): number;\n}\n\nfunction abstract(): T {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\nclass DateAdapterBase implements DateAdapter {\n\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */\n static override(\n members: Partial, 'options'>>\n ) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n\n readonly options: AnyObject;\n\n constructor(options: AnyObject) {\n this.options = options || {};\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n\n formats(): Record {\n return abstract();\n }\n\n parse(): number | null {\n return abstract();\n }\n\n format(): string {\n return abstract();\n }\n\n add(): number {\n return abstract();\n }\n\n diff(): number {\n return abstract();\n }\n\n startOf(): number {\n return abstract();\n }\n\n endOf(): number {\n return abstract();\n }\n}\n\nexport default {\n _date: DateAdapterBase\n};\n","import {_lookupByKey, _rlookupByKey} from '../helpers/helpers.collection.js';\nimport {getRelativePosition} from '../helpers/helpers.dom.js';\nimport {_angleBetween, getAngleFromPoint} from '../helpers/helpers.math.js';\nimport {_isPointInArea} from '../helpers/index.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef {{axis?: string, intersect?: boolean, includeInvisible?: boolean}} InteractionOptions\n * @typedef {{datasetIndex: number, index: number, element: import('./core.element.js').default}} InteractionItem\n * @typedef { import('../types/index.js').Point } Point\n */\n\n/**\n * Helper function to do binary search when possible\n * @param {object} metaset - the dataset meta\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {number} value - the value to find\n * @param {boolean} [intersect] - should the element intersect\n * @returns {{lo:number, hi:number}} indices to search data array between\n */\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n // _sharedOptions indicates that each element has equal options -> equal proportions\n // So we can do a ranged binary search based on the range of first element and\n // be confident to get the full range of indices that can intersect with the value.\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n // Default to all elements, when binary search can not be used.\n return {lo: 0, hi: data.length - 1};\n}\n\n/**\n * Helper function to select candidate elements for interaction\n * @param {Chart} chart - the chart\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {function} handler - the callback to execute for each visible item\n * @param {boolean} [intersect] - consider intersecting items\n */\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy|r\n */\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {Chart} chart - the chart\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis mode. x|y|xy|r\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a radial chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position for a cartesian chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n // Can have multiple items at the same distance in which case we sort by size\n items.push({element, datasetIndex, index});\n }\n }\n\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in the chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axes along which to measure distance\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @param {boolean} [includeInvisible] - include invisible points that are outside of the chart area\n * @return {InteractionItem[]} the nearest items\n */\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n\n/**\n * Helper function to get the items matching along the given X or Y axis\n * @param {Chart} chart - the chart to look at elements from\n * @param {Point} position - the point to be nearest to, in relative coordinates\n * @param {string} axis - the axis to match\n * @param {boolean} [intersect] - if true, only consider items that intersect the position\n * @param {boolean} [useFinalPosition] - use the element's animation target instead of current position\n * @return {InteractionItem[]} the nearest items\n */\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n\n // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nexport default {\n // Part of the public API to facilitate developers creating their own modes\n evaluateInteractionItems,\n\n // Helper function for different modes\n modes: {\n /**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n // Default axis for index mode is 'x' to match old behaviour\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n\n // don't count items that are skipped (null data)\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n\n return elements;\n },\n\n /**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n\n return items;\n },\n\n /**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n\n /**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n\n /**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n\n /**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {InteractionOptions} options - options to use\n\t\t * @param {boolean} [useFinalPosition] - use final element position (animation target)\n\t\t * @return {InteractionItem[]} - items that are found\n\t\t */\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n","import {defined, each, isObject} from '../helpers/helpers.core.js';\nimport {toPadding} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n */\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\n\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\n\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\n\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\n\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\n\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n\n/**\n * store dimensions used instead of available chartArea in fitBoxes\n **/\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\n\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\n\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n\n // dynamically placed boxes size is not considered\n if (!isObject(pos)) {\n if (layout.size) {\n // this layout was already counted for, lets first reduce old size\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n\n // return booleans on the changes per direction\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\n\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n\n // Dimensions changed and there were non full width boxes before this\n // -> we have to refit those\n refit |= same && refitBoxes.length;\n\n // Chart area changed in the opposite direction\n changed = changed || other;\n\n if (!box.fullSize) { // fullSize boxes don't need to be re-fitted in any case\n refitBoxes.push(layout);\n }\n }\n\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\n\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\n\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n\n chartArea.x = x;\n chartArea.y = y;\n}\n\n/**\n * @interface LayoutItem\n * @typedef {object} LayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullSize - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} draw - Draws the element\n * @prop {function} [getPadding] - Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nexport default {\n\n /**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {LayoutItem} item - the item to add to be laid out\n\t */\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n\n // initialize item with default values\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n // @ts-ignore\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n\n chart.boxes.push(item);\n },\n\n /**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {LayoutItem} layoutItem - the item to remove from the layout\n\t */\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n\n /**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {LayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n\n /**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n * @param {number} minPadding - minimum padding required for each side of chart area\n\t */\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n\n // Before any changes are made, notify boxes that an update is about to being\n // This is used to clear any cached data (e.g. scale limits)\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n\n // Essentially we now have any number of boxes on each of the 4 sides.\n // Our canvas looks like the following.\n // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n // B1 is the bottom axis\n // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n // These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n // an error will be thrown.\n //\n // |----------------------------------------------------|\n // | T1 (Full Width) |\n // |----------------------------------------------------|\n // | | | T2 | |\n // | |----|-------------------------------------|----|\n // | | | C1 | | C2 | |\n // | | |----| |----| |\n // | | | | |\n // | L1 | L2 | ChartArea (C0) | R1 |\n // | | | | |\n // | | |----| |----| |\n // | | | C3 | | C4 | |\n // | |----|-------------------------------------|----|\n // | | | B1 | |\n // |----------------------------------------------------|\n // | B2 (Full Width) |\n // |----------------------------------------------------|\n //\n\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n // First fit the fullSize boxes, to reduce probability of re-fitting.\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n\n // Then fit vertical boxes\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n\n // Then fit horizontal boxes\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n // if the area changed, re-fit vertical boxes\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n\n handleMaxPadding(chartArea);\n\n // Finally place the boxes to correct coordinates\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n\n // Move to opposite side of chart\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n\n // Finally update boxes in chartArea (radial scale for example)\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n","\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\n/**\n * Abstract class that allows abstracting platform dependencies away from the chart.\n */\nexport default class BasePlatform {\n /**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {HTMLCanvasElement} canvas - The canvas from which to acquire context (platform specific)\n\t * @param {number} [aspectRatio] - The chart options\n\t */\n acquireContext(canvas, aspectRatio) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {boolean} true if the method succeeded, else false\n\t */\n releaseContext(context) { // eslint-disable-line no-unused-vars\n return false;\n }\n\n /**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {string} type - The ({@link ChartEvent}) type to listen for\n\t * @param {function} listener - Receives a notification (an object that implements\n\t * the {@link ChartEvent} interface) when an event of the specified type occurs.\n\t */\n addEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart - Chart from which to remove the listener\n\t * @param {string} type - The ({@link ChartEvent}) type to remove\n\t * @param {function} listener - The listener function to remove from the event target.\n\t */\n removeEventListener(chart, type, listener) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * @returns {number} the current devicePixelRatio of the device this platform is connected to.\n\t */\n getDevicePixelRatio() {\n return 1;\n }\n\n /**\n\t * Returns the maximum size in pixels of given canvas element.\n\t * @param {HTMLCanvasElement} element\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @returns {boolean} true if the canvas is attached to the platform, false if not.\n\t */\n isAttached(canvas) { // eslint-disable-line no-unused-vars\n return true;\n }\n\n /**\n * Updates config with platform specific requirements\n * @param {import('../core/core.config.js').default} config\n */\n updateConfig(config) { // eslint-disable-line no-unused-vars\n // no-op\n }\n}\n","/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nimport BasePlatform from './platform.base.js';\n\n/**\n * Platform class for charts without access to the DOM or to many element properties\n * This platform is used by default for any chart passed an OffscreenCanvas.\n * @extends BasePlatform\n */\nexport default class BasicPlatform extends BasePlatform {\n acquireContext(item) {\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n","/**\n * Chart.Platform implementation for targeting a web browser\n */\n\nimport BasePlatform from './platform.base.js';\nimport {_getParentNode, getRelativePosition, supportsEventListenerOptions, readUsedSize, getMaximumSize} from '../helpers/helpers.dom.js';\nimport {throttled} from '../helpers/helpers.extras.js';\nimport {isNullOrUndef} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('../core/core.controller.js').default } Chart\n */\n\nconst EXPANDO_KEY = '$chartjs';\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\n\nconst isNullOrEmpty = value => value === null || value === '';\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n * @param {HTMLCanvasElement} canvas\n * @param {number} [aspectRatio]\n */\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n\n // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n // returns null or '' if no explicit value has been set to the canvas attribute.\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n\n // Chart.js modifies some canvas values that we want to restore on destroy\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n\n // Force canvas to display as block to avoid extra space caused by inline\n // elements, which would interfere with the responsive resize process.\n // https://github.com/chartjs/Chart.js/issues/2538\n style.display = style.display || 'block';\n // Include possible borders in the size\n style.boxSizing = style.boxSizing || 'border-box';\n\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n // If no explicit render height and style height, let's apply the aspect ratio,\n // which one can be specified by the user but also by charts as default option\n // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n}\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\n\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\n\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\n\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\n\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\n\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\n\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\n\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\n\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n // If the container size shrank during chart resize, let's assume\n // scrollbar appeared. So we resize again with the scrollbar visible -\n // effectively making chart smaller and the scrollbar hidden again.\n // Because we are inside `throttled`, and currently `ticking`, scroll\n // events are ignored during this whole 2 resize process.\n // If we assumed wrong and something else happened, we are resizing\n // twice in a frame (potential performance issue)\n listener();\n }\n }, window);\n\n // @ts-ignore until https://github.com/microsoft/TypeScript/issues/37861 implemented\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n // When its container's display is set to 'none' the callback will be called with a\n // size of (0, 0), which will cause the chart to lose its original height, so skip\n // resizing in such case.\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n\n return observer;\n}\n\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\n\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n // This case can occur if the chart is destroyed while waiting\n // for the throttled function to occur. We prevent crashes by checking\n // for a destroyed chart\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n\n addListener(canvas, type, proxy);\n\n return proxy;\n}\n\n/**\n * Platform class for charts that can access the DOM and global window/document properties\n * @extends BasePlatform\n */\nexport default class DomPlatform extends BasePlatform {\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [aspectRatio]\n\t * @return {CanvasRenderingContext2D|null}\n\t */\n acquireContext(canvas, aspectRatio) {\n // To prevent canvas fingerprinting, some add-ons undefine the getContext\n // method, for example: https://github.com/kkapsner/CanvasBlocker\n // https://github.com/chartjs/Chart.js/issues/2807\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n\n // `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the canvas is\n // inside an iframe or when running in a protected environment. We could guess the\n // types from their toString() value but let's keep things flexible and assume it's\n // a sufficient condition if the canvas has a context2D which has canvas as `canvas`.\n // https://github.com/chartjs/Chart.js/issues/3887\n // https://github.com/chartjs/Chart.js/issues/4102\n // https://github.com/chartjs/Chart.js/issues/4152\n if (context && context.canvas === canvas) {\n // Load platform resources on first chart creation, to make it possible to\n // import the library before setting platform options.\n initCanvas(canvas, aspectRatio);\n return context;\n }\n\n return null;\n }\n\n /**\n\t * @param {CanvasRenderingContext2D} context\n\t */\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n\n // The canvas render size might have been changed (and thus the state stack discarded),\n // we can't use save() and restore() to restore the initial state. So make sure that at\n // least the canvas context is reset to the default state by setting the canvas width.\n // https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n // eslint-disable-next-line no-self-assign\n canvas.width = canvas.width;\n\n delete canvas[EXPANDO_KEY];\n return true;\n }\n\n /**\n\t *\n\t * @param {Chart} chart\n\t * @param {string} type\n\t * @param {function} listener\n\t */\n addEventListener(chart, type, listener) {\n // Can have only one listener per type, so make sure previous is removed\n this.removeEventListener(chart, type);\n\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n\n\n /**\n\t * @param {Chart} chart\n\t * @param {string} type\n\t */\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n\n if (!proxy) {\n return;\n }\n\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t * @param {number} [width] - content width of parent element\n\t * @param {number} [height] - content height of parent element\n\t * @param {number} [aspectRatio] - aspect ratio to maintain\n\t */\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n\n /**\n\t * @param {HTMLCanvasElement} canvas\n\t */\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n","import type {AnyObject} from '../types/basic.js';\nimport type {Point} from '../types/geometric.js';\nimport type {Animation} from '../types/animation.js';\nimport {isNumber} from '../helpers/helpers.math.js';\n\nexport default class Element {\n\n static defaults = {};\n static defaultRoutes = undefined;\n\n x: number;\n y: number;\n active = false;\n options: O;\n $animations: Record;\n\n tooltipPosition(useFinalPosition: boolean): Point {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y} as Point;\n }\n\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n\n /**\n * Gets the current or final value of each prop. Can return extra properties (whole object).\n * @param props - properties to get\n * @param [final] - get the final value (animation target)\n */\n getProps

    (props: P, final?: boolean): Pick;\n getProps

    (props: P[], final?: boolean): Partial>;\n getProps(props: string[], final?: boolean): Partial> {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this as Record;\n }\n const ret: Record = {};\n props.forEach((prop) => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop as string];\n });\n return ret;\n }\n}\n","import {isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\nimport {_factorize} from '../helpers/helpers.math.js';\n\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a subset of ticks to be plotted to avoid overlapping labels.\n * @param {import('./core.scale.js').default} scale\n * @param {Tick[]} ticks\n * @return {Tick[]}\n * @private\n */\nexport function autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n\n // If there are too many major ticks to display them all\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\n\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n\n/**\n * @param {number[]} majorIndices\n * @param {Tick[]} ticks\n * @param {number} ticksLimit\n */\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n\n // If the major ticks are evenly spaced apart, place the minor ticks\n // so that they divide the major ticks into even chunks\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n\n/**\n * @param {Tick[]} ticks\n */\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number[]} majorIndices\n * @param {number} spacing\n */\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n\n/**\n * @param {Tick[]} ticks\n * @param {Tick[]} newTicks\n * @param {number} spacing\n * @param {number} [majorStart]\n * @param {number} [majorEnd]\n */\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n\n next = start;\n\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n\n\n/**\n * @param {number[]} arr\n */\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n\n if (len < 2) {\n return false;\n }\n\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n","import Element from './core.element.js';\nimport {_alignPixel, _measureText, renderText, clipArea, unclipArea} from '../helpers/helpers.canvas.js';\nimport {callback as call, each, finiteOrDefault, isArray, isFinite, isNullOrUndef, isObject, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toDegrees, toRadians, _int16Range, _limitValue, HALF_PI} from '../helpers/helpers.math.js';\nimport {_alignStartEnd, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {createContext, toFont, toPadding, _addGrace} from '../helpers/helpers.options.js';\nimport {autoSkip} from './core.scale.autoskip.js';\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef {{value:number | string, label?:string, major?:boolean, $context?:any}} Tick\n */\n\n/**\n * Returns a new array containing numItems from arr\n * @param {any[]} arr\n * @param {number} numItems\n */\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n\n/**\n * @param {Scale} scale\n * @param {number} index\n * @param {boolean} offsetGridLines\n */\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n\n // Return undefined if the pixel is out of the range\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n\n/**\n * @param {object} caches\n * @param {number} length\n */\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n\n/**\n * @param {object} options\n */\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n\n/**\n * @param {object} options\n */\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n\n return (lines * font.lineHeight) + padding.height;\n}\n\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\n\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\n\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\n\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\n\nexport default class Scale extends Element {\n\n // eslint-disable-next-line max-statements\n constructor(cfg) {\n super();\n\n /** @type {string} */\n this.id = cfg.id;\n /** @type {string} */\n this.type = cfg.type;\n /** @type {any} */\n this.options = undefined;\n /** @type {CanvasRenderingContext2D} */\n this.ctx = cfg.ctx;\n /** @type {Chart} */\n this.chart = cfg.chart;\n\n // implements box\n /** @type {number} */\n this.top = undefined;\n /** @type {number} */\n this.bottom = undefined;\n /** @type {number} */\n this.left = undefined;\n /** @type {number} */\n this.right = undefined;\n /** @type {number} */\n this.width = undefined;\n /** @type {number} */\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n /** @type {number} */\n this.maxWidth = undefined;\n /** @type {number} */\n this.maxHeight = undefined;\n /** @type {number} */\n this.paddingTop = undefined;\n /** @type {number} */\n this.paddingBottom = undefined;\n /** @type {number} */\n this.paddingLeft = undefined;\n /** @type {number} */\n this.paddingRight = undefined;\n\n // scale-specific properties\n /** @type {string=} */\n this.axis = undefined;\n /** @type {number=} */\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n /** @type {Tick[]} */\n this.ticks = [];\n /** @type {object[]|null} */\n this._gridLineItems = null;\n /** @type {object[]|null} */\n this._labelItems = null;\n /** @type {object|null} */\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n /** @type {number} */\n this._startPixel = undefined;\n /** @type {number} */\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n\n /**\n\t * @param {any} options\n\t * @since 3.0\n\t */\n init(options) {\n this.options = options.setContext(this.getContext());\n\n this.axis = options.axis;\n\n // parse min/max value, so we can properly determine min/max for other scales\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n\n /**\n\t * Parse a supported input value to internal representation.\n\t * @param {*} raw\n\t * @param {number} [index]\n\t * @since 3.0\n\t */\n parse(raw, index) { // eslint-disable-line no-unused-vars\n return raw;\n }\n\n /**\n\t * @return {{min: number, max: number, minDefined: boolean, maxDefined: boolean}}\n\t * @protected\n\t * @since 3.0\n\t */\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isFinite(_userMin),\n maxDefined: isFinite(_userMax)\n };\n }\n\n /**\n\t * @param {boolean} canStack\n\t * @return {{min: number, max: number}}\n\t * @protected\n\t * @since 3.0\n\t */\n getMinMax(canStack) {\n // eslint-disable-next-line prefer-const\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n\n if (minDefined && maxDefined) {\n return {min, max};\n }\n\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n\n // Make sure min <= max when only min or max is defined by user and the data is outside that range\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n\n /**\n\t * Get the padding needed for the scale\n\t * @return {{top: number, left: number, bottom: number, right: number}} the necessary padding\n\t * @private\n\t */\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n\n /**\n\t * Returns the scale tick objects\n\t * @return {Tick[]}\n\t * @since 2.7\n\t */\n getTicks() {\n return this.ticks;\n }\n\n /**\n\t * @return {string[]}\n\t */\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n\n /**\n * @return {import('../types.js').LabelItem[]}\n */\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n\n // When a new layout is created, reset the data limits cache\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n\n // These methods are ordered by lifecycle. Utilities then follow.\n // Any function defined here is inherited by all scale types.\n // Any function can be extended by the scale type\n\n beforeUpdate() {\n call(this.options.beforeUpdate, [this]);\n }\n\n /**\n\t * @param {number} maxWidth - the max width in pixels\n\t * @param {number} maxHeight - the max height in pixels\n\t * @param {{top: number, left: number, bottom: number, right: number}} margins - the space between the edge of the other scales and edge of the chart\n\t * This space comes from two sources:\n\t * - padding - space that's required to show the labels at the edges of the scale\n\t * - thickness of scales or legends in another orientation\n\t */\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n\n // Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n this.beforeUpdate();\n\n // Absorb the master measurements\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n\n // Dimensions\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n\n // Data min/max\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n\n this.beforeBuildTicks();\n\n this.ticks = this.buildTicks() || [];\n\n // Allow modification of ticks in callback.\n this.afterBuildTicks();\n\n // Compute tick rotation and fit using a sampled subset of labels\n // We generally don't need to compute the size of every single label for determining scale size\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n\n // configure is called twice, once here, once from core.controller.updateLayout.\n // Here we haven't been positioned yet, but dimensions are correct.\n // Variables set in configure are needed for calculateLabelRotation, and\n // it's ok that coordinates are not correct there, only dimensions matter.\n this.configure();\n\n // Tick Rotation\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation(); // Preconditions: number of ticks and sizes of largest labels must be calculated beforehand\n this.afterCalculateLabelRotation();\n\n // Auto-skip\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n\n if (samplingEnabled) {\n // Generate labels using all non-skipped ticks\n this._convertTicksToLabels(this.ticks);\n }\n\n this.beforeFit();\n this.fit(); // Preconditions: label rotation and label sizes must be calculated beforehand\n this.afterFit();\n\n // IMPORTANT: after this point, we consider that `this.ticks` will NEVER change!\n\n this.afterUpdate();\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n // by default vertical scales are from bottom to top, so pixels are reversed\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n\n afterUpdate() {\n call(this.options.afterUpdate, [this]);\n }\n\n //\n\n beforeSetDimensions() {\n call(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n // Set the unconstrained dimension before label rotation\n if (this.isHorizontal()) {\n // Reset position before calculating rotation\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n\n // Reset position before calculating rotation\n this.top = 0;\n this.bottom = this.height;\n }\n\n // Reset padding\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n call(this.options.afterSetDimensions, [this]);\n }\n\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n call(this.options[name], [this]);\n }\n\n // Data limits\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n\n //\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n /**\n\t * @return {object[]} the ticks\n\t */\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n\n beforeTickToLabelConversion() {\n call(this.options.beforeTickToLabelConversion, [this]);\n }\n /**\n\t * Convert ticks to label strings\n\t * @param {Tick[]} ticks\n\t */\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = call(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n call(this.options.afterTickToLabelConversion, [this]);\n }\n\n //\n\n beforeCalculateLabelRotation() {\n call(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n\n // Estimate the width of each grid based on the canvas width, the maximum\n // label width and the number of tick intervals\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n // Allow 3 pixels x2 padding either side for label readability\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n call(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n\n //\n\n beforeFit() {\n call(this.options.beforeFit, [this]);\n }\n fit() {\n // Reset\n const minSize = {\n width: 0,\n height: 0\n };\n\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight; // fill all the height\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n\n // Don't bother fitting the ticks if we are not showing the labels\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n\n if (isHorizontal) {\n // A horizontal axis is more constrained by the height.\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n // A vertical axis is more constrained by the width. Labels are the\n // dominant factor here, so get that length first and account for padding\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n\n this._handleMargins();\n\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n\n // Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n // which means that the right padding is dominated by the font height\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n\n // Adjust padding taking into account changes in offsets\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n\n /**\n\t * Handle margins and padding interactions\n\t * @private\n\t */\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n\n afterFit() {\n call(this.options.afterFit, [this]);\n }\n\n // Shared Methods\n /**\n\t * @return {boolean}\n\t */\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n /**\n\t * @return {boolean}\n\t */\n isFullSize() {\n return this.options.fullSize;\n }\n\n /**\n\t * @param {Tick[]} ticks\n\t * @private\n\t */\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n\n this.generateTickLabels(ticks);\n\n // Ticks should be skipped when callback returns null or undef, so lets remove those.\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n\n this.afterTickToLabelConversion();\n }\n\n /**\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n\n return labelSizes;\n }\n\n /**\n\t * Returns {width, height, offset} objects for the first, last, widest, highest tick\n\t * labels where offset indicates the anchor point offset from the top in pixels.\n\t * @return {{ first: object, last: object, widest: object, highest: object, widths: Array, heights: array }}\n\t * @private\n\t */\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n // Undefined labels and arrays should not be measured\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n // if it is an array let's measure each element\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n // Undefined labels and arrays should not be measured\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n\n /**\n\t * Used to get the label to display in the tooltip for the given value\n\t * @param {*} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n return value;\n }\n\n /**\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {*} value\n\t * @param {number} [index]\n\t * @return {number}\n\t */\n getPixelForValue(value, index) { // eslint-disable-line no-unused-vars\n return NaN;\n }\n\n /**\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} pixel\n\t * @return {*}\n\t */\n getValueForPixel(pixel) {} // eslint-disable-line no-unused-vars\n\n /**\n\t * Returns the location of the tick at the given index\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} index\n\t * @return {number}\n\t */\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n\n /**\n\t * Utility for getting the pixel location of a percentage of scale\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param {number} decimal\n\t * @return {number}\n\t */\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n\n /**\n\t * Returns the pixel for the minimum chart value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @return {number}\n\t */\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n\n /**\n\t * @return {number}\n\t */\n getBaseValue() {\n const {min, max} = this;\n\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n\n /**\n\t * @protected\n\t */\n getContext(index) {\n const ticks = this.ticks || [];\n\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n\n /**\n\t * @return {number}\n\t * @private\n\t */\n _tickSize() {\n const optionTicks = this.options.ticks;\n\n // Calculate space needed by label in axis direction.\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n\n // Calculate space needed for 1 tick in axis direction.\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n\n /**\n\t * @return {boolean}\n\t * @private\n\t */\n _isVisible() {\n const display = this.options.display;\n\n if (display !== 'auto') {\n return !!display;\n }\n\n return this.getMatchingVisibleMetas().length > 0;\n }\n\n /**\n\t * @private\n\t */\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position, border} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n\n lineValue = getPixelForGridLine(this, i, offset);\n\n // Skip if the pixel is out of the range\n if (lineValue === undefined) {\n continue;\n }\n\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n\n return items;\n }\n\n /**\n\t * @private\n\t */\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n\n if (isHorizontal) {\n x = pixel;\n\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n // eslint-disable-next-line no-lonely-if\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += (lineHeight / 2) * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n\n let backdrop;\n\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n default:\n break;\n }\n\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n default:\n break;\n }\n\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n\n color: optsAtIndex.backdropColor,\n };\n }\n\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n }\n });\n }\n\n return items;\n }\n\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n\n let align = 'center';\n\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n\n return align;\n }\n\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n\n let textAlign;\n let x;\n\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n\n return {textAlign, x};\n }\n\n /**\n\t * @private\n\t */\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n\n const chart = this.chart;\n const position = this.options.position;\n\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n\n /**\n * @protected\n */\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n\n /**\n\t * @protected\n\t */\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n\n /**\n\t * @protected\n\t */\n drawBorder() {\n const {chart, ctx, options: {border, grid}} = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n\n ctx.restore();\n }\n\n /**\n\t * @protected\n\t */\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n\n if (!optionTicks.display) {\n return;\n }\n\n const ctx = this.ctx;\n\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n\n const items = this.getLabelItems(chartArea);\n for (const item of items) {\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n\n if (area) {\n unclipArea(ctx);\n }\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n\n if (!title.display) {\n return;\n }\n\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n\n /**\n\t * @return {object[]}\n\t * @private\n\t */\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n // backward compatibility: draw has been overridden by custom scale\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: bz,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n\n /**\n\t * Returns visible dataset metas that are attached to this scale\n\t * @param {string} [type] - if specified, also filter by dataset type\n\t * @return {object[]}\n\t */\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n\n /**\n\t * @param {number} index\n\t * @return {object}\n\t * @protected\n \t */\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n\n /**\n * @protected\n */\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n","import {merge} from '../helpers/index.js';\nimport defaults, {overrides} from './core.defaults.js';\n\n/**\n * @typedef {{id: string, defaults: any, overrides?: any, defaultRoutes: any}} IChartComponent\n */\n\nexport default class TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n\n /**\n\t * @param {IChartComponent} item\n\t * @returns {string} The scope where items defaults were registered to.\n\t */\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n\n if (isIChartComponent(proto)) {\n // Make sure the parent is registered and note the scope where its defaults are.\n parentScope = this.register(proto);\n }\n\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n\n if (id in items) {\n // already registered\n return scope;\n }\n\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n\n return scope;\n }\n\n /**\n\t * @param {string} id\n\t * @returns {object?}\n\t */\n get(id) {\n return this.items[id];\n }\n\n /**\n\t * @param {IChartComponent} item\n\t */\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n\n if (id in items) {\n delete items[id];\n }\n\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\n\nfunction registerDefaults(item, scope, parentScope) {\n // Inherit the parent's defaults and keep existing defaults\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n\n defaults.set(scope, itemDefaults);\n\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\n\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\n\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n","import DatasetController from './core.datasetController.js';\nimport Element from './core.element.js';\nimport Scale from './core.scale.js';\nimport TypedRegistry from './core.typedRegistry.js';\nimport {each, callback as call, _capitalize} from '../helpers/helpers.core.js';\n\n/**\n * Please use the module's default export which provides a singleton instance\n * Note: class is exported for typedoc\n */\nexport class Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n // Order is important, Scale has Element in prototype chain,\n // so Scales must be before Elements. Plugins are a fallback, so not listed here.\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n\n /**\n\t * @param {...any} args\n\t */\n add(...args) {\n this._each('register', args);\n }\n\n remove(...args) {\n this._each('unregister', args);\n }\n\n /**\n\t * @param {...typeof DatasetController} args\n\t */\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n\n /**\n\t * @param {...typeof Element} args\n\t */\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n\n /**\n\t * @param {...any} args\n\t */\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n\n /**\n\t * @param {...typeof Scale} args\n\t */\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof DatasetController}\n\t */\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof Element}\n\t */\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {object}\n\t */\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n\n /**\n\t * @param {string} id\n\t * @returns {typeof Scale}\n\t */\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n\n /**\n\t * @param {...typeof DatasetController} args\n\t */\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n\n /**\n\t * @param {...typeof Element} args\n\t */\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n\n /**\n\t * @param {...any} args\n\t */\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n\n /**\n\t * @param {...typeof Scale} args\n\t */\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n\n /**\n\t * @private\n\t */\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n // Handle loopable args\n // Use case:\n // import * as plugins from './plugins.js';\n // Chart.register(plugins);\n each(arg, item => {\n // If there are mixed types in the loopable, make sure those are\n // registered in correct registry\n // Use case: (treemap exporting controller, elements etc)\n // import * as treemap from 'chartjs-chart-treemap.js';\n // Chart.register(treemap);\n\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n\n /**\n\t * @private\n\t */\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n call(component['before' + camelMethod], [], component); // beforeRegister / beforeUnregister\n registry[method](component);\n call(component['after' + camelMethod], [], component); // afterRegister / afterUnregister\n }\n\n /**\n\t * @private\n\t */\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n // plugins is the fallback registry\n return this.plugins;\n }\n\n /**\n\t * @private\n\t */\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n\n}\n\n// singleton instance\nexport default /* #__PURE__ */ new Registry();\n","import registry from './core.registry.js';\nimport {callback as callCallback, isNullOrUndef, valueOrDefault} from '../helpers/helpers.core.js';\n\n/**\n * @typedef { import('./core.controller.js').default } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../plugins/plugin.tooltip.js').default } Tooltip\n */\n\n/**\n * @callback filterCallback\n * @param {{plugin: object, options: object}} value\n * @param {number} [index]\n * @param {array} [array]\n * @param {object} [thisArg]\n * @return {boolean}\n */\n\n\nexport default class PluginService {\n constructor() {\n this._init = [];\n }\n\n /**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Chart} chart - The chart instance for which plugins should be called.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {object} [args] - Extra arguments to apply to the hook call.\n * @param {filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n\n /**\n\t * @private\n\t */\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callCallback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n\n return true;\n }\n\n invalidate() {\n // When plugins are registered, there is the possibility of a double\n // invalidate situation. In this case, we only want to invalidate once.\n // If we invalidate multiple times, the `_oldCache` is lost and all of the\n // plugins are restarted without being correctly stopped.\n // See https://github.com/chartjs/Chart.js/issues/8147\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n\n /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n\n const descriptors = this._cache = this._createDescriptors(chart);\n\n this._notifyStateChanges(chart);\n\n return descriptors;\n }\n\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n // options === false => all plugins are disabled\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n\n /**\n\t * @param {Chart} chart\n\t * @private\n\t */\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n\n/**\n * @param {import('./core.config.js').default} config\n */\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n\n return {plugins, localIds};\n}\n\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\n\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n\n return result;\n}\n\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n // make sure plugin defaults are in scopes for local (not registered) plugins\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n // These are just defaults that plugins can override\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n","import defaults, {overrides, descriptors} from './core.defaults.js';\nimport {mergeIf, resolveObjectKey, isArray, isFunction, valueOrDefault, isObject} from '../helpers/helpers.core.js';\nimport {_attachContext, _createResolver, _descriptors} from '../helpers/helpers.config.js';\n\nexport function getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\n\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\n\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\n\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\n\nexport function determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n\n id = scaleOptions.axis\n || axisFromPosition(scaleOptions.position)\n || id.length > 1 && determineAxis(id[0].toLowerCase(), scaleOptions);\n\n if (id) {\n return id;\n }\n\n throw new Error(`Cannot determine type of '${name}' axis. Please provide 'axis' or 'position' option.`);\n}\n\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n\n // First figure out first scale id's per axis.\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n\n // Then merge dataset defaults to scale configs\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n\n // apply scale defaults, if not overridden by dataset defaults\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n\n return scales;\n}\n\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\n\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\n\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n\n initOptions(config);\n\n return config;\n}\n\nconst keyCache = new Map();\nconst keysCached = new Set();\n\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\n\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\n\nexport default class Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n\n get platform() {\n return this._config.platform;\n }\n\n get type() {\n return this._config.type;\n }\n\n set type(type) {\n this._config.type = type;\n }\n\n get data() {\n return this._config.data;\n }\n\n set data(data) {\n this._config.data = initData(data);\n }\n\n get options() {\n return this._config.options;\n }\n\n set options(options) {\n this._config.options = options;\n }\n\n get plugins() {\n return this._config.plugins;\n }\n\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n\n /**\n * Returns the option scope keys for resolving dataset options.\n * These keys do not include the dataset itself, because it is not under options.\n * @param {string} datasetType\n * @return {string[][]}\n */\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n\n /**\n * Returns the option scope keys for resolving dataset animation options.\n * These keys do not include the dataset itself, because it is not under options.\n * @param {string} datasetType\n * @param {string} transition\n * @return {string[][]}\n */\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n // The following are used for looking up the `animations` and `animation` keys\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n\n /**\n * Returns the options scope keys for resolving element options that belong\n * to an dataset. These keys do not include the dataset itself, because it\n * is not under options.\n * @param {string} datasetType\n * @param {string} elementType\n * @return {string[][]}\n */\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n\n /**\n * Returns the options scope keys for resolving plugin options.\n * @param {{id: string, additionalOptionScopes?: string[]}} plugin\n * @return {string[][]}\n */\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n\n /**\n * @private\n */\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n\n /**\n * Resolves the objects from options and defaults for option value resolution.\n * @param {object} mainScope - The main scope object for options\n * @param {string[][]} keyLists - The arrays of keys in resolution order\n * @param {boolean} [resetCache] - reset the cache for this mainScope\n */\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n\n const scopes = new Set();\n\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n\n /**\n * Returns the option scopes for resolving chart options\n * @return {object[]}\n */\n chartOptionScopes() {\n const {options, type} = this;\n\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {}, // https://github.com/chartjs/Chart.js/issues/8531\n {type},\n defaults,\n descriptors\n ];\n }\n\n /**\n * @param {object[]} scopes\n * @param {string[]} names\n * @param {function|object} context\n * @param {string[]} [prefixes]\n * @return {object}\n */\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n // subResolver is passed to scriptable options. It should not resolve to hover options.\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n\n /**\n * @param {object[]} scopes\n * @param {object} [context]\n * @param {string[]} [prefixes]\n * @param {{scriptable: boolean, indexable: boolean, allKeys?: boolean}} [descriptorDefaults]\n */\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\n\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\n\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\n\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n","import animator from './core.animator.js';\nimport defaults, {overrides} from './core.defaults.js';\nimport Interaction from './core.interaction.js';\nimport layouts from './core.layouts.js';\nimport {_detectPlatform} from '../platform/index.js';\nimport PluginService from './core.plugins.js';\nimport registry from './core.registry.js';\nimport Config, {determineAxis, getIndexAxis} from './core.config.js';\nimport {retinaScale, _isDomSupported} from '../helpers/helpers.dom.js';\nimport {each, callback as callCallback, uid, valueOrDefault, _elementsEqual, isNullOrUndef, setsEqual, defined, isFunction, _isClickEvent} from '../helpers/helpers.core.js';\nimport {clearCanvas, clipArea, createContext, unclipArea, _isPointInArea} from '../helpers/index.js';\n// @ts-ignore\nimport {version} from '../../package.json';\nimport {debounce} from '../helpers/helpers.extras.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').Point } Point\n */\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\n\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\n\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n\n chart.notifyPlugins('afterRender');\n callCallback(animationOptions && animationOptions.onComplete, [context], chart);\n}\n\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callCallback(animationOptions && animationOptions.onProgress, [context], chart);\n}\n\n/**\n * Chart.js can take a string id of a canvas element, a 2d context, or a canvas element itself.\n * Attempt to unwrap the item passed into the chart constructor so that it is a canvas element (if possible).\n */\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n // Support for array based queries (such as jQuery)\n item = item[0];\n }\n\n if (item && item.canvas) {\n // Support for any object associated to a canvas (including a context2d)\n item = item.canvas;\n }\n return item;\n}\n\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\n\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n\n/**\n * @param {ChartEvent} e\n * @param {ChartEvent|null} lastEvent\n * @param {boolean} inChartArea\n * @param {boolean} isClick\n * @returns {ChartEvent|null}\n */\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\n\nfunction getDatasetArea(meta) {\n const {xScale, yScale} = meta;\n if (xScale && yScale) {\n return {\n left: xScale.left,\n right: xScale.right,\n top: yScale.top,\n bottom: yScale.bottom\n };\n }\n}\n\nclass Chart {\n\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n\n // eslint-disable-next-line max-statements\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n // Store the previously used aspect ratio to determine if a resize\n // is needed during updates. Do this after _options is set since\n // aspectRatio uses a getter\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n /** @type {?{attach?: function, detach?: function, resize?: function}} */\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n\n // Add the chart instance to the global namespace\n instances[this.id] = this;\n\n if (!context || !canvas) {\n // The given item is not a compatible context2d element, let's return before finalizing\n // the chart initialization but after setting basic chart / controller properties that\n // can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n // https://github.com/chartjs/Chart.js/issues/2807\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n // If aspectRatio is defined in options, use that.\n return aspectRatio;\n }\n\n if (maintainAspectRatio && _aspectRatio) {\n // If maintainAspectRatio is truthly and we had previously determined _aspectRatio, use that\n return _aspectRatio;\n }\n\n // Calculate\n return height ? width / height : null;\n }\n\n get data() {\n return this.config.data;\n }\n\n set data(data) {\n this.config.data = data;\n }\n\n get options() {\n return this._options;\n }\n\n set options(options) {\n this.config.options = options;\n }\n\n get registry() {\n return registry;\n }\n\n /**\n\t * @private\n\t */\n _initialize() {\n // Before init plugin notification\n this.notifyPlugins('beforeInit');\n\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n\n this.bindEvents();\n\n // After init plugin notification\n this.notifyPlugins('afterInit');\n\n return this;\n }\n\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n\n stop() {\n animator.stop(this);\n return this;\n }\n\n /**\n\t * Resize the chart to its container or to explicit dimensions.\n\t * @param {number} [width]\n\t * @param {number} [height]\n\t */\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n\n this.notifyPlugins('resize', {size: newSize});\n\n callCallback(options.onResize, [this, newSize], this);\n\n if (this.attached) {\n if (this._doResize(mode)) {\n // The resize update is delayed, only draw without updating.\n this.render();\n }\n }\n }\n\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n\n /**\n\t * Builds a map of scale ID to scale object for future lookup.\n\t */\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n\n scale.init(scaleOptions, options);\n });\n // clear up discarded scales\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n\n /**\n\t * @private\n\t */\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n\n /**\n\t * @private\n\t */\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n\n this._removeUnreferencedMetasets();\n\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n\n this._updateMetasets();\n return newControllers;\n }\n\n /**\n\t * Reset the elements of all datasets\n\t * @private\n\t */\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n\n /**\n\t* Resets the chart back to its state before the initial animation\n\t*/\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n\n update(mode) {\n const config = this.config;\n\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n\n // plugins options references might have change, let's invalidate the cache\n // https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n this._plugins.invalidate();\n\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n\n // Make sure dataset controllers are updated and new controllers are reset\n const newControllers = this.buildOrUpdateControllers();\n\n this.notifyPlugins('beforeElementsUpdate');\n\n // Make sure all dataset controllers have correct meta data counts\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n // New controllers will be reset after the layout pass, so we only want to modify\n // elements added to new datasets\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n\n // Only reset the controllers if we have animations\n if (!animsDisabled) {\n // Can only reset the new controllers after the scales have been updated\n // Reset is done to get the starting point for the initial animation\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n\n this._updateDatasets(mode);\n\n // Do this before render so that any plugins that need final scale updates can use it\n this.notifyPlugins('afterUpdate', {mode});\n\n this._layers.sort(compare2Level('z', '_idx'));\n\n // Replay last event from before update, or set hover styles on active elements\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n\n this.render();\n }\n\n /**\n * @private\n */\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n\n /**\n * @private\n */\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n // The configured events have changed. Rebind.\n this.unbindEvents();\n this.bindEvents();\n }\n }\n\n /**\n * @private\n */\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n\n /**\n * @private\n */\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n\n /**\n\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t * @private\n\t */\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n\n layouts.update(this, this.width, this.height, minPadding);\n\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n // Skip drawing and configuring chartArea boxes when chartArea is zero or negative\n return;\n }\n\n // configure is called twice, once in core.scale.update and once here.\n // Here the boxes are fully updated and at their final positions.\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n\n this.notifyPlugins('afterLayout');\n }\n\n /**\n\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t * @private\n\t */\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n\n /**\n\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t * @private\n\t */\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n\n meta.controller._update(mode);\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n\n // Because of plugin hooks (before/afterDatasetsDraw), datasets can't\n // currently be part of layers. Instead, we draw\n // layers <= 0 before(default, backward compat), and the rest after\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this._drawDatasets();\n\n // Rest of layers\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n\n this.notifyPlugins('afterDraw');\n }\n\n /**\n\t * @private\n\t */\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n\n return result;\n }\n\n /**\n\t * Gets the visible dataset metas in drawing order\n\t * @return {object[]}\n\t */\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n\n /**\n\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t * @private\n\t */\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n\n this.notifyPlugins('afterDatasetsDraw');\n }\n\n /**\n\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t * @private\n\t */\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = getDatasetArea(meta) || this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n\n meta.controller.draw();\n\n if (useClip) {\n unclipArea(ctx);\n }\n\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n\n /**\n * Checks whether the given point is in the chart area.\n * @param {Point} point - in relative coordinates (see, e.g., getRelativePosition)\n * @returns {boolean}\n */\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n\n return [];\n }\n\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\t\t\t// See isDatasetVisible() comment\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n\n return meta;\n }\n\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n\n const meta = this.getDatasetMeta(datasetIndex);\n\n // meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n // the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n\n /**\n\t * @private\n\t */\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n // Animate visible state, so hide animation can be seen. This could be handled better if update / updateDataset returned a Promise.\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n\n /**\n\t * @private\n\t */\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n\n this._stop();\n this.config.clearCache();\n\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n\n delete instances[this.id];\n\n this.notifyPlugins('afterDestroy');\n }\n\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n\n /**\n\t * @private\n\t */\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n\n /**\n * @private\n */\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n\n each(this.options.events, (type) => _add(type, listener));\n }\n\n /**\n * @private\n */\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n\n let detached; // eslint-disable-line prefer-const\n const attached = () => {\n _remove('attach', attached);\n\n this.attached = true;\n this.resize();\n\n _add('resize', listener);\n _add('detach', detached);\n };\n\n detached = () => {\n this.attached = false;\n\n _remove('resize', listener);\n\n // Stop animating and remove metasets, so when re-attached, the animations start from beginning.\n this._stop();\n this._resize(0, 0);\n\n _add('attach', attached);\n };\n\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n\n /**\n\t * @private\n\t */\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n\n /**\n\t * Get active (hovered) elements\n\t * @returns array\n\t */\n getActiveElements() {\n return this._active || [];\n }\n\n /**\n\t * Set active (hovered) elements\n\t * @param {array} activeElements New active data points\n\t */\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n\n if (changed) {\n this._active = active;\n // Make sure we don't use the previous mouse event to override the active elements in update.\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n\n /**\n\t * Calls enabled plugins on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Object} [args] - Extra arguments to apply to the hook call.\n * @param {import('./core.plugins.js').filterCallback} [filter] - Filtering function for limiting which plugins are notified\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n\n /**\n * Check if a plugin with the specific ID is registered and enabled\n * @param {string} pluginId - The ID of the plugin of which to check if it is enabled\n * @returns {boolean}\n */\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter(p => p.plugin.id === pluginId).length === 1;\n }\n\n /**\n\t * @private\n\t */\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n\n /**\n\t * @private\n\t */\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n\n const changed = this._handleEvent(e, replay, args.inChartArea);\n\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n\n if (changed || args.changed) {\n this.render();\n }\n\n return this;\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e the event to handle\n\t * @param {boolean} [replay] - true if the event was replayed by `update`\n * @param {boolean} [inChartArea] - true if the event is inside chartArea\n\t * @return {boolean} true if the chart needs to re-render\n\t * @private\n\t */\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n\n // If the event is replayed from `update`, we should evaluate with the final positions.\n //\n // The `replay`:\n // It's the last event (excluding click) that has occurred before `update`.\n // So mouse has not moved. It's also over the chart, because there is a `replay`.\n //\n // The why:\n // If animations are active, the elements haven't moved yet compared to state before update.\n // But if they will, we are activating the elements that would be active, if this check\n // was done after the animations have completed. => \"final positions\".\n // If there is no animations, the \"final\" and \"current\" positions are equal.\n // This is done so we do not have to evaluate the active elements each animation frame\n // - it would be expensive.\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n\n if (inChartArea) {\n // Set _lastEvent to null while we are processing the event handlers.\n // This prevents recursion if the handler calls chart.update()\n this._lastEvent = null;\n\n // Invoke onHover hook\n callCallback(options.onHover, [e, active, this], this);\n\n if (isClick) {\n callCallback(options.onClick, [e, active, this], this);\n }\n }\n\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n\n this._lastEvent = lastEvent;\n\n return changed;\n }\n\n /**\n * @param {ChartEvent} e - The event\n * @param {import('../types/index.js').ActiveElement[]} lastActive - Previously active elements\n * @param {boolean} inChartArea - Is the envent inside chartArea\n * @param {boolean} useFinalPosition - Should the evaluation be done with current or final (after animation) element positions\n * @returns {import('../types/index.js').ActiveElement[]} - The active elements\n * @pravate\n */\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n // Let user control the active elements outside chartArea. Eg. using Legend.\n return lastActive;\n }\n\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\n\n// @ts-ignore\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart) => chart._plugins.invalidate());\n}\n\nexport default Chart;\n","import {_isDomSupported} from '../helpers/index.js';\nimport BasePlatform from './platform.base.js';\nimport BasicPlatform from './platform.basic.js';\nimport DomPlatform from './platform.dom.js';\n\nexport function _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nexport {BasePlatform, BasicPlatform, DomPlatform};\n","import Element from '../core/core.element.js';\nimport {_angleBetween, getAngleFromPoint, TAU, HALF_PI, valueOrDefault} from '../helpers/index.js';\nimport {PI, _isBetween, _limitValue} from '../helpers/helpers.math.js';\nimport {_readValueToProps} from '../helpers/helpers.options.js';\nimport type {ArcOptions, Point} from '../types/index.js';\n\n\nfunction clipArc(ctx: CanvasRenderingContext2D, element: ArcElement, endAngle: number) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\n\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n\n/**\n * Parse border radius from the provided options\n */\nfunction parseBorderRadius(arc: ArcElement, innerRadius: number, outerRadius: number, angleDelta: number) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\n\n/**\n * Convert (r, 𝜃) to (x, y)\n */\nfunction rThetaToXY(r: number, theta: number, x: number, y: number) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\n\n\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */\nfunction pathArc(\n ctx: CanvasRenderingContext2D,\n element: ArcElement,\n offset: number,\n spacing: number,\n end: number,\n circular: boolean,\n) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n\n let spacingOffset = 0;\n const alpha = end - start;\n\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius(element, innerRadius, outerRadius, endAngle - startAngle);\n\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n\n ctx.beginPath();\n\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = ((endAngle - (innerEnd / innerRadius)) + (startAngle + (innerStart / innerRadius))) / 2;\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + (innerStart / innerRadius), true);\n\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n\n ctx.closePath();\n}\n\nfunction drawArc(\n ctx: CanvasRenderingContext2D,\n element: ArcElement,\n offset: number,\n spacing: number,\n circular: boolean,\n) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\n\nfunction drawBorder(\n ctx: CanvasRenderingContext2D,\n element: ArcElement,\n offset: number,\n spacing: number,\n circular: boolean,\n) {\n const {fullCircles, startAngle, circumference, options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n\n if (!borderWidth) {\n return;\n }\n\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\n\nexport interface ArcProps extends Point {\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n outerRadius: number;\n circumference: number;\n}\n\nexport default class ArcElement extends Element {\n\n static id = 'arc';\n\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n };\n\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n\n circumference: number;\n endAngle: number;\n fullCircles: number;\n innerRadius: number;\n outerRadius: number;\n pixelMargin: number;\n startAngle: number;\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n inRange(chartX: number, chartY: number, useFinalPosition: boolean) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n\n return (betweenAngles && withinRadius);\n }\n\n getCenterPoint(useFinalPosition: boolean) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n\n tooltipPosition(useFinalPosition: boolean) {\n return this.getCenterPoint(useFinalPosition);\n }\n\n draw(ctx: CanvasRenderingContext2D) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n\n ctx.save();\n\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n\n ctx.restore();\n }\n}\n","import Element from '../core/core.element.js';\nimport {_bezierInterpolation, _pointInLine, _steppedInterpolation} from '../helpers/helpers.interpolation.js';\nimport {_computeSegments, _boundSegments} from '../helpers/helpers.segment.js';\nimport {_steppedLineTo, _bezierCurveTo} from '../helpers/helpers.canvas.js';\nimport {_updateBezierControlPoints} from '../helpers/helpers.curve.js';\nimport {valueOrDefault} from '../helpers/index.js';\n\n/**\n * @typedef { import('./element.point.js').default } PointElement\n */\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\n\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n\n return lineTo;\n}\n\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n // eslint-disable-next-line prefer-const\n let {move = true, reverse} = params || {};\n let i, point, prev;\n\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n\n if (point.skip) {\n // If there is a skipped point inside a segment, spanGaps must be true\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n prev = point;\n }\n\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n\n return !!loop;\n}\n\n/**\n * Create path from points, grouping by truncated x-coordinate\n * Points need to be in order by x-coordinate for this to work efficiently\n * @param {CanvasRenderingContext2D|Path2D} ctx - Context\n * @param {LineElement} line\n * @param {object} segment\n * @param {number} segment.start - start index of the segment, referring the points array\n * @param {number} segment.end - end index of the segment, referring the points array\n * @param {boolean} segment.loop - indicates that the segment is a loop\n * @param {object} params\n * @param {boolean} params.move - move to starting point (vs line to it)\n * @param {boolean} params.reverse - path the segment from end to start\n * @param {number} params.start - limit segment to points starting from `start` index\n * @param {number} params.end - limit segment to points ending at `start` + `count` index\n */\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n // Draw line to maxY and minY, using the average x-coordinate\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n // Line to y-value of last point in group. So the line continues\n // from correct position. Not using move, to have solid path.\n ctx.lineTo(avgX, lastY);\n }\n };\n\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n\n if (point.skip) {\n // If there is a skipped point inside a segment, spanGaps must be true\n continue;\n }\n\n const x = point.x;\n const y = point.y;\n const truncX = x | 0; // truncated x-coordinate\n\n if (truncX === prevX) {\n // Determine `minY` / `maxY` and `avgX` while we stay within same x-position\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n // For first point in group, countX is `0`, so average will be `x` / 1.\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n // Draw line to next x-position, using the first (or only)\n // y-value in that group\n ctx.lineTo(x, y);\n\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n // Keep track of the last y-value in group\n lastY = y;\n }\n drawX();\n}\n\n/**\n * @param {LineElement} line - the line\n * @returns {function}\n * @private\n */\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n\n/**\n * @private\n */\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n\n return _pointInLine;\n}\n\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\n\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\n\nconst usePath2D = typeof Path2D === 'function';\n\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\n\nexport default class LineElement extends Element {\n\n static id = 'line';\n\n /**\n * @type {any}\n */\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n\n static descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n };\n\n\n constructor(cfg) {\n super();\n\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n\n get points() {\n return this._points;\n }\n\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n\n /**\n\t * First non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n\n /**\n\t * Last non-skipped point on this line\n\t * @returns {PointElement|undefined}\n\t */\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n\n /**\n\t * Interpolate a point in this line at the same value on `property` as\n\t * the reference `point` provided\n\t * @param {PointElement} point - the reference point\n\t * @param {string} property - the property to match on\n\t * @returns {PointElement|undefined}\n\t */\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n\n if (!segments.length) {\n return;\n }\n\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n\n /**\n\t * Append a segment of this line to current path.\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} segment\n\t * @param {number} segment.start - start index of the segment, referring the points array\n \t * @param {number} segment.end - end index of the segment, referring the points array\n \t * @param {boolean} segment.loop - indicates that the segment is a loop\n\t * @param {object} params\n\t * @param {boolean} params.move - move to starting point (vs line to it)\n\t * @param {boolean} params.reverse - path the segment from end to start\n\t * @param {number} params.start - limit segment to points starting from `start` index\n\t * @param {number} params.end - limit segment to points ending at `start` + `count` index\n\t * @returns {undefined|boolean} - true if the segment is a full loop (path should be closed)\n\t */\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n\n /**\n\t * Append all segments of this line to current path.\n\t * @param {CanvasRenderingContext2D|Path2D} ctx\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t * @returns {undefined|boolean} - true if line is a full loop (path should be closed)\n\t */\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n\n start = start || 0;\n count = count || (this.points.length - start);\n\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n\n /**\n\t * Draw\n\t * @param {CanvasRenderingContext2D} ctx\n\t * @param {object} chartArea\n\t * @param {number} [start]\n\t * @param {number} [count]\n\t */\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n\n if (points.length && options.borderWidth) {\n ctx.save();\n\n draw(ctx, this, start, count);\n\n ctx.restore();\n }\n\n if (this.animated) {\n // When line is animated, the control points and path are not cached.\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n","import Element from '../core/core.element.js';\nimport {drawPoint, _isPointInArea} from '../helpers/helpers.canvas.js';\nimport type {\n CartesianParsedData,\n ChartArea,\n Point,\n PointHoverOptions,\n PointOptions,\n} from '../types/index.js';\n\nfunction inRange(el: PointElement, pos: number, axis: 'x' | 'y', useFinalPosition?: boolean) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\n\nexport type PointProps = Point\n\nexport default class PointElement extends Element {\n\n static id = 'point';\n\n parsed: CartesianParsedData;\n skip?: boolean;\n stop?: boolean;\n\n /**\n * @type {any}\n */\n static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n inRange(mouseX: number, mouseY: number, useFinalPosition?: boolean) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n\n inXRange(mouseX: number, useFinalPosition?: boolean) {\n return inRange(this, mouseX, 'x', useFinalPosition);\n }\n\n inYRange(mouseY: number, useFinalPosition?: boolean) {\n return inRange(this, mouseY, 'y', useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition?: boolean) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n\n size(options?: Partial) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n\n draw(ctx: CanvasRenderingContext2D, area: ChartArea) {\n const options = this.options;\n\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n","import Element from '../core/core.element.js';\nimport {isObject, _isBetween, _limitValue} from '../helpers/index.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {toTRBL, toTRBLCorners} from '../helpers/helpers.options.js';\n\n/** @typedef {{ x: number, y: number, base: number, horizontal: boolean, width: number, height: number }} BarProps */\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param {BarElement} bar the bar\n * @param {boolean} [useFinalPosition]\n * @return {object} bounds of the bar\n * @private\n */\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = /** @type {BarProps} */ (bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition));\n\n let left, right, top, bottom, half;\n\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n\n return {left, top, right, bottom};\n}\n\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\n\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\n\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n\n // If the value is an object, assume the user knows what they are doing\n // and apply as directed.\n const enableBorder = enableBorderRadius || isObject(value);\n\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\n\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\n\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\n\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n\n/**\n * Add a path of a rectangle to the current sub-path\n * @param {CanvasRenderingContext2D} ctx Context\n * @param {*} rect Bounding rect\n */\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\n\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\n\nexport default class BarElement extends Element {\n\n static id = 'bar';\n\n /**\n * @type {any}\n */\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n\n /**\n * @type {any}\n */\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n\n constructor(cfg) {\n super();\n\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n\n ctx.save();\n\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n\n ctx.restore();\n }\n\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = /** @type {BarProps} */ (this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition));\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n","/**\n * Plugin based on discussion from the following Chart.js issues:\n * @see https://github.com/chartjs/Chart.js/issues/2380#issuecomment-279961569\n * @see https://github.com/chartjs/Chart.js/issues/2440#issuecomment-256461897\n */\n\nimport LineElement from '../../elements/element.line.js';\nimport {_drawfill} from './filler.drawing.js';\nimport {_shouldApplyFill} from './filler.helper.js';\nimport {_decodeFill, _resolveTarget} from './filler.options.js';\n\nexport default {\n id: 'filler',\n\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n\n meta.$filler = source;\n sources.push(source);\n }\n\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n","import defaults from '../core/core.defaults.js';\nimport Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {addRoundedRectPath, drawPointLegend, renderText} from '../helpers/helpers.canvas.js';\nimport {\n _isBetween,\n callback as call,\n clipArea,\n getRtlAdapter,\n overrideTextDirection,\n restoreTextDirection,\n toFont,\n toPadding,\n unclipArea,\n valueOrDefault,\n} from '../helpers/index.js';\nimport {_alignStartEnd, _textX, _toLeftRightCenter} from '../helpers/helpers.extras.js';\nimport {toTRBLCorners} from '../helpers/helpers.options.js';\n\n/**\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n */\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\n\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\n\nexport class Legend extends Element {\n\n /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n constructor(config) {\n super();\n\n this._added = false;\n\n // Contains hit boxes for each dataset (in dataset order)\n this.legendHitBoxes = [];\n\n /**\n \t\t * @private\n \t\t */\n this._hoveredItem = null;\n\n // Are we in doughnut mode which has a different data type\n this.doughnutMode = false;\n\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = call(labelOpts.generateLabels, [this.chart], this) || [];\n\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n\n if (this.options.reverse) {\n legendItems.reverse();\n }\n\n this.legendItems = legendItems;\n }\n\n fit() {\n const {options, ctx} = this;\n\n // The legend may not be displayed for a variety of reasons including\n // the fact that the defaults got set to `false`.\n // When the legend is not displayed, there are no guarantees that the options\n // are correctly formatted so we need to bail out as early as possible.\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n let width, height;\n\n ctx.font = labelFont.string;\n\n if (this.isHorizontal()) {\n width = this.maxWidth; // fill all the width\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight; // fill all the height\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n\n /**\n\t * @private\n\t */\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n // Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n\n return totalHeight;\n }\n\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n\n let left = 0;\n let col = 0;\n\n this.legendItems.forEach((legendItem, i) => {\n const {itemWidth, itemHeight} = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n\n // If too tall, go to new column\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n\n // Store the hitbox width and height here. Final position will be updated in `draw`\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n\n // Get max width\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight}); // previous column size\n\n return totalWidth;\n }\n\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n\n this._draw();\n\n unclipArea(ctx);\n }\n }\n\n /**\n\t * @private\n\t */\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n\n this.drawTitle();\n\n // Canvas setup\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n\n // current position\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n\n // Set the ctx for the box\n ctx.save();\n\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n\n if (labelOpts.usePointStyle) {\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n\n // Draw pointStyle as legend symbol\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n // Draw box as legend symbol\n // Adjust position when boxHeight < fontSize (want it centered)\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n\n ctx.beginPath();\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n\n ctx.restore();\n };\n\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n\n // Horizontal\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n\n overrideTextDirection(this.ctx, opts.textDirection);\n\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor; // for strikethrough effect\n ctx.fillStyle = legendItem.fontColor; // render in correct colour\n\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n\n rtlHelper.setWidth(this.width);\n\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n\n const realX = rtlHelper.x(x);\n\n drawLegendBox(realX, y, legendItem);\n\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n\n // Fill the actual label\n fillText(rtlHelper.x(x), y, legendItem);\n\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight);\n } else {\n cursor.y += lineHeight;\n }\n });\n\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n\n if (!titleOpts.display) {\n return;\n }\n\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n\n // These defaults are used when the legend is vertical.\n // When horizontal, they are computed below.\n let left = this.left;\n let maxWidth = this.width;\n\n if (this.isHorizontal()) {\n // Move left / right so that the title is above the legend lines\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n // Move down so that the title is above the legend stack in every alignment\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n\n // Now that we know the left edge of the inner legend box, compute the correct\n // X coordinate from the title alignment\n const x = _alignStartEnd(position, left, left + maxWidth);\n\n // Canvas setup\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n\n /**\n\t * @private\n\t */\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n\n /**\n\t * @private\n\t */\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n // See if we are touching one of the dataset boxes\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n // Touching an element\n return this.legendItems[i];\n }\n }\n }\n\n return null;\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t */\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n\n // Chart event already has relative position in it\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n call(opts.onLeave, [e, previous, this], this);\n }\n\n this._hoveredItem = hoveredItem;\n\n if (hoveredItem && !sameItem) {\n call(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n call(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\n\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {itemWidth, itemHeight};\n}\n\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b) => a.length > b.length ? a : b);\n }\n return boxWidth + (labelFont.size / 2) + ctx.measureText(legendItemText).width;\n}\n\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\n\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length + 0.5 : 0;\n return fontLineHeight * labelHeight;\n}\n\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\n\nexport default {\n id: 'legend',\n\n /**\n\t * For tests\n\t * @private\n\t */\n _element: Legend,\n\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n\n // During the beforeUpdate step, the layout configuration needs to run\n // This ensures that if the legend position changes (via an option update)\n // the layout system respects the change. See https://github.com/chartjs/Chart.js/issues/7527\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n\n // The labels need to be built after datasets are updated to ensure that colors\n // and other styling are correct. See https://github.com/chartjs/Chart.js/issues/6968\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n\n\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n\n // a callback that will handle\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n\n onHover: null,\n onLeave: null,\n\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n // Generates labels shown in the legend\n // Valid properties to return:\n // text : text to display\n // fillStyle : fill of coloured box\n // strokeStyle: stroke of coloured box\n // hidden : if this legend item refers to a hidden item\n // lineCap : cap style for line\n // lineDash\n // lineDashOffset :\n // lineJoin :\n // lineWidth :\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color, useBorderRadius, borderRadius}} = chart.legend.options;\n\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n\n // Below is extra data used for toggling the datasets\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n","import Element from '../core/core.element.js';\nimport layouts from '../core/core.layouts.js';\nimport {PI, isArray, toPadding, toFont} from '../helpers/index.js';\nimport {_toLeftRightCenter, _alignStartEnd} from '../helpers/helpers.extras.js';\nimport {renderText} from '../helpers/helpers.canvas.js';\n\nexport class Title extends Element {\n /**\n\t * @param {{ ctx: any; options: any; chart: any; }} config\n\t */\n constructor(config) {\n super();\n\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n\n update(maxWidth, maxHeight) {\n const opts = this.options;\n\n this.left = 0;\n this.top = 0;\n\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n\n if (!opts.display) {\n return;\n }\n\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\n\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\n\nexport default {\n id: 'title',\n\n /**\n\t * For tests\n\t * @private\n\t */\n _element: Title,\n\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000 // by default greater than legend (1000) to be above\n },\n\n defaultRoutes: {\n color: 'color'\n },\n\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n","import Animations from '../core/core.animations.js';\nimport Element from '../core/core.element.js';\nimport {addRoundedRectPath} from '../helpers/helpers.canvas.js';\nimport {each, noop, isNullOrUndef, isArray, _elementsEqual, isObject} from '../helpers/helpers.core.js';\nimport {toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\nimport {getRtlAdapter, overrideTextDirection, restoreTextDirection} from '../helpers/helpers.rtl.js';\nimport {distanceBetweenPoints, _limitValue} from '../helpers/helpers.math.js';\nimport {createContext, drawPoint} from '../helpers/index.js';\n\n/**\n * @typedef { import('../platform/platform.base.js').Chart } Chart\n * @typedef { import('../types/index.js').ChartEvent } ChartEvent\n * @typedef { import('../types/index.js').ActiveElement } ActiveElement\n * @typedef { import('../core/core.interaction.js').InteractionItem } InteractionItem\n */\n\nconst positioners = {\n /**\n\t * Average mode places the tooltip at the average position of the elements shown\n\t */\n average(items) {\n if (!items.length) {\n return false;\n }\n\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n\n return {\n x: x / count,\n y: y / count\n };\n },\n\n /**\n\t * Gets the tooltip position nearest of the item nearest to the event position\n\t */\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n\n return {\n x,\n y\n };\n }\n};\n\n// Helper to push or concat based on if the 2nd parameter is an array or not\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n // base = base.concat(toPush);\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n\n return base;\n}\n\n/**\n * Returns array of strings split by newline\n * @param {*} str - The value to split by newline.\n * @returns {string|string[]} value if newline present - Returned from String split() method\n * @function\n */\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n\n\n/**\n * Private helper to create a tooltip item model\n * @param {Chart} chart\n * @param {ActiveElement} item - {element, index, datasetIndex} to create the tooltip item for\n * @return new tooltip item\n */\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n\n/**\n * Get the size of the tooltip\n */\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n\n // Count of all lines in the body\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n // Body lines may include some extra height depending on boxHeight\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n\n // Title width\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n\n ctx.save();\n\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n\n // Body width\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n\n // Body lines may include some extra width due to the color box\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n\n // Reset back to 0\n widthPadding = 0;\n\n // Footer width\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n\n ctx.restore();\n\n // Add padding\n width += padding.width;\n\n return {width, height};\n}\n\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\n\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\n\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n\n return xAlign;\n}\n\n/**\n * Helper to get the alignment of a tooltip given the size\n */\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\n\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\n\nfunction alignY(size, yAlign, paddingAndSize) {\n // eslint-disable-next-line prefer-const\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\n\n/**\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\n\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\n\n/**\n * Helper to build before and after body lines\n */\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\n\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\n\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\n\nconst defaultCallbacks = {\n // Args are: (tooltipItems, data)\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n\n return '';\n },\n afterTitle: noop,\n\n // Args are: (tooltipItems, data)\n beforeBody: noop,\n\n // Args are: (tooltipItem, data)\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n\n let label = tooltipItem.dataset.label || '';\n\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n\n // Args are: (tooltipItems, data)\n afterBody: noop,\n\n // Args are: (tooltipItems, data)\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n\n/**\n * Invoke callback from object with context and arguments.\n * If callback returns `undefined`, then will be invoked default callback.\n * @param {Record} callbacks\n * @param {keyof typeof defaultCallbacks} name\n * @param {*} ctx\n * @param {*} arg\n * @returns {any}\n */\nfunction invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n\n return result;\n}\n\nexport class Tooltip extends Element {\n\n /**\n * @namespace Chart.Tooltip.positioners\n */\n static positioners = positioners;\n\n constructor(config) {\n super();\n\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n // TODO: V4, make this private, rename to `_labelStyles`, and combine with `labelPointStyles`\n // and `labelTextColors` to create a single variable\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n\n /**\n\t * @private\n\t */\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n\n if (cached) {\n return cached;\n }\n\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n\n return animations;\n }\n\n /**\n\t * @protected\n\t */\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n\n getTitle(context, options) {\n const {callbacks} = options;\n\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n\n return lines;\n }\n\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(\n invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems)\n );\n }\n\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n\n bodyItems.push(bodyItem);\n });\n\n return bodyItems;\n }\n\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(\n invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems)\n );\n }\n\n // Get the footer and beforeFooter and afterFooter lines\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n\n return lines;\n }\n\n /**\n\t * @private\n\t */\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n\n // If the user provided a filter function, use it to modify the tooltip items\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n\n // If the user provided a sorting function, use it to modify the tooltip items\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n\n // Determine colors for boxes\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n\n // Left draws bottom -> top, this y1 is on the bottom\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n\n // Right draws top -> bottom, thus y1 is on the top\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n\n // Top draws left -> right, thus x1 is on the left\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n\n // Bottom draws right -> left, thus x1 is on the right\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n pt.x = getAlignedX(this, options.titleAlign, options);\n\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing; // Line Height and spacing\n\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n }\n }\n }\n }\n\n /**\n\t * @private\n\t */\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2, // fit the circle in the box\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n // Recalculate x and y for drawPoint() because its expecting\n // x and y to be center of figure (instead of top left)\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n\n // Fill the point with white so that colours merge nicely if the opacity is < 1\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n\n // Draw the point\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n // Border\n ctx.lineWidth = isObject(labelColors.borderWidth) ? Math.max(...Object.values(labelColors.borderWidth)) : (labelColors.borderWidth || 1); // TODO, v4 remove fallback\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n\n // Fill a white rect so that colours merge nicely if the opacity is < 1\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n\n // Inner square\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n // Normal rect\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n // Inner square\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n\n // restore fillStyle\n ctx.fillStyle = this.labelTextColors[i];\n }\n\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n\n // Before body lines\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n\n // Draw body lines now\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n\n lines = bodyItem.lines;\n // Draw Legend-like boxes if needed\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n // Reset for any lines that don't include colorbox\n bodyLineHeight = bodyFont.lineHeight;\n }\n\n each(bodyItem.after, fillLineOfText);\n }\n\n // Reset back to 0 for after body\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n\n // After body lines\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing; // Remove last body spacing\n }\n\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n\n footerFont = toFont(options.footerFont);\n\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n\n ctx.fill();\n\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n\n /**\n\t * Update x/y animation targets when _active elements are animating too\n\t * @private\n\t */\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n\n /**\n * Determine if the tooltip will draw anything\n * @returns {boolean} True if the tooltip will render\n */\n _willRender() {\n return !!this.opacity;\n }\n\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n\n if (!opacity) {\n return;\n }\n\n this._updateAnimationTarget(options);\n\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n\n // IE11/Edge does not like very small opacities, so snap to 0\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n\n const padding = toPadding(options.padding);\n\n // Truthy/falsey value for empty tooltip\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n\n // Draw Background\n this.drawBackground(pt, ctx, tooltipSize, options);\n\n overrideTextDirection(ctx, options.textDirection);\n\n pt.y += padding.top;\n\n // Titles\n this.drawTitle(pt, ctx, options);\n\n // Body\n this.drawBody(pt, ctx, options);\n\n // Footer\n this.drawFooter(pt, ctx, options);\n\n restoreTextDirection(ctx, options.textDirection);\n\n ctx.restore();\n }\n }\n\n /**\n\t * Get active elements in the tooltip\n\t * @returns {Array} Array of elements that are active in the tooltip\n\t */\n getActiveElements() {\n return this._active || [];\n }\n\n /**\n\t * Set active elements in the tooltip\n\t * @param {array} activeElements Array of active datasetIndex/index pairs.\n\t * @param {object} eventPosition Synthetic event position used in positioning\n\t */\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n\n /**\n\t * Handle an event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {boolean} true if the tooltip changed\n\t */\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n\n // When there are multiple items shown, but the tooltip position is nearest mode\n // an update may need to be made because our position may have changed even though\n // the items are the same as before.\n const positionChanged = this._positionChanged(active, e);\n\n // Remember Last Actives\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n\n // Only handle target event on tooltip change\n if (changed) {\n this._active = active;\n\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n\n this.update(true, replay);\n }\n }\n\n return changed;\n }\n\n /**\n\t * Helper for determining the active elements for event\n\t * @param {ChartEvent} e - The event to handle\n\t * @param {InteractionItem[]} lastActive - Previously active elements\n\t * @param {boolean} [replay] - This is a replayed event (from update)\n\t * @param {boolean} [inChartArea] - The event is inside chartArea\n\t * @returns {InteractionItem[]} - Active elements\n\t * @private\n\t */\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n\n if (e.type === 'mouseout') {\n return [];\n }\n\n if (!inChartArea) {\n // Let user control the active elements outside chartArea. Eg. using Legend.\n return lastActive;\n }\n\n // Find Active Elements for tooltips\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n\n if (options.reverse) {\n active.reverse();\n }\n\n return active;\n }\n\n /**\n\t * Determine if the active elements + event combination changes the\n\t * tooltip position\n\t * @param {array} active - Active elements\n\t * @param {ChartEvent} e - Event that triggered the position change\n\t * @returns {boolean} True if the position has changed\n\t */\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\n\nexport default {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n\n if (chart.notifyPlugins('beforeTooltipDraw', {...args, cancelable: true}) === false) {\n return;\n }\n\n tooltip.draw(chart.ctx);\n\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n\n afterEvent(chart, args) {\n if (chart.tooltip) {\n // If the event is replayed from `update`, we should evaluate with the final positions.\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n // notify chart about the change, so it will render\n args.changed = true;\n }\n }\n },\n\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n\n // Resolve additionally from `interaction` options and defaults.\n additionalOptionScopes: ['interaction']\n};\n","import {Title} from './plugin.title.js';\nimport layouts from '../core/core.layouts.js';\n\nconst map = new WeakMap();\n\nexport default {\n id: 'subtitle',\n\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500 // by default greater than legend (1000) and smaller than title (2000)\n },\n\n defaultRoutes: {\n color: 'color'\n },\n\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n","import Scale from '../core/core.scale.js';\nimport {isNullOrUndef, valueOrDefault, _limitValue} from '../helpers/index.js';\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\n\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\n\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\n\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\n\nexport default class CategoryScale extends Scale {\n\n static id = 'category';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n\n this.min = min;\n this.max = max;\n }\n\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n\n // If we are viewing some subset of labels, slice the original array\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n super.configure();\n\n if (!this.isHorizontal()) {\n // For backward compatibility, vertical category scale reverse is inverted.\n this._reversePixels = !this._reversePixels;\n }\n }\n\n // Used to get data value locations. Value can either be an index or a numerical value\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n\n // Must override base implementation because it calls getPixelForValue\n // and category scale can have duplicate values\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n\n getBasePixel() {\n return this.bottom;\n }\n}\n","import {isNullOrUndef} from '../helpers/helpers.core.js';\nimport {almostEquals, almostWhole, niceNum, _decimalPlaces, _setMinAndMaxByKey, sign, toRadians} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\n\n/**\n * Generate a set of linear ticks for an axis\n * 1. If generationOptions.min, generationOptions.max, and generationOptions.step are defined:\n * if (max - min) / step is an integer, ticks are generated as [min, min + step, ..., max]\n * Note that the generationOptions.maxCount setting is respected in this scenario\n *\n * 2. If generationOptions.min, generationOptions.max, and generationOptions.count is defined\n * spacing = (max - min) / count\n * Ticks are generated as [min, min + spacing, ..., max]\n *\n * 3. If generationOptions.count is defined\n * spacing = (niceMax - niceMin) / count\n *\n * 4. Compute optimal spacing of ticks using niceNum algorithm\n *\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, dataRange) {\n const ticks = [];\n // To get a \"nice\" value for the tick spacing, we will use the appropriately named\n // \"nice number\" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n // for details.\n\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n\n // Beyond MIN_SPACING floating point numbers being to lose precision\n // such that we can't do the math necessary to generate ticks\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n // If the calculated num of spaces exceeds maxNumSpaces, recalculate it\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n\n if (!isNullOrUndef(precision)) {\n // If the user specified a precision, round to that number of decimal places\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n // Case 1: If min, max and stepSize are set and they make an evenly spaced scale use it.\n // spacing = step;\n // numSpaces = (max - min) / spacing;\n // Note that we round here to handle the case where almostWhole translated an FP error\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n // Cases 2 & 3, we have a count specified. Handle optional user defined edges to the range.\n // Sometimes these are no-ops, but it makes the code a lot clearer\n // and when a user defined range is specified, we want the correct ticks\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n // Case 4\n numSpaces = (niceMax - niceMin) / spacing;\n\n // If very close to our rounded value, use it.\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n\n // The spacing will have changed in cases 1, 2, and 3 so the factor cannot be computed\n // until this point\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n\n if (niceMin < min) {\n j++; // Skip niceMin\n }\n // If the next nice tick is close to min, skip it\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n\n if (maxDefined && includeBounds && niceMax !== max) {\n // If the previous tick is too close to max, replace it with max, else add max\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n\n return ticks;\n}\n\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\n\nexport default class LinearScaleBase extends Scale {\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.start = undefined;\n /** @type {number} */\n this.end = undefined;\n /** @type {number} */\n this._startValue = undefined;\n /** @type {number} */\n this._endValue = undefined;\n this._valueRange = 0;\n }\n\n parse(raw, index) { // eslint-disable-line no-unused-vars\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n\n return +raw;\n }\n\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n\n setMax(max + offset);\n\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n\n getTickLimit() {\n const tickOpts = this.options.ticks;\n // eslint-disable-next-line prefer-const\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n\n return maxTicks;\n }\n\n /**\n\t * @protected\n\t */\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n\n // Figure out what the max number of ticks we can support it is based on the size of\n // the axis area. For now, we say that the minimum tick spacing in pixels must be 40\n // We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n // the graph. Make sure we always have at least 2 ticks\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks(numericGeneratorOptions, dataRange);\n\n // At this point, we need to update our max and min given the tick values,\n // since we probably have expanded the range of the scale\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n\n super.configure();\n\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n","import {isFinite} from '../helpers/helpers.core.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {toRadians} from '../helpers/index.js';\n\nexport default class LinearScale extends LinearScaleBase {\n\n static id = 'linear';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n\n this.min = isFinite(min) ? min : 0;\n this.max = isFinite(max) ? max : 1;\n\n // Common base implementation to handle min, max, beginAtZero\n this.handleTickRangeOptions();\n }\n\n /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n \t */\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n\n // Utils\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n","import {finiteOrDefault, isFinite} from '../helpers/helpers.core.js';\nimport {formatNumber} from '../helpers/helpers.intl.js';\nimport {_setMinAndMaxByKey, log10} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\n\nconst log10Floor = v => Math.floor(log10(v));\nconst changeExponent = (v, m) => Math.pow(10, log10Floor(v) + m);\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, log10Floor(tickVal)));\n return remain === 1;\n}\n\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\n\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while (steps(min, max, rangeExp) > 10) {\n rangeExp++;\n }\n while (steps(min, max, rangeExp) < 10) {\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {object[]} array of tick objects\n */\nfunction generateTicks(generationOptions, {min, max}) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while (value < max) {\n ticks.push({value, major: isMajor(value), significand});\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({value: lastTick, major: isMajor(lastTick), significand});\n\n return ticks;\n}\n\nexport default class LogarithmicScale extends Scale {\n\n static id = 'logarithmic';\n\n /**\n * @type {any}\n */\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.start = undefined;\n /** @type {number} */\n this.end = undefined;\n /** @type {number} */\n this._startValue = undefined;\n this._valueRange = 0;\n }\n\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isFinite(value) && value > 0 ? value : null;\n }\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n\n this.min = isFinite(min) ? Math.max(0, min) : null;\n this.max = isFinite(max) ? Math.max(0, max) : null;\n\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n\n // if data has `0` in it or `beginAtZero` is true, min (non zero) value is at bottom\n // of scale, and it does not equal suggestedMin, lower the min bound by one exp.\n if (this._zero && this.min !== this._suggestedMin && !isFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n\n this.handleTickRangeOptions();\n }\n\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n\n if (min === max) {\n if (min <= 0) { // includes null\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n\n setMax(changeExponent(min, +1));\n }\n\n this.min = min;\n this.max = max;\n }\n\n buildTicks() {\n const opts = this.options;\n\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n\n // At this point, we need to update our max and min given the tick values,\n // since we probably have expanded the range of the scale\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n\n if (opts.reverse) {\n ticks.reverse();\n\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n\n return ticks;\n }\n\n /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n\n /**\n\t * @protected\n\t */\n configure() {\n const start = this.min;\n\n super.configure();\n\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n","import defaults from '../core/core.defaults.js';\nimport {_longestText, addRoundedRectPath, renderText} from '../helpers/helpers.canvas.js';\nimport {HALF_PI, TAU, toDegrees, toRadians, _normalizeAngle, PI} from '../helpers/helpers.math.js';\nimport LinearScaleBase from './scale.linearbase.js';\nimport Ticks from '../core/core.ticks.js';\nimport {valueOrDefault, isArray, isFinite, callback as callCallback, isNullOrUndef} from '../helpers/helpers.core.js';\nimport {createContext, toFont, toPadding, toTRBLCorners} from '../helpers/helpers.options.js';\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\n\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n\n return {\n start: pos,\n end: pos + size\n };\n}\n\n/**\n * Helper function to fit a radial linear scale with point labels\n */\nfunction fitWithPointLabels(scale) {\n\n // Right, this is really confusing and there is a lot of maths going on here\n // The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n //\n // Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n //\n // Solution:\n //\n // We assume the radius of the polygon is half the size of the canvas at first\n // at each index we check if the text overlaps.\n //\n // Where it does, we store that angle and that index.\n //\n // After finding the largest index and angle we calculate how much we need to remove\n // from the shape radius to move the point inwards by that x.\n //\n // We average the left and right distances to get the maximum shape radius that can fit in the box\n // along with labels.\n //\n // Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n // on each side, removing that from the size, halving it and adding the left x protrusion width.\n //\n // This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n // and position it in the most space efficient manner\n //\n // https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\n // Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n // Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n\n // Now that text size is determined, compute the full positions\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\n\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\n\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n\n items.push({\n // Text position\n x: pointLabelPosition.x,\n y,\n\n // Text rendering data\n textAlign,\n\n // Bounding box\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\n\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n\n return 'right';\n}\n\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\n\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\n\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\n\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n // Draw circular arcs between the points\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n // Draw straight lines connecting each index\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n\n const {color, lineWidth} = gridLineOpts;\n\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash);\n ctx.lineDashOffset = borderOpts.dashOffset;\n\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\n\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\n\nexport default class RadialLinearScale extends LinearScaleBase {\n\n static id = 'radialLinear';\n\n /**\n * @type {any}\n */\n static defaults = {\n display: true,\n\n // Boolean - Whether to animate scaling the chart from the centre\n animate: true,\n position: 'chartArea',\n\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n\n grid: {\n circular: false\n },\n\n startAngle: 0,\n\n // label settings\n ticks: {\n // Boolean - Show a backdrop to the scale label\n showLabelBackdrop: true,\n\n callback: Ticks.formatters.numeric\n },\n\n pointLabels: {\n backdropColor: undefined,\n\n // Number - The backdrop padding above & below the label in pixels\n backdropPadding: 2,\n\n // Boolean - if true, show point labels\n display: true,\n\n // Number - Point label font size in pixels\n font: {\n size: 10\n },\n\n // Function - Used to convert point labels\n callback(label) {\n return label;\n },\n\n // Number - Additionl padding between scale and pointLabel\n padding: 5,\n\n // Boolean - if true, center point labels to slices in polar chart\n centerPointLabels: false\n }\n };\n\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n\n constructor(cfg) {\n super(cfg);\n\n /** @type {number} */\n this.xCenter = undefined;\n /** @type {number} */\n this.yCenter = undefined;\n /** @type {number} */\n this.drawingArea = undefined;\n /** @type {string[]} */\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n\n setDimensions() {\n // Set the unconstrained dimension before label rotation\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n\n this.min = isFinite(min) && !isNaN(min) ? min : 0;\n this.max = isFinite(max) && !isNaN(max) ? max : 0;\n\n // Common base implementation to handle min, max, beginAtZero\n this.handleTickRangeOptions();\n }\n\n /**\n\t * Returns the maximum number of ticks based on the scale dimension\n\t * @protected\n\t */\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n\n // Point labels\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callCallback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n\n fit() {\n const opts = this.options;\n\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n\n // Take into account half font size + the yPadding of the top value\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n\n /**\n\t * @protected\n\t */\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n\n /**\n\t * @protected\n\t */\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid, border} = opts;\n const labelCount = this._pointLabels.length;\n\n let i, offset, position;\n\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n\n if (angleLines.display) {\n ctx.save();\n\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n\n if (!lineWidth || !color) {\n continue;\n }\n\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n\n ctx.restore();\n }\n }\n\n /**\n\t * @protected\n\t */\n drawBorder() {}\n\n /**\n\t * @protected\n\t */\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n\n if (!tickOpts.display) {\n return;\n }\n\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n\n ctx.restore();\n }\n\n /**\n\t * @protected\n\t */\n drawTitle() {}\n}\n","import adapters from '../core/core.adapters.js';\nimport {callback as call, isFinite, isNullOrUndef, mergeIf, valueOrDefault} from '../helpers/helpers.core.js';\nimport {toRadians, isNumber, _limitValue} from '../helpers/helpers.math.js';\nimport Scale from '../core/core.scale.js';\nimport {_arrayUnique, _filterBetween, _lookup} from '../helpers/helpers.collection.js';\n\n/**\n * @typedef { import('../core/core.adapters.js').TimeUnit } Unit\n * @typedef {{common: boolean, size: number, steps?: number}} Interval\n * @typedef { import('../core/core.adapters.js').DateAdapter } DateAdapter\n */\n\n/**\n * @type {Object}\n */\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\n\n/**\n * @type {Unit[]}\n */\nconst UNITS = /** @type Unit[] */ /* #__PURE__ */ (Object.keys(INTERVALS));\n\n/**\n * @param {number} a\n * @param {number} b\n */\nfunction sorter(a, b) {\n return a - b;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {*} input\n * @return {number}\n */\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n\n if (typeof parser === 'function') {\n value = parser(value);\n }\n\n // Only parse if its not a timestamp already\n if (!isFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, /** @type {Unit} */ (parser))\n : adapter.parse(value);\n }\n\n if (value === null) {\n return null;\n }\n\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n\n return +value;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @param {number} capacity\n * @return {object}\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n\n return UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n * @param {TimeScale} scale\n * @param {number} numTicks\n * @param {Unit} minUnit\n * @param {number} min\n * @param {number} max\n * @return {Unit}\n */\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\n/**\n * @param {Unit} unit\n * @return {object}\n */\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n\n/**\n * @param {object} ticks\n * @param {number} time\n * @param {number[]} [timestamps] - if defined, snap to these timestamps\n */\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n\n/**\n * @param {TimeScale} scale\n * @param {object[]} ticks\n * @param {object} map\n * @param {Unit} majorUnit\n * @return {object[]}\n */\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n\n/**\n * @param {TimeScale} scale\n * @param {number[]} values\n * @param {Unit|undefined} [majorUnit]\n * @return {object[]}\n */\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n /** @type {Object} */\n const map = {};\n const ilen = values.length;\n let i, value;\n\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n\n ticks.push({\n value,\n major: false\n });\n }\n\n // We set the major ticks separately from the above loop because calling startOf for every tick\n // is expensive when there is a large number of ticks\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nexport default class TimeScale extends Scale {\n\n static id = 'time';\n\n /**\n * @type {any}\n */\n static defaults = {\n /**\n * Scale boundary strategy (bypassed by min/max time options)\n * - `data`: make sure data are fully visible, ticks outside are removed\n * - `ticks`: make sure ticks are fully visible, data outside are truncated\n * @see https://github.com/chartjs/Chart.js/pull/4556\n * @since 2.7.0\n */\n bounds: 'data',\n\n adapters: {},\n time: {\n parser: false, // false == a pattern string from or a custom callback that converts its argument to a timestamp\n unit: false, // false == automatic or override with week, month, year, etc.\n round: false, // none, or override with week, month, year, etc.\n isoWeekday: false, // override week start day\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n /**\n * Ticks generation input values:\n * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n * - 'labels': generates ticks from user given `data.labels` values ONLY.\n * @see https://github.com/chartjs/Chart.js/pull/4507\n * @since 2.7.0\n */\n source: 'auto',\n\n callback: false,\n\n major: {\n enabled: false\n }\n }\n };\n\n /**\n\t * @param {object} props\n\t */\n constructor(props) {\n super(props);\n\n /** @type {{data: number[], labels: number[], all: number[]}} */\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n\n /** @type {Unit} */\n this._unit = 'day';\n /** @type {Unit=} */\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n /** @type {DateAdapter} */\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n\n adapter.init(opts);\n\n // Backward compatibility: before introducing adapter, `displayFormats` was\n // supposed to contain *all* unit/string pairs but this can't be resolved\n // when loading the scale (adapters are loaded afterward), so let's populate\n // missing formats on update\n mergeIf(time.displayFormats, adapter.formats());\n\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n\n super.init(scaleOpts);\n\n this._normalized = opts.normalized;\n }\n\n /**\n\t * @param {*} raw\n\t * @param {number?} [index]\n\t * @return {number}\n\t */\n parse(raw, index) { // eslint-disable-line no-unused-vars\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n // eslint-disable-next-line prefer-const\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n\n /**\n\t\t * @param {object} bounds\n\t\t */\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n\n // If we have user provided `min` and `max` labels / data bounds can be ignored\n if (!minDefined || !maxDefined) {\n // Labels are always considered, when user did not force bounds\n _applyBounds(this._getLabelBounds());\n\n // If `bounds` is `'ticks'` and `ticks.source` is `'labels'`,\n // data bounds are ignored (and don't need to be determined)\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n\n min = isFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n\n // Make sure that max is strictly higher than min (required by the timeseries lookup table)\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n\n /**\n\t * @private\n\t */\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n\n /**\n\t * @return {object[]}\n\t */\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n\n const min = this.min;\n const max = this.max;\n\n const ticks = _filterBetween(timestamps, min, max);\n\n // PRIVATE\n // determineUnitForFormatting relies on the number of ticks so we don't use it when\n // autoSkip is enabled because we don't yet know what the final number of ticks will be\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n\n if (options.reverse) {\n ticks.reverse();\n }\n\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n\n afterAutoSkip() {\n // Offsets for bar charts need to be handled with the auto skipped\n // ticks. Once ticks have been skipped, we re-compute the offsets.\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n\n /**\n\t * Returns the start and end offsets from edges in the form of {start, end}\n\t * where each value is a relative width to the scale and ranges between 0 and 1.\n\t * They add extra margins on the both sides by scaling down the original scale.\n\t * Offsets are added when the `offset` option is true.\n\t * @param {number[]} timestamps\n\t * @protected\n\t */\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n\n /**\n\t * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n\t * `minor` unit using the given scale time `options`.\n\t * Important: this method can return ticks outside the min and max range, it's the\n\t * responsibility of the calling code to clamp values if needed.\n\t * @private\n\t */\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n // @ts-ignore\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n\n // For 'week' unit, handle the first day of week option\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n\n // Align first ticks on unit\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n\n // Prevent browser from freezing in case user options request millions of milliseconds\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n\n // @ts-ignore\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n\n /**\n\t * @param {number} value\n\t * @return {string}\n\t */\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n\n /**\n\t * @param {number} value\n\t * @param {string|undefined} format\n\t * @return {string}\n\t */\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n\n /**\n\t * Function to format an individual tick mark\n\t * @param {number} time\n\t * @param {number} index\n\t * @param {object[]} ticks\n\t * @param {string|undefined} [format]\n\t * @return {string}\n\t * @private\n\t */\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n\n if (formatter) {\n return call(formatter, [time, index, ticks], this);\n }\n\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n\n /**\n\t * @param {object[]} ticks\n\t */\n generateTickLabels(ticks) {\n let i, ilen, tick;\n\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n\n /**\n\t * @param {string} label\n\t * @return {{w:number, h:number}}\n\t * @private\n\t */\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n\n /**\n\t * @param {number} exampleTime\n\t * @return {number}\n\t * @private\n\t */\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n\n // pick the longest format (milliseconds) for guestimation\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n // subtract 1 - if offset then there's one less label than tick\n // if not offset then one half label padding is added to each end leaving room for one less label\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n\n /**\n\t * @protected\n\t */\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const metas = this.getMatchingVisibleMetas();\n\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n\n return (this._cache.data = this.normalize(timestamps));\n }\n\n /**\n\t * @protected\n\t */\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n\n /**\n\t * @param {number[]} values\n\t * @protected\n\t */\n normalize(values) {\n // It seems to be somewhat faster to do sorting first\n return _arrayUnique(values.sort(sorter));\n }\n}\n","import TimeScale from './scale.time.js';\nimport {_lookupByKey} from '../helpers/helpers.collection.js';\n\n/**\n * Linearly interpolates the given source `val` using the table. If value is out of bounds, values\n * at edges are used for the interpolation.\n * @param {object} table\n * @param {number} val\n * @param {boolean} [reverse] lookup time based on position instead of vice versa\n * @return {object}\n */\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\n\nclass TimeSeriesScale extends TimeScale {\n\n static id = 'timeseries';\n\n /**\n * @type {any}\n */\n static defaults = TimeScale.defaults;\n\n /**\n\t * @param {object} props\n\t */\n constructor(props) {\n super(props);\n\n /** @type {object[]} */\n this._table = [];\n /** @type {number} */\n this._minPos = undefined;\n /** @type {number} */\n this._tableRange = undefined;\n }\n\n /**\n\t * @protected\n\t */\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n\n /**\n\t * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n\t * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n\t * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n\t * extremity (left + width or top + height). Note that it would be more optimized to directly\n\t * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n\t * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n\t * @param {number[]} timestamps\n\t * @return {object[]}\n\t * @protected\n\t */\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n\n if (items.length < 2) {\n // In case there is less that 2 timestamps between min and max, the scale is defined by min and max\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n\n // only add points that breaks the scale linearity\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n\n /**\n\t * Returns all timestamps\n\t * @return {number[]}\n\t * @private\n\t */\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n\n if (timestamps.length) {\n return timestamps;\n }\n\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n // If combining labels and data (data might not contain all labels),\n // we need to recheck uniqueness and sort\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n\n return timestamps;\n }\n\n /**\n\t * @param {number} value - Milliseconds since epoch (1 January 1970 00:00:00 UTC)\n\t * @return {number}\n\t */\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n\n /**\n\t * @param {number} pixel\n\t * @return {number}\n\t */\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nexport default TimeSeriesScale;\n","import type { MouseEvent } from 'react';\nimport type {\n ChartType,\n ChartData,\n DefaultDataPoint,\n ChartDataset,\n ChartOptions,\n Chart,\n} from 'chart.js';\n\nimport type { ForwardedRef } from './types.js';\n\nconst defaultDatasetIdKey = 'label';\n\nexport function reforwardRef(ref: ForwardedRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport function setOptions<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(chart: Chart, nextOptions: ChartOptions) {\n const options = chart.options;\n\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\n\nexport function setLabels<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextLabels: TLabel[] | undefined\n) {\n currentData.labels = nextLabels;\n}\n\nexport function setDatasets<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextDatasets: ChartDataset[],\n datasetIdKey = defaultDatasetIdKey\n) {\n const addedDatasets: ChartDataset[] = [];\n\n currentData.datasets = nextDatasets.map(\n (nextDataset: Record) => {\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find(\n (dataset: Record) =>\n dataset[datasetIdKey] === nextDataset[datasetIdKey]\n );\n\n // There is no original to update, so simply add new one\n if (\n !currentDataset ||\n !nextDataset.data ||\n addedDatasets.includes(currentDataset)\n ) {\n return { ...nextDataset } as ChartDataset;\n }\n\n addedDatasets.push(currentDataset);\n\n Object.assign(currentDataset, nextDataset);\n\n return currentDataset;\n }\n );\n}\n\nexport function cloneData<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(data: ChartData, datasetIdKey = defaultDatasetIdKey) {\n const nextData: ChartData = {\n labels: [],\n datasets: [],\n };\n\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n\n return nextData;\n}\n\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getDatasetAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'dataset',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'nearest',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementsAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'index',\n { intersect: true },\n false\n );\n}\n","import React, { useEffect, useRef, forwardRef } from 'react';\nimport { Chart as ChartJS } from 'chart.js';\nimport type { ChartType, DefaultDataPoint } from 'chart.js';\n\nimport type { ForwardedRef, ChartProps, BaseChartComponent } from './types.js';\nimport {\n reforwardRef,\n cloneData,\n setOptions,\n setLabels,\n setDatasets,\n} from './utils.js';\n\nfunction ChartComponent<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n props: ChartProps,\n ref: ForwardedRef>\n) {\n const {\n height = 150,\n width = 300,\n redraw = false,\n datasetIdKey,\n type,\n data,\n options,\n plugins = [],\n fallbackContent,\n updateMode,\n ...canvasProps\n } = props as ChartProps;\n const canvasRef = useRef(null);\n const chartRef = useRef();\n\n const renderChart = () => {\n if (!canvasRef.current) return;\n\n chartRef.current = new ChartJS(canvasRef.current, {\n type,\n data: cloneData(data, datasetIdKey),\n options: options && { ...options },\n plugins,\n });\n\n reforwardRef(ref, chartRef.current);\n };\n\n const destroyChart = () => {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(() => {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n\n useEffect(() => {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update(updateMode);\n }\n }, [redraw, options, data.labels, data.datasets, updateMode]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n destroyChart();\n setTimeout(renderChart);\n }, [type]);\n\n useEffect(() => {\n renderChart();\n\n return () => destroyChart();\n }, []);\n\n return (\n \n {fallbackContent}\n \n );\n}\n\nexport const Chart = forwardRef(ChartComponent) as BaseChartComponent;\n","import React, { forwardRef } from 'react';\nimport {\n Chart as ChartJS,\n LineController,\n BarController,\n RadarController,\n DoughnutController,\n PolarAreaController,\n BubbleController,\n PieController,\n ScatterController,\n} from 'chart.js';\nimport type { ChartType, ChartComponentLike } from 'chart.js';\n\nimport type {\n ChartProps,\n ChartJSOrUndefined,\n TypedChartComponent,\n} from './types.js';\nimport { Chart } from './chart.js';\n\nfunction createTypedChart(\n type: T,\n registerables: ChartComponentLike\n) {\n ChartJS.register(registerables);\n\n return forwardRef, Omit, 'type'>>(\n (props, ref) => \n ) as TypedChartComponent;\n}\n\nexport const Line = /* #__PURE__ */ createTypedChart('line', LineController);\n\nexport const Bar = /* #__PURE__ */ createTypedChart('bar', BarController);\n\nexport const Radar = /* #__PURE__ */ createTypedChart('radar', RadarController);\n\nexport const Doughnut = /* #__PURE__ */ createTypedChart(\n 'doughnut',\n DoughnutController\n);\n\nexport const PolarArea = /* #__PURE__ */ createTypedChart(\n 'polarArea',\n PolarAreaController\n);\n\nexport const Bubble = /* #__PURE__ */ createTypedChart(\n 'bubble',\n BubbleController\n);\n\nexport const Pie = /* #__PURE__ */ createTypedChart('pie', PieController);\n\nexport const Scatter = /* #__PURE__ */ createTypedChart(\n 'scatter',\n ScatterController\n);\n","import React, { useRef } from 'react';\r\nimport { Line } from 'react-chartjs-2';\r\nimport Formatting from \"utils/Formatting.js\";\r\nimport {\r\n Chart as ChartJS,\r\n CategoryScale,\r\n LinearScale,\r\n PointElement,\r\n LineElement,\r\n Title,\r\n Tooltip,\r\n Legend,\r\n} from 'chart.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nfunction GraphSlider({ data, totalCoinsEarned, monthly }) {\r\n\r\n ChartJS.register(\r\n CategoryScale,\r\n LinearScale,\r\n PointElement,\r\n PointElement,\r\n LineElement,\r\n Title,\r\n Tooltip,\r\n Legend\r\n );\r\n\r\n const chartData = data.map(each => each.amount.toString() );\r\n const chartLabels = monthly ?\r\n data.map(each => {\r\n const month = each.month;\r\n return month;\r\n }) :\r\n data.map(each => (each.day !== undefined ? each.day.split(\"/\")[0] : \"\"));\r\n\r\n const reff = useRef();\r\n const lineRef = useRef();\r\n\r\n return (\r\n

    \r\n ([each, chartData[idx] ])),\r\n borderColor: '#FFF',\r\n backgroundColor: '#FFF',\r\n pointStyle: 'circle',\r\n pointRadius: 1,\r\n pointHoverRadius: 1,\r\n fill: true,\r\n }]\r\n }}\r\n options={{\r\n scales: {\r\n y: {\r\n min: 0,\r\n beginAtZero: true,\r\n grid: {\r\n display: false\r\n },\r\n ticks: {\r\n color: 'rgba(255, 255, 255, 0.5)',\r\n opacity: 0.5,\r\n }\r\n },\r\n x: {\r\n beginAtZero: true,\r\n grid: {\r\n display: false\r\n },\r\n ticks: {\r\n color: 'rgba(255, 255, 255, 0.5)',\r\n opacity: 0.5,\r\n }\r\n }\r\n },\r\n plugins: {\r\n title: {\r\n color: 'rgba(255, 255, 255, 0.5)',\r\n opacity: 0.5,\r\n display: true,\r\n font: {\r\n family: 'Poppins',\r\n style: 'normal',\r\n weight: 500,\r\n size: '12px',\r\n },\r\n text: (ctx) => [Content.getValue(\"my_team_total_earnings\"), (totalCoinsEarned) ? Formatting.formatTreatCoinAmount(totalCoinsEarned) + \" \" + Content.getValue(\"treat_coin_abbreviation\") : \"\" ]\r\n },\r\n tooltips: {\r\n enabled: true\r\n },\r\n hover: {\r\n mode: null\r\n },\r\n events: [],\r\n legend: {\r\n display: false\r\n },\r\n },\r\n onClick: (event, elements, chart) => {\r\n reff.current && (reff.current.style.top=event.y-15+\"px\");\r\n reff.current && (reff.current.style.left=event.x-40+\"px\");\r\n },\r\n }}\r\n />\r\n
    \r\n );\r\n}\r\n\r\nexport default GraphSlider;","import React from 'react';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst coinsYear = new Date().getUTCFullYear();\r\nconst coinsMonth = new Date().getUTCMonth() + 1;\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst registrationMonth = UserData.getItem(userDataKeys.registration_month);\r\nconst registrationYear = UserData.getItem(userDataKeys.registration_year);\r\n\r\nfunction generateMonthsList(firstMonth, firstYear) {\r\n let lastYear = coinsYear;\r\n let lastMonth = coinsMonth;\r\n const months = [];\r\n months.push({ \r\n monthAndYear: 0, \r\n monthName: Content.getValue(\"lifetime\"),\r\n });\r\n\r\n while (lastYear > firstYear || (lastYear === +firstYear && lastMonth >= firstMonth)) {\r\n months.push({ \r\n monthAndYear: lastMonth + '-' + lastYear, \r\n monthName: new Date(lastYear, lastMonth - 1, 1).toLocaleString(Content.getValue(\"date_localization\"), { month: 'long' }) + ' ' + lastYear \r\n });\r\n if (lastMonth > 1) {\r\n lastMonth--;\r\n }\r\n else {\r\n lastMonth = 12;\r\n lastYear--;\r\n }\r\n }\r\n\r\n return (\r\n months.map(({ monthAndYear, monthName }) => (\r\n \r\n ))\r\n );\r\n}\r\n\r\nexport default function ReferralSelect({ value, changeHandler }) {\r\n \r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n}","import React, { useState, useEffect } from 'react';\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport StatsTab from 'components/referrals/Stats_Tab.js';\r\nimport GraphSlider from 'components/widgets/Graph_Slider.js';\r\nimport ApiFacade from 'ApiFacade';\r\nimport ReferralSelect from 'components/referrals/Referral_Select.js';\r\n//import { GetRefStatUrl } from 'utils/Get_Ref_Stat_Url.js';\r\nimport NewsTrack from 'components/live_news/News_Track.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\n//import { Api } from '@mui/icons-material';\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n//const userDataKeys = configuration.user_data_keys;\r\n\r\nconst coinsYear = new Date().getUTCFullYear();\r\nconst coinsMonth = new Date().getUTCMonth() + 1;\r\n\r\nconst MyTeamReferrals = () => {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n const [selectValue, setSelectValue] = useState(coinsMonth + '-' + coinsYear);\r\n const [state, setState] = useState({\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n userStats: {},\r\n coinsHistory: []\r\n });\r\n //const loadURL = GetRefStatUrl(selectValue);\r\n \r\n\r\n\r\n useEffect(() => {\r\n if (ApiFacade.isLoggedIn()){\r\n let promise = null;\r\n if (+selectValue===0) {\r\n promise = ApiFacade.lifetimeTeamStats();\r\n } else{\r\n const [month, year] = selectValue.split('-');\r\n promise = ApiFacade.monthlyTeamStats(month, year);\r\n }\r\n\r\n promise.then(function (res) {\r\n if (res.unauthorized) {\r\n setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n }\r\n else if (!res.ok) {\r\n setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n } else {\r\n let result = res.response;\r\n setState({\r\n isLoaded: true,\r\n userStats: result.userStats,\r\n coinsHistory: result.coinsHistory\r\n });\r\n }\r\n },\r\n (error) => {\r\n setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n .catch(error => setState({ isLoaded: true, error }));\r\n }\r\n }, [selectValue]);\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.my_team_referrals });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.my_team_referrals.title}

    \r\n
    \r\n
    \r\n setSelectValue(value)}\r\n />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default MyTeamReferrals;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Earnings from 'utils/Earnings.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport CoinEarning from 'components/earnings/Coin_Earning.js';\r\nimport Content from 'utils/Content.js';\r\nimport CoinPayout from 'components/payouts/Coin_Payout.js';\r\nimport { Spinner } from 'react-spinners-css';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nlet thisComponent;\r\nlet options;\r\nlet earningCardsColors;\r\nlet earningCardsColorsArray;\r\nconst earningAvailabilityIds = configuration.earning_availability_ids;\r\n\r\nclass CoinEarningsList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n //this.myEarningsHistoryURL = myEarningsHistoryURL;\r\n this.currentYear = new Date().getUTCFullYear();\r\n this.currentMonth = new Date().getUTCMonth() + 1;\r\n this.coinsYear = this.currentYear;\r\n this.coinsMonth = this.currentMonth;\r\n this.minutesOffset = new Date().getTimezoneOffset() * (-1);\r\n this.coinsMonthDisplay = new Date(this.coinsYear, this.coinsMonth - 1, 1).toLocaleString(Content.getValue(\"date_localization\"), { month: 'long' });\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n waitingToBeValidated: null,\r\n coinsEarnings: null,\r\n monthTotal: null,\r\n filter: null,\r\n registrationMonth: null,\r\n registrationYear: null,\r\n lifetimeCoinsEarned: null,\r\n availableToUse: null,\r\n competitionValid: null,\r\n coinsUsed: null,\r\n ranking: null,\r\n displayedItems: 5,\r\n totalItems: 5\r\n };\r\n this.handleScroll = function (event) {\r\n\r\n let isScrolling;\r\n if (isScrolling !== null) window.clearTimeout(isScrolling);\r\n\r\n isScrolling = setTimeout(function () {\r\n let element = document.getElementById('scroll-to-top-button');\r\n let docViewTop = window.scrollY;\r\n let docViewBottom = docViewTop + window.innerHeight;\r\n\r\n let elemTop = element?.offsetTop || 0;\r\n let elemBottom = elemTop + element?.offsetHeight || 0;\r\n\r\n let scrollingTriggered = ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));\r\n\r\n if (scrollingTriggered) {\r\n thisComponent.increaseDisplayedItems();\r\n }\r\n\r\n }, 50);\r\n\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n increaseDisplayedItems() {\r\n\r\n const {displayedItems, totalItems} = this.state;\r\n\r\n let extraElements = 20;\r\n\r\n thisComponent.setState({\r\n displayedItems: Math.min(displayedItems + extraElements, totalItems)\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchScoresHistory();\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.handleScroll, true);\r\n }\r\n\r\n fetchScoresHistory() {\r\n let platform = Platform.getPlatformName();\r\n let req = ApiFacade.myEarningsHistory(this.coinsMonth,this.coinsYear, this.minutesOffset, platform);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n waitingToBeValidated: result.waitingToBeValidated,\r\n coinsEarnings: result.coinsEarnings,\r\n monthTotal: result.monthTotal,\r\n filter: null,\r\n registrationMonth: result.registrationMonth,\r\n registrationYear: result.registrationYear,\r\n lifetimeCoinsEarned: result.lifetimeCoinsEarned,\r\n availableToUse: result.availableToUse,\r\n competitionValid: result.competitionValid,\r\n coinsUsed: result.coinsUsed,\r\n ranking: result.ranking,\r\n totalItems: result.coinsEarnings.length,\r\n });\r\n } else if (res.unauthorized) {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n\r\n changeCoinsMonth() {\r\n let monthSelection = document.getElementById('coins-month').value;\r\n \r\n this.coinsMonth = parseInt(monthSelection.split('-')[0]);\r\n this.coinsYear = parseInt(monthSelection.split('-')[1]);\r\n this.coinsMonthDisplay = new Date(this.coinsYear, this.coinsMonth - 1, 1).toLocaleString(Content.getValue(\"date_localization\"), { month: 'long' });\r\n\r\n this.setState({\r\n error: null,\r\n isLoaded: false, \r\n waitingToBeValidated: null,\r\n monthTotal: null,\r\n filter: null,\r\n coinsEarnings: null,\r\n lifetimeCoinsEarned: null,\r\n availableToUse: null,\r\n competitionValid: null,\r\n coinsUsed: null,\r\n ranking: null,\r\n displayedItems: 5,\r\n totalItems: 5\r\n });\r\n this.fetchScoresHistory();\r\n }\r\n\r\n generateMonthsList(firstMonth, firstYear) {\r\n let lastYear = thisComponent.currentYear;\r\n let lastMonth = thisComponent.currentMonth;\r\n let months = [];\r\n while (lastYear > firstYear || (lastYear === firstYear && lastMonth >= firstMonth)) {\r\n months.push({ monthAndYear: lastMonth + '-' + lastYear, monthName: new Date(lastYear, lastMonth - 1, 1).toLocaleString(Content.getValue(\"date_localization\"), { month: 'long' }) + ' ' + lastYear });\r\n if (lastMonth > 1) {\r\n lastMonth--;\r\n }\r\n else {\r\n lastMonth = 12;\r\n lastYear--;\r\n }\r\n }\r\n return (\r\n months.map(item => (\r\n \r\n ))\r\n );\r\n }\r\n\r\n generateOptionsList() {\r\n const fields = Object.values(options);\r\n\r\n return (\r\n fields.map(item => (\r\n \r\n ))\r\n );\r\n }\r\n\r\n refreshCoinsList() {\r\n thisComponent.setState(prev => ({ ...prev, isLoaded: false, }));\r\n\r\n thisComponent.fetchScoresHistory();\r\n }\r\n\r\n filterHandler(value) {\r\n const { filter } = thisComponent.state;\r\n if (filter === value) return;\r\n thisComponent.setState(prev => ({ ...prev, filter: value }));\r\n }\r\n\r\n render() {\r\n earningCardsColors = Content.getValue(\"earning_cards_colors\");\r\n earningCardsColorsArray = Object.values(earningCardsColors);\r\n options = Content.getValue(\"earning_filter_options\");\r\n const { \r\n error, \r\n isLoaded, \r\n isRestricted, \r\n coinsEarnings, \r\n monthTotal, \r\n filter,\r\n lifetimeCoinsEarned, \r\n waitingToBeValidated, \r\n availableToUse, \r\n competitionValid, \r\n coinsUsed, \r\n ranking, \r\n displayedItems, \r\n registrationMonth, \r\n registrationYear \r\n } = this.state;\r\n\r\n let filteredEarnings, availableIds=[];\r\n if (filter === options.validated) availableIds = [earningAvailabilityIds[\"1\"], earningAvailabilityIds[\"2\"], earningAvailabilityIds[\"3\"]];\r\n else if (filter === options.cooking) availableIds = [earningAvailabilityIds[\"4\"]];\r\n else if (filter === options.downgraded) availableIds = [earningAvailabilityIds[\"5\"]];\r\n\r\n filteredEarnings = (!filter || filter===options.all) ? \r\n coinsEarnings :\r\n coinsEarnings.filter(each => availableIds.includes(each.coinsEarningAvailabilityID));\r\n\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (isRestricted) {\r\n return
    {Backend.loadBackendMessages().restrictedMessage}
    ;\r\n } else if (!isLoaded) {\r\n return <>\r\n
    {Backend.loadBackendMessages().loadingMessage}
    \r\n \r\n \r\n } else {\r\n let displayingThisMonth = ((this.coinsYear === this.currentYear) && (this.coinsMonth === this.currentMonth));\r\n window.addEventListener('scroll', this.handleScroll, false);\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \"Treat Earnings.showTreatCoinsValidityHint()} />\r\n
    {Formatting.format(Content.getValue(\"lifetime_treat_coins_earned_label\"), [\"(lifetimeCoinsEarned)\"], [Formatting.formatTreatCoinAmount(lifetimeCoinsEarned)])}
    \r\n
    {Formatting.format(Content.getValue(\"total_treat_coins_earned_in_month\"), [\"(month)\"], [thisComponent.coinsMonthDisplay])}
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(monthTotal)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    \r\n
    { Content.getValue(\"waiting_to_be_validated\") }
    \r\n
    \r\n
    \r\n
    {displayingThisMonth ? Content.getValue(\"treat_coins_available_to_use\") : Content.getValue(\"treat_coins_used\")}
    \r\n
    \r\n
    \r\n
    {Content.getValue(\"competition_valid_treat_coins\")}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(waitingToBeValidated)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(displayingThisMonth ? availableToUse : coinsUsed)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(competitionValid)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \"Treat Earnings.showTreatCoinsValidityHint()} />\r\n
    {Formatting.format(Content.getValue(\"lifetime_treat_coins_earned_label\"), [\"(lifetimeCoinsEarned)\"], [Formatting.formatTreatCoinAmount(lifetimeCoinsEarned)])}
    \r\n
    {Formatting.format(Content.getValue(\"total_treat_coins_earned_in_month\"), [\"(month)\"], [thisComponent.coinsMonthDisplay])}
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(monthTotal)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    { Content.getValue(\"waiting_to_be_validated\") }
    \r\n
    \r\n
    \r\n
    {displayingThisMonth ? Content.getValue(\"treat_coins_available_to_use\") : Content.getValue(\"treat_coins_used\")}
    \r\n
    \r\n
    \r\n
    {Content.getValue(\"competition_valid_treat_coins\")}
    \r\n {\r\n (!displayingThisMonth) ? \r\n (\r\n
    {Formatting.format(Content.getValue(\"earnings_ranking_label\"), [\"(ranking)\"], [Formatting.createOrdinal(ranking)])}
    \r\n ): (null)\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(waitingToBeValidated)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(displayingThisMonth ? availableToUse : coinsUsed)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(competitionValid)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Filtered by:

    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {filteredEarnings.slice(0, displayedItems).map((item, index) => item.isConversion===1 ?\r\n (\r\n \r\n ) :\r\n (\r\n \r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default CoinEarningsList;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Earnings from 'utils/Earnings.js';\r\nimport Payouts from 'utils/Payouts.js';\r\nimport CoinPayout from 'components/payouts/Coin_Payout.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nlet thisComponent;\r\n\r\nclass CoinPayoutsList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.minutesOffset = new Date().getTimezoneOffset() * (-1);\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n coinsPayouts: null,\r\n lifetimeUsableCoinsEarned: null,\r\n coinsUsed: null,\r\n availableToUse: null,\r\n displayedItems: 5,\r\n totalItems: 5,\r\n };\r\n this.handleScroll = function (event) {\r\n\r\n let isScrolling;\r\n if (isScrolling !== null) window.clearTimeout(isScrolling);\r\n\r\n isScrolling = setTimeout(function () {\r\n let element = document.getElementById('scroll-to-top-button');\r\n let docViewTop = window.scrollY;\r\n let docViewBottom = docViewTop + window.innerHeight;\r\n\r\n let elemTop = element.offsetTop;\r\n let elemBottom = elemTop + element.offsetHeight;\r\n\r\n let scrollingTriggered = ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));\r\n\r\n if (scrollingTriggered) {\r\n thisComponent.increaseDisplayedItems();\r\n }\r\n\r\n }, 50);\r\n\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n increaseDisplayedItems() {\r\n\r\n const { displayedItems, totalItems } = this.state;\r\n\r\n let extraElements = 20;\r\n\r\n thisComponent.setState({\r\n displayedItems: Math.min(displayedItems + extraElements, totalItems)\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchPayoutsHistory();\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.handleScroll, true);\r\n }\r\n\r\n fetchPayoutsHistory() {\r\n const req = ApiFacade.myPayoutHistory(this.minutesOffset);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n coinsPayouts: result.coinsPayouts,\r\n lifetimeUsableCoinsEarned: result.lifetimeUsableCoinsEarned,\r\n availableToUse: result.availableToUse,\r\n coinsUsed: result.coinsUsed,\r\n totalItems: result.coinsPayouts.length\r\n });\r\n } else if (res.unauthorized){\r\n thisComponent.setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, isRestricted, coinsPayouts, lifetimeUsableCoinsEarned, availableToUse, coinsUsed, displayedItems } = this.state;\r\n\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (isRestricted) {\r\n return
    {Backend.loadBackendMessages().restrictedMessage}
    ;\r\n }\r\n else if (!isLoaded) {\r\n return
    {Backend.loadBackendMessages().loadingMessage}
    ;\r\n } else {\r\n window.addEventListener('scroll', this.handleScroll, false);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \"Treat Earnings.showTreatCoinsValidityHint()} />\r\n
    {Content.getValue(\"lifetime_usable_treat_coins_earned_label\")}
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(lifetimeUsableCoinsEarned)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    \r\n
    {Content.getValue(\"treat_coins_used\")}
    \r\n
    \r\n
    \r\n
    {Content.getValue(\"treat_coins_available_to_use\")}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(coinsUsed)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(availableToUse)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \"Treat Earnings.showTreatCoinsValidityHint()} />\r\n
    {Content.getValue(\"lifetime_usable_treat_coins_earned_label\")}
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(lifetimeUsableCoinsEarned)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    {Content.getValue(\"treat_coins_used\")}
    \r\n
    \r\n
    \r\n
    {Content.getValue(\"treat_coins_available_to_use\")}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(coinsUsed)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    {Formatting.formatTreatCoinAmount(availableToUse)}
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    Payouts.showMyPayoutsHint()}>{Content.getValue(\"my_payouts_label\")}
    \r\n
    \r\n {coinsPayouts.slice(0, displayedItems).map((item) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n\r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default CoinPayoutsList;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Alerts from 'utils/Alerts.js';\r\nimport Content from 'utils/Content.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const emailSubscriptionSettingsURL = backendURLs.emailSubscriptionSettingsURL;\r\n//const updateEmailSubscriptionSettingsURL = backendURLs.updateEmailSubscriptionSettingsURL;\r\n\r\nlet thisComponent;\r\n\r\n\r\nclass EmailSubscriptionSettings extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n //this.loadURL = emailSubscriptionSettingsURL;\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n emailSubscriptionSettings: null\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n componentDidMount() {\r\n const req = ApiFacade.emailSubscriptionSettings();\r\n req.then(\r\n function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n subscriptionSettings: result.subscriptionSettings\r\n });\r\n } else if (res.unauthorized){\r\n thisComponent.setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, isRestricted, subscriptionSettings } = this.state;\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (isRestricted) {\r\n return (null);\r\n } else if (!isLoaded) {\r\n return
    {Backend.loadBackendMessages().loadingMessage}
    ;\r\n } else {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"subscription_settings_email\")}

    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n\r\n updateEmailSubscriptionSettings() {\r\n let receiveNotificationsEmailInput = document.getElementById('receiveNotificationsEmail');\r\n const req = ApiFacade.updateEmailSubscriptionSettings(receiveNotificationsEmailInput.checked);\r\n\r\n req.then(function(res){\r\n let result = res.response;\r\n let message = result.message;\r\n if (res.ok) {\r\n Alerts.showSuccessAlert(Content.getValue(\"email_subscription_settings_updated\"));\r\n }\r\n else {\r\n Alerts.showErrorAlert(message);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default EmailSubscriptionSettings;","import React from 'react';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nclass Earnings extends React.Component {\r\n\r\n static showTreatCoinsValidityHint() {\r\n\r\n let swalHTML = \"

    \" + Content.getValue(\"treat_coins_validity_hint_1\") + \"

    \";\r\n swalHTML += \"

    \" + Content.getValue(\"treat_coins_validity_hint_2\") + \"

    \";\r\n\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"treat_coins_validity_title\") + '

    ',\r\n html: swalHTML,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'payment-method-hint-confirm-button',\r\n closeButton: 'swal2-payment-method-hint-close'\r\n }\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n\r\nexport default Earnings;","import React from 'react';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\nimport UserData from 'User_Data.js';\r\nimport { RedirectWithLang } from 'utils/RedirectWithLang.js';\r\n\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nclass CoinEarning extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.isHomepage = props.isHomepage;\r\n this.isMyEarningsPage = props.isMyEarningsPage;\r\n this.coinsEarningAvailabilityID = props.coinsEarningAvailabilityID;\r\n this.providerName = props.providerName;\r\n this.logoURL = props.logoURL;\r\n this.description = props.description;\r\n this.referral = props.referral;\r\n this.referralType = props.referralType;\r\n this.amount = props.amount;\r\n this.USDAmount = props.USDAmount;\r\n this.date = props.date;\r\n this.time = props.time;\r\n this.transactionID = props.transactionID;\r\n this.referralEarningID = props.referralEarningID;\r\n this.coinsEarningValidity = props.coinsEarningValidity;\r\n this.moreOffersNumber = props.moreOffersNumber;\r\n this.appName = props.appName;\r\n this.position = props.position;\r\n this.bgColor = props.bgColor;\r\n this.isConversion = props.isConversion\r\n }\r\n\r\n render() {\r\n const langForUrl =\r\n UserData.getItem(userDataKeys.language)?.slice(0, 2) !== 'en'\r\n ? '/' + UserData.getItem(userDataKeys.language)?.slice(0, 2)\r\n : null;\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const playgroundOption = menuOptions.playground;\r\n const signObject = {\r\n \"1\": this.amount >= 0.00 ? \"+\" : \"\",\r\n \"2\": this.amount >= 0.00 ? \"+\" : \"\",\r\n \"3\": \"-->\",\r\n \"4\": this.amount >= 0.00 ? \"+\" : \"\",\r\n \"5\": \"\",\r\n }\r\n const coinSign = signObject[this.coinsEarningAvailabilityID];\r\n let coinsEarningDescription;\r\n if (this.referralEarningID !== null) {\r\n if (this.referral === null) {\r\n coinsEarningDescription = Formatting.format(Content.getValue(\"referral_completed_offer_inactive\"), [\"(offerDescription)\"], [this.description]);\r\n }\r\n else {\r\n coinsEarningDescription = Formatting.format(Content.getValue(\"referral_completed_offer\"), [\"(referral)\", \"(offerDescription)\"], [this.referral, this.description]);\r\n }\r\n }\r\n else coinsEarningDescription = this.description;\r\n\r\n const bgColor = this.bgColor;\r\n const isMyEarningsPage = this.isMyEarningsPage;\r\n\r\n return (\r\n <>\r\n {\r\n isMyEarningsPage ?\r\n (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n \"Provider\r\n
    \r\n
    \r\n
    {Formatting.format(Content.getValue(\"earning_unique_id\"), [\"(uniqueID)\"], [this.transactionID])}
    \r\n {(this.referralEarningID !== null) ?\r\n (
    {Formatting.format(Content.getValue(\"referral_earning_unique_id\"), [\"(uniqueID)\"], [this.referralEarningID])}
    ) : (null)\r\n\r\n }\r\n
    {coinsEarningDescription}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {this.date}
    {this.time}
    \r\n
    \r\n
    \r\n {coinSign}\r\n {\" \"}\r\n {Formatting.formatTreatCoinAmount(this.amount)} \r\n {\" \"}\r\n {Content.getValue(\"treat_coins\")}\r\n {\r\n (this.position !== null) ?\r\n (
    {Formatting.format(Content.getValue(\"worth_earning_amount\") ,[\"(amount)\"], [Formatting.formatUSDAmount(this.USDAmount, true)])}
    ) :\r\n (null)\r\n }\r\n
    ({ Content.getValue(\"earning_availabilities\")[this.coinsEarningAvailabilityID.toString()]})
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {(this.moreOffersNumber > 0) ? (\r\n UserData.setItem(userDataKeys.open_earning_list, true)\r\n }}\r\n to={`${playgroundOption.url}#${this.appName.replaceAll(\"'\", \"\").replaceAll(\"+\", \"\").replaceAll(\":\", \"_\").replaceAll(\" \", \"_\").replaceAll(\".\", \"_\").replace(\"__\", \"_\").toLowerCase()}`}\r\n text={Formatting.format(Content.getValue(\"more_offers_earning\"), [\"(moreOffersNumber)\"], [this.moreOffersNumber])}\r\n >\r\n \r\n ): (null)}\r\n
    \r\n
    \r\n \r\n ) : \r\n null\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n \"Provider\r\n
    \r\n
    \r\n {coinSign}\r\n {\" \"}\r\n {Formatting.formatTreatCoinAmount(this.amount)} \r\n {\" \"}\r\n {Content.getValue(\"treat_coins\")}\r\n {\r\n (this.position !== null) ?\r\n (
    {Formatting.format(Content.getValue(\"worth_earning_amount\") ,[\"(amount)\"], [Formatting.formatUSDAmount(this.USDAmount, true)])}
    ) :\r\n (null)\r\n }\r\n
    ({ Content.getValue(\"earning_availabilities\")[this.coinsEarningAvailabilityID.toString()]})
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    {Formatting.format(Content.getValue(\"earning_unique_id\"), [\"(uniqueID)\"], [this.transactionID])}
    \r\n {(this.referralEarningID !== null) ?\r\n (
    {Formatting.format(Content.getValue(\"referral_earning_unique_id\"), [\"(uniqueID)\"], [this.referralEarningID])}
    ) : (null)\r\n\r\n }\r\n
    {coinsEarningDescription}
    \r\n
    \r\n
    \r\n
    {this.date}
    {this.time}
    \r\n
    \r\n
    \r\n\r\n {(this.moreOffersNumber > 0) ? (\r\n UserData.setItem(userDataKeys.open_earning_list, true)\r\n }}\r\n to={`${playgroundOption.url}#${this.appName.replaceAll(\"'\", \"\").replaceAll(\"+\", \"\").replaceAll(\":\", \"_\").replaceAll(\" \", \"_\").replaceAll(\".\", \"_\").replace(\"__\", \"_\").toLowerCase()}`}\r\n text={Formatting.format(Content.getValue(\"more_offers_earning\"), [\"(moreOffersNumber)\"], [this.moreOffersNumber])}\r\n >\r\n \r\n ): (null)}\r\n
    \r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default CoinEarning;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst payoutStatutes = configuration.payout_statuses;\r\n\r\nclass CoinPayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.isHomepage = props.isHomepage;\r\n this.isEarning = props.isEarning;\r\n this.isMyPayoutsPage = props.isMyPayoutsPage;\r\n this.bgColor = props.bgColor;\r\n this.isConversion = props.isConversion;\r\n this.state ={\r\n amount: props.amount,\r\n targetAmount: props.targetAmount,\r\n USDAmount: props.USDAmount,\r\n status: props.status,\r\n transactionID: props.transactionID,\r\n platform: props.platform,\r\n date: props.date,\r\n time: props.time,\r\n isConversion: props.isConversion,\r\n };\r\n }\r\n\r\n render() {\r\n const { \r\n amount,\r\n targetAmount,\r\n USDAmount,\r\n status,\r\n transactionID,\r\n platform,\r\n date,\r\n time,\r\n isConversion\r\n } = this.state;\r\n\r\n const imageUrl = isConversion ?\r\n Images.imageURL(\"robot-delete-account-icon.png\") :\r\n Images.imageURL('payouts/' + platform.toLowerCase() + '.png');\r\n const actionAmount = isConversion ?\r\n targetAmount :\r\n USDAmount;\r\n\r\n const bgColor = this.bgColor;\r\n const isMyPayoutsPage = this.isMyPayoutsPage;\r\n\r\n return (\r\n <>\r\n {\r\n isMyPayoutsPage ?\r\n (\r\n
    \r\n
    \r\n
    \r\n \"Reward\r\n
    \r\n
    \r\n {\r\n isConversion ?\r\n
    {Formatting.format(Content.getValue(\"coin_conversion_entry\"), [\"(usdAmount)\", \"(treatCoins)\"], [amount.toLocaleString(), actionAmount.toLocaleString()])}
    :\r\n
    {Formatting.format(Content.getValue(\"coin_payout_entry\"), [\"(usdAmount)\", \"(treatCoins)\", \"(platform)\"], [Formatting.formatUSDAmount(actionAmount, true), Formatting.formatTreatCoinAmount(amount), platform])}
    \r\n }\r\n
    {Formatting.format(Content.getValue(\"payout_transaction_id\"), [\"(transactionID)\"], [transactionID])}
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n !isConversion ?\r\n {Content.getValue(\"payout_statuses\")[status.toString()]} :\r\n null\r\n }\r\n {(status !== payoutStatutes.pending && !isConversion) ? Content.getValue(\"at_label\") : (null)} {date}, {time}\r\n
    \r\n {\r\n (status === payoutStatutes.rejected) ? \r\n (\r\n
    {Formatting.format(Content.getValue(\"treatcoins_returned_to_balance\"), [\"(treatCoins)\"], [Formatting.formatTreatCoinAmount(amount)])}
    \r\n ) : \r\n (null)\r\n }\r\n
    \r\n
    \r\n ) :\r\n null\r\n }\r\n\r\n
    \r\n
    \r\n {\r\n isConversion ?\r\n \"Reward :\r\n \"Reward\r\n }\r\n
    \r\n
    \r\n {\r\n isConversion ?\r\n
    {Formatting.format(Content.getValue(\"coin_conversion_entry\"), [\"(usdAmount)\", \"(treatCoins)\"], [amount.toLocaleString(), actionAmount.toLocaleString()])}
    :\r\n
    {Formatting.format(Content.getValue(\"coin_payout_entry\"), [\"(usdAmount)\", \"(treatCoins)\", \"(platform)\"], [Formatting.formatUSDAmount(actionAmount, true), Formatting.formatTreatCoinAmount(amount), platform])}
    \r\n }\r\n
    {Formatting.format(Content.getValue(\"payout_transaction_id\"), [\"(transactionID)\"], [transactionID])}
    \r\n
    \r\n {\r\n !isConversion ?\r\n {Content.getValue(\"payout_statuses\")[status.toString()]} :\r\n null\r\n }\r\n {(status !== payoutStatutes.pending && !isConversion) ? Content.getValue(\"at_label\") : (null)} {date}, {time}\r\n
    \r\n {\r\n (status === payoutStatutes.rejected) ? \r\n (\r\n
    {Formatting.format(Content.getValue(\"treatcoins_returned_to_balance\"), [\"(treatCoins)\"], [Formatting.formatTreatCoinAmount(amount)])}
    \r\n ) : \r\n (null)\r\n }\r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default CoinPayout;","import React from 'react';\r\nimport ScrollToTop from 'components/widgets/Scroll_To_Top.js';\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport CoinEarningsList from 'components/earnings/Coin_Earnings_List.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport NewsTrack from 'components/live_news/News_Track.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nclass MyTreatCoinEarnings extends React.Component {\r\n\r\n componentDidMount() {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.my_treatcoin_earnings });\r\n }\r\n\r\n render() {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.my_treat_coin_earnings.title}

    \r\n
    {Content.getValue(\"my_treat_coin_earnings_description\")}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default MyTreatCoinEarnings;","import React from 'react';\r\nimport Swal from 'sweetalert2';\r\nimport withReactContent from 'sweetalert2-react-content';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nconst MySwal = withReactContent(Swal);\r\n\r\nclass Payouts extends React.Component {\r\n\r\n static showMyPayoutsHint() {\r\n\r\n let swalHTML = \"

    \" + Content.getValue(\"my_payouts_hint\") + \"

    \";\r\n\r\n MySwal.fire({\r\n title: '

    ' + Content.getValue(\"my_payouts_title\") + '

    ',\r\n html: swalHTML,\r\n background: '#141629',\r\n showCloseButton: true,\r\n showConfirmButton: true,\r\n confirmButtonText: Content.getValue(\"got_it_button_text\"),\r\n customClass: {\r\n confirmButton: 'payment-method-hint-confirm-button',\r\n closeButton: 'swal2-payment-method-hint-close'\r\n }\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n\r\nexport default Payouts;","import React from 'react';\r\nimport ScrollToTop from 'components/widgets/Scroll_To_Top.js';\r\n\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport CoinPayoutsList from 'components/payouts/Coin_Payouts_List.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport NewsTrack from 'components/live_news/News_Track.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\nclass MyTreatCoinPayouts extends React.Component {\r\n\r\n componentDidMount() {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.my_treatcoin_payouts });\r\n }\r\n\r\n render() {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.my_treat_coin_payouts.title}

    \r\n
    {Content.getValue(\"my_treat_coin_payouts_description\")}
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default MyTreatCoinPayouts;","import Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport EmailSubscriptionSettings from 'components/forms/Email_Subscription_Settings.js';\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect } from \"react\";\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nconst NotificationSettings = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.notification_settings });\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.notification_settings.title}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default NotificationSettings;","import React, { memo } from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Content from 'utils/Content.js';\r\nimport Offers from 'utils/Offers.js';\r\n\r\nfunction SeeOffersButton({ data }) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default memo(SeeOffersButton);","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, {\n\tCSSProperties,\n\tElementType,\n\tMouseEvent,\n\tMutableRefObject,\n\tPureComponent,\n\tReactNode,\n\tRef,\n\tRefObject,\n} from 'react';\nimport classnames from 'classnames';\nimport debounce from 'debounce';\nimport bem from 'easy-bem';\n\nimport './style.scss';\n\nconst cn = bem('indiana-scroll-container');\n\nconst SCROLL_END_DEBOUNCE = 300;\n\nconst LEFT_BUTTON = 0;\n\nexport interface ScrollEvent {\n\texternal: boolean;\n}\n\ninterface Props {\n\tvertical?: boolean;\n\thorizontal?: boolean;\n\thideScrollbars?: boolean;\n\tactivationDistance?: number;\n\tchildren?: ReactNode;\n\tonStartScroll?: (event: ScrollEvent) => void;\n\tonScroll?: (event: ScrollEvent) => void;\n\tonEndScroll?: (event: ScrollEvent) => void;\n\tonClick?: (event: MouseEvent) => void;\n\tclassName?: string;\n\tdraggingClassName?: string;\n\tstyle?: CSSProperties;\n\tignoreElements?: string;\n\tnativeMobileScroll?: boolean;\n\tref?: ReactNode;\n\tcomponent?: ElementType;\n\tinnerRef?: Ref;\n\tstopPropagation?: boolean;\n\tbuttons?: number[];\n}\n\nexport default class ScrollContainer extends PureComponent {\n\tstatic defaultProps = {\n\t\tnativeMobileScroll: true,\n\t\thideScrollbars: true,\n\t\tactivationDistance: 10,\n\t\tvertical: true,\n\t\thorizontal: true,\n\t\tstopPropagation: false,\n\t\tstyle: {},\n\t\tcomponent: 'div',\n\t\tbuttons: [LEFT_BUTTON],\n\t};\n\tcontainer: RefObject;\n\tscrolling: boolean;\n\tstarted: boolean;\n\tpressed: boolean;\n\tisMobile: boolean;\n\tinternal: boolean;\n\n\tscrollLeft?: number;\n\tscrollTop?: number;\n\tclientX?: number;\n\tclientY?: number;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.container = React.createRef();\n\t\tthis.onEndScroll = debounce(this.onEndScroll, SCROLL_END_DEBOUNCE);\n\n\t\t// Is container scrolling now (for example by inertia)\n\t\tthis.scrolling = false;\n\t\t// Is scrolling started\n\t\tthis.started = false;\n\t\t// Is touch active or mouse pressed down\n\t\tthis.pressed = false;\n\t\t// Is event internal\n\t\tthis.internal = false;\n\n\t\t// Bind callbacks\n\t\tthis.getRef = this.getRef.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { nativeMobileScroll } = this.props;\n\t\tconst container = this.container.current;\n\n\t\twindow.addEventListener('mouseup', this.onMouseUp);\n\t\twindow.addEventListener('mousemove', this.onMouseMove);\n\t\twindow.addEventListener('touchmove', this.onTouchMove, { passive: false });\n\t\twindow.addEventListener('touchend', this.onTouchEnd);\n\n\t\t// due to https://github.com/facebook/react/issues/9809#issuecomment-414072263\n\t\tcontainer.addEventListener('touchstart', this.onTouchStart, {\n\t\t\tpassive: false,\n\t\t});\n\t\tcontainer.addEventListener('mousedown', this.onMouseDown, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\tif (nativeMobileScroll) {\n\t\t\t// We should check if it's the mobile device after page was loaded\n\t\t\t// to prevent breaking SSR\n\t\t\tthis.isMobile = this.isMobileDevice();\n\n\t\t\t// If it's the mobile device, we should rerender to change styles\n\t\t\tif (this.isMobile) {\n\t\t\t\tthis.forceUpdate();\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener('mouseup', this.onMouseUp);\n\t\twindow.removeEventListener('mousemove', this.onMouseMove);\n\t\twindow.removeEventListener('touchmove', this.onTouchMove);\n\t\twindow.removeEventListener('touchend', this.onTouchEnd);\n\t}\n\n\tgetElement() {\n\t\treturn this.container.current;\n\t}\n\n\tisMobileDevice() {\n\t\treturn typeof window.orientation !== 'undefined' || navigator.userAgent.indexOf('IEMobile') !== -1;\n\t}\n\n\tisDraggable(target) {\n\t\tconst ignoreElements = this.props.ignoreElements;\n\t\tif (ignoreElements) {\n\t\t\tconst closest = target.closest(ignoreElements);\n\t\t\treturn closest === null || closest.contains(this.getElement());\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tisScrollable() {\n\t\tconst container = this.container.current;\n\t\treturn (\n\t\t\tcontainer &&\n\t\t\t(container.scrollWidth > container.clientWidth || container.scrollHeight > container.clientHeight)\n\t\t);\n\t}\n\n\t// Simulate 'onEndScroll' event that fires when scrolling is stopped\n\tonEndScroll = () => {\n\t\tthis.scrolling = false;\n\t\tif (!this.pressed && this.started) {\n\t\t\tthis.processEnd();\n\t\t}\n\t};\n\n\tonScroll = (e) => {\n\t\tconst container = this.container.current;\n\t\t// Ignore the internal scrolls\n\t\tif (container.scrollLeft !== this.scrollLeft || container.scrollTop !== this.scrollTop) {\n\t\t\tthis.scrolling = true;\n\t\t\tthis.processScroll(e);\n\t\t\tthis.onEndScroll();\n\t\t}\n\t};\n\n\tonTouchStart = (e) => {\n\t\tconst { nativeMobileScroll } = this.props;\n\t\tif (this.isDraggable(e.target)) {\n\t\t\tthis.internal = true;\n\t\t\tif (nativeMobileScroll && this.scrolling) {\n\t\t\t\tthis.pressed = true;\n\t\t\t} else {\n\t\t\t\tconst touch = e.touches[0];\n\t\t\t\tthis.processClick(e, touch.clientX, touch.clientY);\n\t\t\t\tif (!nativeMobileScroll && this.props.stopPropagation) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tonTouchEnd = (e) => {\n\t\tconst { nativeMobileScroll } = this.props;\n\t\tif (this.pressed) {\n\t\t\tif (this.started && (!this.scrolling || !nativeMobileScroll)) {\n\t\t\t\tthis.processEnd();\n\t\t\t} else {\n\t\t\t\tthis.pressed = false;\n\t\t\t}\n\t\t\tthis.forceUpdate();\n\t\t}\n\t};\n\n\tonTouchMove = (e) => {\n\t\tconst { nativeMobileScroll } = this.props;\n\t\tif (this.pressed && (!nativeMobileScroll || !this.isMobile)) {\n\t\t\tconst touch = e.touches[0];\n\t\t\tif (touch) {\n\t\t\t\tthis.processMove(e, touch.clientX, touch.clientY);\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\tif (this.props.stopPropagation) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t}\n\t};\n\n\tonMouseDown = (e) => {\n\t\tif (this.isDraggable(e.target) && this.isScrollable()) {\n\t\t\tthis.internal = true;\n\t\t\tif (this.props.buttons.indexOf(e.button) !== -1) {\n\t\t\t\tthis.processClick(e, e.clientX, e.clientY);\n\t\t\t\te.preventDefault();\n\t\t\t\tif (this.props.stopPropagation) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tonMouseMove = (e) => {\n\t\tif (this.pressed) {\n\t\t\tthis.processMove(e, e.clientX, e.clientY);\n\t\t\te.preventDefault();\n\t\t\tif (this.props.stopPropagation) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t}\n\t};\n\n\tonMouseUp = (e) => {\n\t\tif (this.pressed) {\n\t\t\tif (this.started) {\n\t\t\t\tthis.processEnd();\n\t\t\t} else {\n\t\t\t\tthis.internal = false;\n\t\t\t\tthis.pressed = false;\n\t\t\t\tthis.forceUpdate();\n\t\t\t\tif (this.props.onClick) {\n\t\t\t\t\tthis.props.onClick(e);\n\t\t\t\t}\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\tif (this.props.stopPropagation) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t}\n\t};\n\n\tprocessClick(e, clientX, clientY) {\n\t\tconst container = this.container.current;\n\t\tthis.scrollLeft = container.scrollLeft;\n\t\tthis.scrollTop = container.scrollTop;\n\t\tthis.clientX = clientX;\n\t\tthis.clientY = clientY;\n\t\tthis.pressed = true;\n\t}\n\n\tprocessStart(changeCursor = true) {\n\t\tconst { onStartScroll } = this.props;\n\n\t\tthis.started = true;\n\n\t\t// Add the class to change displayed cursor\n\t\tif (changeCursor) {\n\t\t\tdocument.body.classList.add('indiana-dragging');\n\t\t}\n\n\t\tif (onStartScroll) {\n\t\t\tonStartScroll({\n\t\t\t\texternal: !this.internal,\n\t\t\t});\n\t\t}\n\t\tthis.forceUpdate();\n\t}\n\n\t// Process native scroll (scrollbar, mobile scroll)\n\tprocessScroll(e) {\n\t\tif (this.started) {\n\t\t\tconst { onScroll } = this.props;\n\t\t\tif (onScroll) {\n\t\t\t\tonScroll({\n\t\t\t\t\texternal: !this.internal,\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthis.processStart(false);\n\t\t}\n\t}\n\n\t// Process non-native scroll\n\tprocessMove(e, newClientX, newClientY) {\n\t\tconst { horizontal, vertical, activationDistance, onScroll } = this.props;\n\t\tconst container = this.container.current;\n\n\t\tif (!this.started) {\n\t\t\tif (\n\t\t\t\t(horizontal && Math.abs(newClientX - this.clientX) > activationDistance) ||\n\t\t\t\t(vertical && Math.abs(newClientY - this.clientY) > activationDistance)\n\t\t\t) {\n\t\t\t\tthis.clientX = newClientX;\n\t\t\t\tthis.clientY = newClientY;\n\t\t\t\tthis.processStart();\n\t\t\t}\n\t\t} else {\n\t\t\tif (horizontal) {\n\t\t\t\tcontainer.scrollLeft -= newClientX - this.clientX;\n\t\t\t}\n\t\t\tif (vertical) {\n\t\t\t\tcontainer.scrollTop -= newClientY - this.clientY;\n\t\t\t}\n\t\t\tif (onScroll) {\n\t\t\t\tonScroll({ external: !this.internal });\n\t\t\t}\n\t\t\tthis.clientX = newClientX;\n\t\t\tthis.clientY = newClientY;\n\t\t\tthis.scrollLeft = container.scrollLeft;\n\t\t\tthis.scrollTop = container.scrollTop;\n\t\t}\n\t}\n\n\tprocessEnd() {\n\t\tconst { onEndScroll } = this.props;\n\t\tconst container = this.container.current;\n\n\t\tif (container && onEndScroll) {\n\t\t\tonEndScroll({\n\t\t\t\texternal: !this.internal,\n\t\t\t});\n\t\t}\n\n\t\tthis.pressed = false;\n\t\tthis.started = false;\n\t\tthis.scrolling = false;\n\t\tthis.internal = false;\n\n\t\tdocument.body.classList.remove('indiana-dragging');\n\t\tthis.forceUpdate();\n\t}\n\n\tgetRef(el) {\n\t\t[this.container, this.props.innerRef].forEach((ref) => {\n\t\t\tif (ref) {\n\t\t\t\tif (typeof ref === 'function') {\n\t\t\t\t\tref(el);\n\t\t\t\t} else {\n\t\t\t\t\t(ref as MutableRefObject).current = el;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\trender() {\n\t\tconst { children, draggingClassName, className, style, hideScrollbars, component: Component } = this.props;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t);\n\t}\n}\n","'use strict';\r\n\r\n/**\r\n * BEM class name factory.\r\n *\r\n * @typedef {Function} Bem\r\n * @param {String|Object} [elementOrMods] Element name or hash object with mods\r\n * @param {Object} [mods] Hash object with mods\r\n * @returns {String}\r\n */\r\n\r\n/**\r\n * Returns BEM class name factory.\r\n *\r\n * @param {String} componentName Block name\r\n * @returns {Bem}\r\n */\r\nmodule.exports = function bem(componentName) {\r\n return function (elementOrMods, mods) {\r\n if (!elementOrMods) {\r\n return componentName;\r\n }\r\n\r\n var element;\r\n\r\n if (typeof elementOrMods === 'string') {\r\n element = elementOrMods;\r\n } else {\r\n mods = elementOrMods;\r\n }\r\n\r\n var base = componentName;\r\n if (element) {\r\n base += '__' + element;\r\n }\r\n\r\n return base + (\r\n mods\r\n ? Object.keys(mods).reduce(function (result, name) {\r\n var value = mods[name];\r\n\r\n if (value) {\r\n result += ' ' + (\r\n typeof value === 'boolean'\r\n ? (base + '--' + name)\r\n : (base + '--' + name + '_' + value)\r\n );\r\n }\r\n\r\n return result;\r\n }, '')\r\n : ''\r\n );\r\n };\r\n}\r\n","import Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport JWTUtils from 'utils/JWT_Utils.js';\r\nimport SeeOffersButton from 'components/buttons/See_Offers_Button.js';\r\nimport ExpandableHashTags from 'components/offers/Expandable_Hashtags.js';\r\nimport FeaturedOffer from 'components/offers/Featured_Offer.js';\r\nimport IncompleteOffer from 'components/offers/Incomplete_Offer.js';\r\nimport OfferDifficultyIndicator from 'components/offers/Offer_Difficulty_Indicator.js';\r\nimport OfferThemeIndicator from 'components/offers/Offer_Theme_Indicator.js';\r\nimport BlurProvider from 'components/offer_providers/Blur_Provider.js';\r\nimport ScrollToTop from 'components/widgets/Scroll_To_Top.js';\r\nimport React from 'react';\r\nimport ScrollContainer from 'react-indiana-drag-scroll';\r\nimport { Spinner } from 'react-spinners-css';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Images from 'utils/Images.js';\r\nimport Offers from 'utils/Offers.js';\r\nimport OfferEvents from 'utils/Offer_Events.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport jwt from 'jwt-decode';\r\n\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nlet thisComponent;\r\nlet markedDifficultyId = 'all-offers';\r\n\r\nlet allOffers = [];\r\nlet allFavouriteOffers = [];\r\nlet allSpecialOffers = [];\r\n\r\nconst eventTypes = configuration.event_types;\r\nconst incompleteOfferModes = configuration.incomplete_offer_modes;\r\nconst featuredOfferModes = configuration.featured_offer_modes;\r\nconst offerSortOptions = configuration.offer_sort_options;\r\nconst offerDifficulties = configuration.offer_difficulties;\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst firstHashtags = configuration.first_hashtags;\r\nconst businessLogic = configuration.business_logic;\r\n\r\nconst offersToShowInitially = businessLogic.offers_to_show_initially;\r\n\r\nlet jwtToken = UserData.getItem(userDataKeys.jwt_token);\r\n\r\nclass IncompleteOffersList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n authorized: Boolean(jwtToken),\r\n error: null,\r\n isLoaded: false,\r\n offers: [],\r\n favouriteError: null,\r\n isFavouriteLoaded: false,\r\n isSpecialLoaded: false,\r\n favouriteOffers: [],\r\n hashTags: [],\r\n selectedHashTags: [],\r\n selectedDifficulty: offerDifficulties.all,\r\n sortOptions: [\r\n offerSortOptions.most_popular,\r\n offerSortOptions.offers_for_you,\r\n offerSortOptions.highest_amount_offers,\r\n offerSortOptions.latest_offers\r\n ],\r\n selectedSortOption: null,\r\n isOpenSortOptions: false,\r\n isSortingOn: false,\r\n todaysBest: null,\r\n displayAll: (window.innerWidth >= 1024)? true: false\r\n };\r\n this.impressionsSent = [];\r\n thisComponent = this;\r\n }\r\n\r\n static contextType = OfferPopupContext;\r\n\r\n updateOffersList() {\r\n thisComponent.setState({\r\n ...thisComponent.state,\r\n isLoaded: false,\r\n offers: []\r\n });\r\n\r\n let newApps = thisComponent.filterAndSort(allOffers);\r\n thisComponent.setState({\r\n ...thisComponent.state,\r\n isLoaded: true,\r\n offers: newApps\r\n });\r\n }\r\n\r\n displayRecommendedOffer() {\r\n const { handleOfferIsOpened } = this.context;\r\n let recommendedOffer = UserData.getItem(userDataKeys.recommended_offer);\r\n let emailOffer = Number(UserData.getItem(userDataKeys.email_offer));\r\n\r\n if(ApiFacade.isLoggedIn()) {\r\n if (recommendedOffer) {\r\n const commonAndSpecialOffers = allOffers.concat(allSpecialOffers);\r\n const offer = commonAndSpecialOffers\r\n .flatMap(obj => obj.offers)\r\n .find(offer => (offer.uniqueID === recommendedOffer && offer.isAvailable));\r\n if (offer) {\r\n handleOfferIsOpened({ offer });\r\n }\r\n else {\r\n Offers.displayMissingOfferDialog(recommendedOffer);\r\n }\r\n UserData.removeItem(userDataKeys.recommended_offer);\r\n UserData.removeItem(userDataKeys.offer_recommender);\r\n }\r\n else if (emailOffer) {\r\n const commonAndSpecialOffers = allOffers.concat(allSpecialOffers);\r\n const offer = commonAndSpecialOffers\r\n .flatMap(obj => obj.offers)\r\n .find(offer => (offer.ID === emailOffer && offer.isAvailable));\r\n if (offer) {\r\n handleOfferIsOpened({ offer });\r\n }\r\n UserData.removeItem(userDataKeys.email_offer);\r\n }\r\n }\r\n }\r\n\r\n loadComponent() { \r\n let existingHashtags, allHashtags;\r\n let hashList = document.getElementById('offers-list-hash-tags');\r\n if (hashList !== null) hashList.scrollLeft = 0;\r\n let { authorized } = thisComponent.state;\r\n\r\n let platform = Platform.getPlatformName();\r\n let preferredLanguage = Content.getPreferredLanguage();\r\n let currentCountry = JWTUtils.getJWTCountry();\r\n\r\n //let calledOffersURL = `${Backend.backendURLs.offersURL}?language=${encodeURIComponent(preferredLanguage)}&country=${encodeURIComponent(currentCountry)}&platformName=${encodeURIComponent(platform)}`;\r\n\r\n const req = ApiFacade.offers(preferredLanguage, currentCountry, platform);\r\n\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n allOffers = result.apps;\r\n if (ApiFacade.isLoggedIn()) {\r\n thisComponent.sendImpressionsEvent(result.apps.slice(0, offersToShowInitially));\r\n }\r\n UserData.setItem(userDataKeys.offer_completion_disclaimer_displayed, result.coinsDisclaimerDisplayed);\r\n\r\n thisComponent.setState(prev => {\r\n existingHashtags = prev.hashTags || [];\r\n const hashtags = Array.from(new Set(existingHashtags.concat(result.hashTags)));\r\n allHashtags = [...firstHashtags, ...hashtags].filter((value, index, self) => {\r\n return self.indexOf(value) === index;\r\n });\r\n\r\n return {\r\n ...prev,\r\n isLoaded: true,\r\n offers: result.apps,\r\n hashTags: allHashtags,\r\n selectedHashTags: [],\r\n todaysBest: result.todaysBest\r\n }\r\n });\r\n } else {\r\n thisComponent.setState({\r\n ...thisComponent.state,\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n ...thisComponent.state,\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n );\r\n\r\n if (ApiFacade.isLoggedIn()) {\r\n const req = ApiFacade.favouriteOffers(platform);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n allFavouriteOffers = result.favouriteOffers;\r\n UserData.setItem(userDataKeys.offer_completion_disclaimer_displayed, result.coinsDisclaimerDisplayed);\r\n thisComponent.setState({\r\n ...thisComponent.state,\r\n isFavouriteLoaded: true,\r\n favouriteOffers: result.favouriteOffers\r\n });\r\n } else {\r\n thisComponent.setState({\r\n ...thisComponent.state,\r\n isFavouriteLoaded: true,\r\n favouriteError: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n ...thisComponent.state,\r\n isFavouriteLoaded: true,\r\n favouriteError: error\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n loadSpecials() {\r\n let existingHashtags, allHashtags;\r\n let platform = Platform.getPlatformName();\r\n let preferredLanguage = Content.getPreferredLanguage();\r\n\r\n let currentCountry = JWTUtils.getJWTCountry();\r\n\r\n //let calledOffersURL = `${Backend.backendURLs.offersURL}?language=${encodeURIComponent(preferredLanguage)}&country=${encodeURIComponent(currentCountry)}&platformName=${encodeURIComponent(platform)}&specialOffers=1`;\r\n const req = ApiFacade.offers(preferredLanguage, currentCountry, platform, 0, 1);\r\n\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n allSpecialOffers = result.apps;\r\n\r\n thisComponent.setState(prev => {\r\n existingHashtags = prev.hashTags || [];\r\n const hashtags = Array.from(new Set(existingHashtags.concat(result.hashTags)));\r\n allHashtags = [...firstHashtags, ...hashtags].filter((value, index, self) => {\r\n return self.indexOf(value) === index;\r\n });\r\n \r\n return {\r\n ...prev,\r\n specialOffers: result.apps,\r\n isSpecialLoaded: true,\r\n hashTags: allHashtags,\r\n }\r\n });\r\n }\r\n else {\r\n thisComponent.setState({\r\n ...thisComponent.state,\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n ...thisComponent.state,\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n );\r\n }\r\n\r\n beforeUnloadHandler() {\r\n if (UserData.getItem(userDataKeys.offer_wall_visit_id) !== null) {\r\n window.removeEventListener(\"beforeunload\", thisComponent.beforeUnloadHandler);\r\n OfferEvents.storeEventsOnRefresh();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n thisComponent.loadComponent();\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null) {\r\n thisComponent.loadSpecials();\r\n const currentEpochTime = Math.round(new Date().getTime() / 1000);\r\n UserData.setItem(userDataKeys.offer_wall_visit_start, currentEpochTime);\r\n OfferEvents.generateOfferWallVisitID();\r\n window.addEventListener(\"beforeunload\", thisComponent.beforeUnloadHandler);\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n let { selectedHashTags, selectedDifficulty, selectedSortOption } = this.state;\r\n Mixpanel.trackByArgs(mixpanelEvents.playground_filter_selected, {\r\n difficulty_level: selectedDifficulty,\r\n hashtags: selectedHashTags,\r\n sorting_selected: selectedSortOption\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"beforeunload\", thisComponent.beforeUnloadHandler);\r\n if (UserData.getItem(userDataKeys.offer_wall_visit_id) !== null) {\r\n OfferEvents.recordOfferPageVisit();\r\n OfferEvents.recordOfferWallVisit();\r\n }\r\n }\r\n\r\n sendImpressionsEvent(apps) {\r\n let impressions = [];\r\n let appOffers;\r\n let offer;\r\n apps.forEach((app) => {\r\n appOffers = app.offers;\r\n if (appOffers.length === 1) {\r\n offer = appOffers[0];\r\n impressions.push({\r\n offerID: offer.ID,\r\n offerType: offer.offerType,\r\n appName: app.appName,\r\n category: offer.category,\r\n payout: offer.coins,\r\n isFree: offer.isFree,\r\n });\r\n }\r\n });\r\n if (impressions.length > 0) {\r\n OfferEvents.sendEvent({\r\n impressions: impressions,\r\n eventType: eventTypes.offer_impression,\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id)\r\n });\r\n }\r\n }\r\n\r\n sendFavouriteImpressionsEvent(offers) {\r\n let impressions = [];\r\n offers.forEach((offer) => {\r\n let offerID = offer.ID;\r\n if (!thisComponent.impressionsSent.includes(offerID)) {\r\n thisComponent.impressionsSent.push(offerID);\r\n impressions.push({\r\n offerID: offerID,\r\n offerType: offer.offerType,\r\n appName: offer.appName,\r\n category: offer.category,\r\n payout: offer.coins,\r\n isFree: offer.isFree,\r\n });\r\n }\r\n });\r\n if (impressions.length > 0) {\r\n OfferEvents.sendEvent({\r\n impressions: impressions,\r\n eventType: eventTypes.offer_impression,\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id)\r\n });\r\n }\r\n }\r\n\r\n sendAppImpressionsEvent(offers) {\r\n let impressions = [];\r\n offers.forEach((offer) => {\r\n let offerID = offer.ID;\r\n if (!thisComponent.impressionsSent.includes(offerID)) {\r\n thisComponent.impressionsSent.push(offerID);\r\n impressions.push({\r\n offerID: offerID,\r\n offerType: offer.offerType,\r\n appName: offer.appName,\r\n category: offer.category,\r\n payout: offer.coins,\r\n isFree: offer.isFree,\r\n });\r\n }\r\n });\r\n if (impressions.length > 0) {\r\n OfferEvents.sendEvent({\r\n impressions: impressions,\r\n eventType: eventTypes.offer_impression,\r\n offerWallVisitID: UserData.getItem(userDataKeys.offer_wall_visit_id)\r\n });\r\n }\r\n }\r\n\r\n toggleApp(appName, uniqueID) {\r\n let isVisible, newClassName;\r\n let toggleAppArrowMobile = document.getElementById(`toggle-${appName}`);\r\n let toggleAppArrowDesktop = document.getElementById(`toggle-${appName}-desktop`);\r\n let offerSection = document.getElementById(`app-offers-${appName}-${uniqueID}`);\r\n\r\n isVisible = (offerSection.className === 'app-list-offers visible open');\r\n newClassName = isVisible ? 'app-list-offers visible' : 'app-list-offers visible open';\r\n offerSection.className = newClassName;\r\n \r\n\r\n if (newClassName === 'app-list-offers visible open' ) {\r\n\r\n toggleAppArrowDesktop.className = 'rotate180 offers-toggle desktop';\r\n toggleAppArrowMobile.className = 'rotate180 offers-toggle mobile';\r\n }\r\n else {\r\n\r\n toggleAppArrowDesktop.className = 'offers-toggle desktop';\r\n toggleAppArrowMobile.className = 'offers-toggle mobile';\r\n\r\n }\r\n }\r\n\r\n generateApp(item) {\r\n const { selectedHashTags } = thisComponent.state;\r\n\r\n const app = item.apps[0];\r\n const offers = app.offers;\r\n let numIncompleteOffers = offers?.length;\r\n let appLabel = app.appName.replaceAll(\"'\", \"\").replaceAll(\"+\", \"\").replaceAll(\":\", \"_\").replaceAll(\" \", \"_\").replaceAll(\".\", \"_\").replace(\"__\", \"_\").toLowerCase();\r\n let appName = app.appName.replaceAll(\"'\", \"\").replaceAll(\"+\", \"\").replaceAll(\":\", \"_\").replaceAll(\" \", \"_\").replaceAll(\".\", \"_\").replace(\"__\", \"_\").toLowerCase();\r\n let appFragment = window.location.hash.substring(1);\r\n let expandApp = (appFragment === appLabel);\r\n\r\n const appElement = (\r\n
    \r\n
    \r\n \r\n {appName}\r\n \r\n
    \r\n
    \r\n
    \r\n
    {app.appName}
    \r\n
    {Formatting.format(Content.getValue(\"offers_to_complete\"), ['(numIncompleteOffers)'], [numIncompleteOffers])}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n\r\n return (\r\n \r\n
    \r\n {\r\n (item.length===1) ?\r\n (\r\n \r\n {\r\n (offers.length > 1) ?\r\n ( appElement ) :\r\n (null)\r\n }\r\n {thisComponent.generateOffersList(appName, offers, numIncompleteOffers, expandApp, appElement)}\r\n \r\n ) :\r\n (item.length>1) ?\r\n (\r\n \r\n {\r\n item.apps.map(({ offers }) => (\r\n thisComponent.generateOffersList(appName, offers, offers.length, expandApp, appElement) \r\n ))\r\n }\r\n \r\n ) :\r\n (\r\n \r\n {thisComponent.generateOffersList(appName, offers, numIncompleteOffers, expandApp, appElement)}\r\n \r\n )\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n generateOffersList(appName, offers, numIncompleteOffers, expandApp, appElement) { \r\n const { selectedHashTags } = thisComponent.state;\r\n\r\n return (\r\n
    \r\n {\r\n (numIncompleteOffers > 1) ?\r\n ( appElement ) :\r\n (null)\r\n }\r\n
    1 && !expandApp) ? 'app-list-offers visible' : 'app-list-offers visible open'}>\r\n {offers.map(offer => (\r\n (offer.isTodaysBest) ?\r\n () :\r\n (!offer.isSystem) ?\r\n :\r\n \r\n\r\n ))}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n generateFavouriteOffers(favouriteOffers, selectedHashTags) {\r\n const data = Offers.getBlurredOfferData(favouriteOffers);\r\n\r\n if (favouriteOffers.length > 0) {\r\n thisComponent.sendFavouriteImpressionsEvent(favouriteOffers);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"title_your_popular_offers\")}

    \r\n
    {Content.getValue(\"your_popular_offers_description\")}
    \r\n
    \r\n {\r\n data.map(item => (item.length===1) ?\r\n (\r\n \r\n \r\n \r\n ) :\r\n (item.length>1) ?\r\n (\r\n \r\n {item.offers.map(offer => (\r\n \r\n ))}\r\n \r\n ) :\r\n (\r\n \r\n )\r\n )\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n \r\n return null;\r\n }\r\n\r\n\r\n toggleHashTag(hashTag) {\r\n let { selectedHashTags, selectedDifficulty, selectedSortOption } = this.state;\r\n let hashTagContainer = document.getElementById(`hash-tag-${hashTag}`);\r\n let oldClassName = hashTagContainer.className;\r\n let newClassName;\r\n if (oldClassName === 'hash-tag-container') {\r\n newClassName = 'hash-tag-container marked';\r\n selectedHashTags.push(hashTag);\r\n }\r\n else {\r\n newClassName = 'hash-tag-container';\r\n selectedHashTags = selectedHashTags.filter(e => e !== hashTag);\r\n }\r\n hashTagContainer.className = newClassName;\r\n\r\n let filteredOffers = Offers.filterAppOffers(JSON.parse(JSON.stringify(allOffers)), selectedHashTags, selectedDifficulty, selectedSortOption);\r\n let filteredSpecialOffers = Offers.filterAppOffers(JSON.parse(JSON.stringify(allSpecialOffers)), selectedHashTags, selectedDifficulty, selectedSortOption);\r\n let filteredFavouriteOffers = Offers.filterOffers(JSON.parse(JSON.stringify(allFavouriteOffers)), selectedHashTags, selectedDifficulty);\r\n\r\n thisComponent.setState({\r\n ...thisComponent.state,\r\n selectedHashTags: selectedHashTags,\r\n offers: filteredOffers,\r\n specialOffers: filteredSpecialOffers,\r\n isLoaded: true,\r\n favouriteOffers: filteredFavouriteOffers,\r\n isFavouriteLoaded: true\r\n });\r\n }\r\n\r\n // isHashtagVisible(hashTag, allOffers, allSpecialOffers, favouriteOffers) {\r\n // const isVisibleForSome = allOffers?.some(item => item.hashTags.includes(hashTag));\r\n // const isVisibleForSpecial = allSpecialOffers?.some(item => item.hashTags.includes(hashTag));\r\n // const isVisibleForFav = favouriteOffers?.some(item => item.hashTags.includes(hashTag));\r\n\r\n // return isVisibleForSome || isVisibleForSpecial || isVisibleForFav;\r\n // }\r\n\r\n setDifficultyLevel(difficulty, idToMark) {\r\n let { selectedSortOption } = this.state;\r\n\r\n document.getElementById(markedDifficultyId).className = document.getElementById(markedDifficultyId).className.replace(\" marked\", \"\");\r\n document.getElementById(idToMark).className += \" marked\";\r\n markedDifficultyId = idToMark;\r\n\r\n let filteredOffers = Offers.filterAppOffers(JSON.parse(JSON.stringify(allOffers)), [], difficulty, selectedSortOption);\r\n let filteredSpecialOffers = Offers.filterAppOffers(JSON.parse(JSON.stringify(allSpecialOffers)), [], difficulty, selectedSortOption);\r\n let filteredFavouriteOffers = Offers.filterOffers(JSON.parse(JSON.stringify(allFavouriteOffers)), [], difficulty);\r\n\r\n thisComponent.setState({\r\n ...thisComponent.state,\r\n selectedDifficulty: difficulty,\r\n selectedHashTags: [],\r\n offers: filteredOffers,\r\n specialOffers: filteredSpecialOffers,\r\n favouriteOffers: filteredFavouriteOffers,\r\n isLoaded: true,\r\n isFavouriteLoaded: true\r\n });\r\n }\r\n\r\n toggleSortOption(sortOption) {\r\n let { selectedHashTags, selectedDifficulty, selectedSortOption } = this.state;\r\n\r\n let newSortingOn;\r\n let newSelectedSortOption;\r\n\r\n if (sortOption === selectedSortOption) {\r\n newSortingOn = false;\r\n newSelectedSortOption = null;\r\n }\r\n else {\r\n newSortingOn = true;\r\n newSelectedSortOption = sortOption;\r\n }\r\n\r\n let filteredOffers = Offers.filterAppOffers(JSON.parse(JSON.stringify(allOffers)), selectedHashTags, selectedDifficulty, newSelectedSortOption);\r\n\r\n setTimeout(function () {\r\n thisComponent.setState({\r\n ...thisComponent.state,\r\n isOpenSortOptions: false,\r\n offers: filteredOffers,\r\n selectedSortOption: newSelectedSortOption,\r\n isSortingOn: newSortingOn\r\n });\r\n }, 25);\r\n }\r\n\r\n render() {\r\n let {\r\n error,\r\n isLoaded,\r\n isSpecialLoaded,\r\n offers,\r\n favouriteError,\r\n isFavouriteLoaded,\r\n favouriteOffers,\r\n hashTags, displayAll,\r\n isOpenSortOptions,\r\n isSortingOn,\r\n sortOptions,\r\n selectedSortOption,\r\n selectedHashTags,\r\n todaysBest,\r\n specialOffers,\r\n } = this.state;\r\n\r\n offers?.forEach(item => {\r\n item.isAppInVisible = item.offers?.some(each => !each.isAvailable);\r\n })\r\n\r\n const data = Offers.getBlurredAppData(offers);\r\n const allOffers = offers.reduce((res, each) => res.concat(each.offers), []);\r\n const allSpecialOffers = specialOffers?.reduce((res, each) => res.concat(each.offers), []) || [];\r\n // const availableHashtags = hashTags?.filter(each => thisComponent.isHashtagVisible(each, allOffers, allSpecialOffers, favouriteOffers));\r\n\r\n if (error) {\r\n return <>\r\n
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.all, 'all-offers')} id=\"all-offers\">{Content.getValue(\"offer_difficulties\")[\"0\"]}
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.easy, 'easy-offers')} id=\"easy-offers\">{Content.getValue(\"offer_difficulties\")[\"1\"]}
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.medium, 'medium-offers')} id=\"medium-offers\">{Content.getValue(\"offer_difficulties\")[\"2\"]}
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.hard, 'hard-offers')} id=\"hard-offers\">{Content.getValue(\"offer_difficulties\")[\"3\"]}
    \r\n
    \r\n
    {Backend.loadBackendMessages().errorMessage}
    \r\n ;\r\n } else if (!isLoaded) {\r\n return <>\r\n
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.all, 'all-offers')} id=\"all-offers\">{Content.getValue(\"offer_difficulties\")[\"0\"]}
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.easy, 'easy-offers')} id=\"easy-offers\">{Content.getValue(\"offer_difficulties\")[\"1\"]}
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.medium, 'medium-offers')} id=\"medium-offers\">{Content.getValue(\"offer_difficulties\")[\"2\"]}
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.hard, 'hard-offers')} id=\"hard-offers\">{Content.getValue(\"offer_difficulties\")[\"3\"]}
    \r\n
    \r\n
    \r\n ;\r\n } else {\r\n if (isSpecialLoaded) {\r\n thisComponent.displayRecommendedOffer();\r\n }\r\n return (\r\n <>\r\n
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.all, 'all-offers')} id=\"all-offers\">{Content.getValue(\"offer_difficulties\")[\"0\"]}
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.easy, 'easy-offers')} id=\"easy-offers\">{Content.getValue(\"offer_difficulties\")[\"1\"]}
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.medium, 'medium-offers')} id=\"medium-offers\">{Content.getValue(\"offer_difficulties\")[\"2\"]}
    \r\n
    thisComponent.setDifficultyLevel(offerDifficulties.hard, 'hard-offers')} id=\"hard-offers\">{Content.getValue(\"offer_difficulties\")[\"3\"]}
    \r\n
    \r\n
    \r\n {/* \r\n {availableHashtags.map(\r\n function (hashTag) {\r\n return thisComponent.toggleHashTag(hashTag)}\r\n key={`hash-tag-${hashTag}`}>\r\n {hashTag}\r\n ;\r\n }\r\n )}\r\n */}\r\n
    \r\n\r\n {\r\n (favouriteError) ?\r\n (\r\n
    {Backend.loadBackendMessages().errorMessage}
    \r\n ) :\r\n (\r\n (isFavouriteLoaded) ? (\r\n thisComponent.generateFavouriteOffers(favouriteOffers, selectedHashTags)\r\n ) : (null)\r\n )\r\n }\r\n\r\n {\r\n UserData.getItem(userDataKeys.jwt_token) !== null && allSpecialOffers.length > 0 ?\r\n (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    { Content.getValue(\"special_offers\") }

    \r\n

    { Content.getValue(\"@_treatcoin\") }

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n ) :\r\n (null)\r\n }\r\n\r\n {\r\n (offers.length > 0) ? (\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {sortOptions.map(\r\n function (sortOption) {\r\n return thisComponent.toggleSortOption(sortOption)} key={`sort-option-${sortOption}`}>{Content.getValue(\"offer_sort_groups\")[sortOption]};\r\n }\r\n )}\r\n
    \r\n
    \r\n \r\n {(todaysBest) ?\r\n (todaysBest.isAvailable) ?\r\n () :\r\n (\r\n \r\n ) :\r\n (null)\r\n }\r\n\r\n
    \r\n {data.slice(0, offersToShowInitially).map(\r\n function (item) {\r\n return thisComponent.generateApp(item);\r\n }\r\n )}\r\n {\r\n (displayAll) ?\r\n (data.slice(offersToShowInitially).map(\r\n function (item) {\r\n return thisComponent.generateApp(item);\r\n }\r\n )) :\r\n (null)\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n ) : (\r\n
    {Content.getValue(\"no_offers_available\")}
    \r\n )\r\n }\r\n {\r\n (!displayAll && offers.length > offersToShowInitially) ?\r\n (
    \r\n \r\n
    ) : (null)\r\n }\r\n {\r\n (offers.length > 0) ? (\r\n \r\n ) :\r\n (null)\r\n }\r\n \r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default IncompleteOffersList;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport ScrollToTop from 'components/widgets/Scroll_To_Top.js';\r\nimport CompletedOffer from 'components/offers/Completed_Offer.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const completedOffersURL = backendURLs.completedOffersURL;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nlet thisComponent;\r\nlet markedDifficultyId = 'all-offers';\r\n\r\nconst difficultyClasses = { '1': 'green', '2': 'yellow', '3': 'red'};\r\n\r\nclass CompletedOffersList extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.scrollDone = false;\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n items: []\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n reloadComponent() {\r\n\r\n thisComponent.setState({\r\n error: null,\r\n isLoaded: false,\r\n items: []\r\n });\r\n\r\n let platform = Platform.getPlatformName();\r\n\r\n //this.loadURL = `${completedOffersURL}?platformName=${encodeURIComponent(platform)}`;\r\n const req = ApiFacade.completedOffers(platform);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n UserData.setItem(userDataKeys.offer_completion_disclaimer_displayed, result.coinsDisclaimerDisplayed);\r\n thisComponent.setState({\r\n isLoaded: true,\r\n items: result.apps\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n thisComponent.reloadComponent(1, 3);\r\n \r\n }\r\n\r\n displayDetails(offer) {\r\n thisComponent.displayOfferDetails(offer.imageURL, offer.detailsImageURL, offer.description, offer.detailedDescription, offer.hashTags, offer.difficultyLevel, offer.difficultyLevelID, offer.appName, offer.coins, (UserData.getItem(userDataKeys.jwt_token) !== null), offer.url, offer.isUnlimited);\r\n }\r\n\r\n generateOffersList(appName, offers, hashAppName) {\r\n const hash = window.location.hash.substring(1);\r\n\r\n return (\r\n
    \r\n {\r\n offers.map(offer => (\r\n \r\n ))\r\n }\r\n
    \r\n );\r\n }\r\n\r\n displayOfferDetails(imageURL, detailsImageURL, offerDescription, detailedDescription, hashTags, difficultyLevel, difficultyLevelID, appName, coins, loggedIn, url, isUnlimited) {\r\n document.getElementById('offer-details-div-overlay').className = 'offer-details-div-overlay';\r\n document.getElementById('offer-details-div').className = 'offer-details-div';\r\n document.getElementById('offer-data-image').src = imageURL;\r\n document.getElementById('offer-data-difficulty-image').src = Images.imageURL('difficulties/' + difficultyLevel.toLowerCase() + '-white.png');\r\n document.getElementById('offer-data-difficulty-popup-text').innerHTML = Content.getValue(\"offer_difficulties\")[difficultyLevelID.toString()];\r\n document.getElementById('offer-data-image-details').src = detailsImageURL;\r\n document.getElementById('offer-data-app-name').innerHTML = appName;\r\n document.getElementById('offer-data-description').innerHTML = offerDescription;\r\n document.getElementById('offer-data-detailed-description').innerHTML = detailedDescription.replaceAll('---', '

    ');\r\n document.getElementById('offer-data-hash-tags').innerHTML = hashTags;\r\n document.getElementById('offer-data-difficulty-mark').className = 'list-offer-container-difficulty-mark ' + difficultyClasses[difficultyLevelID.toString()];\r\n document.getElementById('offer-data-difficulty-level').className = 'offer-difficulty-label ' + difficultyClasses[difficultyLevelID.toString()];\r\n document.getElementById('offer-data-difficulty-level').innerHTML = '
    ' + Content.getValue(\"offer_difficulties\")[difficultyLevelID.toString()] + '
    ' + Content.getValue(\"offer_difficulties\")[difficultyLevel.toLowerCase()] + '
    ' + Content.getValue(\"level_label\") + '
    ';\r\n document.getElementById('offer-data-button').innerHTML = Formatting.format(Content.getValue(\"earn_amount_treat_coins\"), ['(coins)'], [coins]);\r\n if (isUnlimited) {\r\n document.getElementById('offer-data-unlimited-sign').style.display = 'flex';\r\n document.getElementById('offer-data-unlimited').style.display = 'flex';\r\n document.getElementById('offer-data-unlimited').innerHTML = Content.getValue(\"complete_offers_unlimited_times\");\r\n }\r\n if (loggedIn) document.getElementById('offer-details-url').value = url;\r\n }\r\n\r\n setDifficultyLevel(idToMark) {\r\n document.getElementById(markedDifficultyId).className = document.getElementById(markedDifficultyId).className.replace(\" marked\", \"\");\r\n document.getElementById(idToMark).className += \" marked\";\r\n markedDifficultyId = idToMark;\r\n thisComponent.reloadComponent();\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, items } = this.state;\r\n\r\n if (error) {\r\n return <>\r\n
    \r\n
    thisComponent.setDifficultyLevel('all-offers')} id=\"all-offers\">{Content.getValue(\"offer_difficulties\")[\"0\"]}
    \r\n
    thisComponent.setDifficultyLevel('easy-offers')} id=\"easy-offers\">{Content.getValue(\"offer_difficulties\")[\"1\"]}
    \r\n
    thisComponent.setDifficultyLevel('medium-offers')} id=\"medium-offers\">{Content.getValue(\"offer_difficulties\")[\"2\"]}
    \r\n
    thisComponent.setDifficultyLevel('hard-offers')} id=\"hard-offers\">{Content.getValue(\"offer_difficulties\")[\"3\"]}
    \r\n
    \r\n
    {Backend.loadBackendMessages().errorMessage}
    \r\n ;\r\n } else if (!isLoaded) {\r\n return <>\r\n
    \r\n
    thisComponent.setDifficultyLevel('all-offers')} id=\"all-offers\">{Content.getValue(\"offer_difficulties\")[\"0\"]}
    \r\n
    thisComponent.setDifficultyLevel('easy-offers')} id=\"easy-offers\">{Content.getValue(\"offer_difficulties\")[\"1\"]}
    \r\n
    thisComponent.setDifficultyLevel('medium-offers')} id=\"medium-offers\">{Content.getValue(\"offer_difficulties\")[\"2\"]}
    \r\n
    thisComponent.setDifficultyLevel('hard-offers')} id=\"hard-offers\">{Content.getValue(\"offer_difficulties\")[\"3\"]}
    \r\n
    \r\n
    {Backend.loadBackendMessages().loadingMessage}
    \r\n ;\r\n } else {\r\n setTimeout(function () {\r\n if (window.location.hash !== '' && thisComponent.scrollDone === false) {\r\n let appSection = window.location.hash.substring(1) + \"-section\";\r\n let element = document.getElementById(appSection);\r\n if (element) {\r\n const y = element.getBoundingClientRect().top + window.pageYOffset - 68;\r\n window.scrollTo({top: y, behavior: 'smooth'});\r\n }\r\n\r\n thisComponent.scrollDone = true;\r\n }\r\n }, 100);\r\n return (\r\n <>\r\n
    \r\n
    thisComponent.setDifficultyLevel('all-offers')} id=\"all-offers\">{Content.getValue(\"offer_difficulties\")[\"0\"]}
    \r\n
    thisComponent.setDifficultyLevel('easy-offers')} id=\"easy-offers\">{Content.getValue(\"offer_difficulties\")[\"1\"]}
    \r\n
    thisComponent.setDifficultyLevel('medium-offers')} id=\"medium-offers\">{Content.getValue(\"offer_difficulties\")[\"2\"]}
    \r\n
    thisComponent.setDifficultyLevel('hard-offers')} id=\"hard-offers\">{Content.getValue(\"offer_difficulties\")[\"3\"]}
    \r\n
    \r\n
    0) ? 'desktop list-offers-div-wrapper' : ''}>\r\n
    0) ? 'desktop list-offers-div filled' : 'desktop list-offers-div '}>\r\n {\r\n (items?.length > 0) ? ( \r\n items?.map(\r\n function(item) {\r\n const appName = item.appName.replaceAll(\" \", \"_\").toLowerCase();\r\n return (\r\n \r\n
    \r\n {thisComponent.generateOffersList(item.appName, item.offers, appName)}\r\n
    \r\n
    \r\n );\r\n }\r\n )\r\n ) : (\r\n
    {Content.getValue(\"no_offers_completed\")}
    \r\n )\r\n }\r\n
    \r\n
    \r\n {(items?.length > 0) ? (\r\n <>\r\n \r\n
    \r\n \r\n
    \r\n \r\n ) : \r\n (null)\r\n }\r\n \r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default CompletedOffersList;","import React from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport ExpandableHashTags from 'components/offers/Expandable_Hashtags.js';\r\nimport OfferDifficultyIndicator from 'components/offers/Offer_Difficulty_Indicator.js';\r\nimport IncompleteOffer from 'components/offers/Incomplete_Offer.js';\r\nimport OfferThemeIndicator from 'components/offers/Offer_Theme_Indicator.js'\r\n\r\nimport Content from 'utils/Content.js';\r\nimport BlurProvider from 'components/offer_providers/Blur_Provider.js';\r\nimport Offers from 'utils/Offers.js';\r\nconst configuration = require('configuration.json');\r\n\r\nconst incompleteOfferModes = configuration.incomplete_offer_modes;\r\n\r\nclass CompletedOffer extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.offer = props.offer;\r\n const brandsExpanded = props.brandsExpanded || false;\r\n this.state = {\r\n brandsExpanded\r\n };\r\n }\r\n\r\n toggleExpanded() {\r\n const { brandsExpanded } = this.state;\r\n this.setState({\r\n brandsExpanded: !brandsExpanded\r\n });\r\n }\r\n\r\n generateCoinsSumLabel(earlyUnlimitedCompletions, earlyOneTimeCompletions, unlimitedCompletions, oneTimeCompletions, dailyCompletions, isDaily) {\r\n let earlyCompletions = Math.max(earlyUnlimitedCompletions, earlyOneTimeCompletions);\r\n let regularCompletions = Math.max(unlimitedCompletions, oneTimeCompletions);\r\n if (isDaily) {\r\n return {Formatting.format(Content.getValue(\"finished_daily_label\"), [\"(dailyCompletions)\", \"(completions)\"], [dailyCompletions, earlyCompletions + regularCompletions])}\r\n }\r\n else {\r\n return {Formatting.format(Content.getValue(\"finished_unlimited_label\"), [\"(completions)\"], [earlyCompletions + regularCompletions])}\r\n }\r\n }\r\n\r\n generateIndicator(isUnlimited, isDaily, isCompetitionOnly, dailyCap, isRightAligned) {\r\n if (isUnlimited) {\r\n return (\r\n <>\r\n {\r\n isCompetitionOnly ?\r\n \"Completed :\r\n \"Completed\r\n }\r\n \r\n
    {Content.getValue(\"complete_offers_unlimited_times\")}
    \r\n \"Unlimited\r\n
    \r\n \r\n );\r\n }\r\n else if (isDaily) {\r\n return (\r\n <>\r\n
    \r\n {dailyCap}\r\n {\r\n isCompetitionOnly ?\r\n \"Complete :\r\n \"Complete\r\n }\r\n \r\n
    {Formatting.format(Content.getValue(\"complete_multiple_times_daily\"), [\"(dailyCap)\"], [dailyCap])}
    \r\n \"Unlimited\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n else return (null);\r\n\r\n }\r\n\r\n render() {\r\n const { brandsExpanded } = this.state;\r\n const { isMultiEvent } = this.props;\r\n let offer = this.offer;\r\n let moreOffers = offer.moreOffers;\r\n const data = Offers.getBlurredOfferData(moreOffers);\r\n const progressWidth = isMultiEvent ? \r\n offer.completedSteps * 100 / offer.totalSteps :\r\n 100;\r\n return
    \r\n
    \r\n
    \r\n
    \r\n \r\n {offer.description}\r\n \r\n
    \r\n
    \r\n
    \r\n
    {offer.appName}
    \r\n
    {offer.MainTitle}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n (moreOffers.length > 0 && !isMultiEvent) ? (\r\n <>\r\n \"More this.setState({ brandsExpanded: !(this.state.brandsExpanded) })} \r\n width=\"14\" \r\n height=\"auto\" \r\n />\r\n {\r\n (!brandsExpanded) ? (\r\n \r\n
    {Content.getValue(\"more_from_this_brand\")}
    \r\n \"More\r\n
    ) : (null)\r\n }\r\n \r\n ) :\r\n isMultiEvent ?\r\n (\r\n \r\n \r\n {\r\n Formatting.format(\r\n Content.getValue(\"continue_to_step_number\"), \r\n [\"(number)\"],\r\n [offer.completedSteps + 1]\r\n )\r\n }\r\n \r\n \r\n ) :\r\n (null)\r\n }\r\n {\r\n this.generateIndicator(offer.isUnlimited, offer.isDaily, offer.isCompetitionOnly, offer.dailyCap, isMultiEvent ? true : false)\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n (isMultiEvent) ?\r\n ({\r\n Formatting.format(\r\n Content.getValue(\"finished_steps_label\"), \r\n [\"(currentStep)\", \"(totalSteps)\"],\r\n [offer.completedSteps, offer.totalSteps]\r\n )\r\n }) :\r\n (offer.isUnlimited || offer.isDaily) ?\r\n (\r\n this.generateCoinsSumLabel(offer.earlyUnlimitedCompletions, offer.earlyOneTimeCompletions, offer.unlimitedCompletions, offer.oneTimeCompletions, offer.dailyCompletions, offer.isDaily)\r\n ) :\r\n ({Content.getValue(\"finished_label\")})\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n (brandsExpanded) ? (\r\n <>\r\n
    {Content.getValue(\"more_from_this_brand\")}
    \r\n {\r\n data.map(item => (item.length===1) ?\r\n (\r\n \r\n \r\n \r\n ) :\r\n (item.length>1) ?\r\n (\r\n \r\n {item.offers.map(additionalOffer => (\r\n \r\n ))}\r\n \r\n ) :\r\n (\r\n \r\n )\r\n )\r\n }\r\n ) : \r\n (null)\r\n }\r\n
    ;\r\n }\r\n}\r\n\r\nexport default CompletedOffer;","import React, { useState, useEffect } from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport OfferDifficultyIndicator from 'components/offers/Offer_Difficulty_Indicator.js';\r\nimport Offers from 'utils/Offers.js';\r\nimport ExpandableHashtags from 'components/offers/Expandable_Hashtags.js';\r\nimport useTimer from 'utils/hooks/useTimer.js';\r\nimport OfferThemeIndicator from 'components/offers/Offer_Theme_Indicator.js'\r\n\r\nimport Content from 'utils/Content.js';\r\nimport BlurProvider from 'components/offer_providers/Blur_Provider.js';\r\nimport { useContext } from 'react';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\n\r\nconst secondToMillisecond = 1000;\r\n\r\nconst X2OfferPlayground = ({\r\n offer,\r\n isFirstTime,\r\n setIsFirstTime\r\n}) => {\r\n const [state, setState] = useState({\r\n time: null,\r\n limited: false,\r\n });\r\n const { handleOfferIsOpened } = useContext(OfferPopupContext);\r\n\r\n const padTo2Digits = (num) => {\r\n return num.toString().padStart(2, '0');\r\n }\r\n\r\n const { hours, minutes, seconds } = useTimer(offer.expireTime * secondToMillisecond);\r\n useEffect(() => {\r\n const isLimited = (hours <= 0) && (minutes <= 0) && (seconds <= 0);\r\n if (isLimited) {\r\n setState(prev => ({\r\n ...prev,\r\n limited: true\r\n }));\r\n return;\r\n }\r\n const time = hours > 0 ?\r\n (padTo2Digits(hours) + ':' + padTo2Digits(minutes) + ':' + padTo2Digits(seconds)) :\r\n (padTo2Digits(minutes) + ':' + padTo2Digits(seconds));\r\n setState(prev => ({\r\n ...prev,\r\n time\r\n }))\r\n if (time && !isFirstTime) setIsFirstTime(true);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [seconds]);\r\n\r\n const offerElement = (\r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>\r\n \r\n {offer.description}\r\n \r\n
    \r\n
    \r\n
    \r\n
    { handleOfferIsOpened({ offer }); }}>{offer.appName}
    \r\n
    { handleOfferIsOpened({ offer }); }}>{offer.MainTitle}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n { handleOfferIsOpened({ offer }); }} >\r\n
    \r\n \r\n {\r\n !offer.allowsUsableAndCompetition ?\r\n offer.coinsCompetition * 2 :\r\n offer.coins * 2\r\n }\r\n \r\n
    \r\n {Content.getValue(\"treat_coins\")}\r\n \r\n
    \r\n );\r\n\r\n return (\r\n (!state.limited && isFirstTime) ?\r\n (\r\n
    \r\n
    \r\n

    \r\n {Content.getValue(\"x2offer\")}\r\n

    \r\n

    \r\n {Content.getValue(\"x2offer_award\")}\r\n

    \r\n

    \r\n {state.time}\r\n

    \r\n

    \r\n {Content.getValue(\"minutes_left\")}\r\n

    \r\n
    \r\n\r\n {\r\n !offer.isAvailable ?\r\n (\r\n \r\n { offerElement }\r\n \r\n ) :\r\n offerElement\r\n }\r\n
    \r\n ) :\r\n null\r\n );\r\n}\r\n\r\nexport default X2OfferPlayground;","import React, { useState, useEffect, memo } from 'react';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Platform from 'utils/Platform.js';\r\nimport X2OfferPlayground from 'components/offers/X2_Offer_Playground.js'\r\nimport UserData from 'User_Data.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\n//const backendURLs = Backend.backendURLs;\r\n//const hotOfferURL = backendURLs.hotOfferUrl;\r\nconst incompleteOfferModes = configuration.incomplete_offer_modes;\r\nconst secondToMillisecond = 1000;\r\n\r\nfunction PlaygroundDynamicTitle() {\r\n const [state, setState] = useState({\r\n hotOffers: null,\r\n x2Offer: null,\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n })\r\n const [isFirstTime, setIsFirstTime] = useState(false);\r\n\r\n useEffect(() => {\r\n if (ApiFacade.isLoggedIn()) {\r\n const platform = Platform.getPlatformName();\r\n let req = ApiFacade.hotOffers(platform);\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n UserData.setItem(userDataKeys.offer_completion_disclaimer_displayed, result.coinsDisclaimerDisplayed);\r\n setState({\r\n isLoaded: true,\r\n x2Offer: result.x2Offer\r\n });\r\n } else if (res.unauthorized){\r\n //let result = res.response;\r\n setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n .catch(error => setState({ isLoaded: true, error }))\r\n }\r\n }, []);\r\n\r\n const { x2Offer } = state;\r\n const isX2Offer = x2Offer && x2Offer.expireTime * secondToMillisecond >= Date.now();\r\n const offer = isX2Offer ? x2Offer :null;\r\n if (!offer) {\r\n return (null);\r\n }\r\n else {\r\n return (\r\n \r\n );\r\n }\r\n};\r\n\r\nexport default memo(PlaygroundDynamicTitle);","import React from 'react';\r\n\r\nimport IncompleteOffersList from 'components/offers/Incomplete_Offers_List.js';\r\nimport CompleteOffersList from 'components/offers/Completed_Offers_List.js';\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport PlaygroundDynamicTitle from 'components/data/Playground_Dynamic_Title.js';\r\nimport NewsTrack from 'components/live_news/News_Track.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\nimport CashbackOffersList from 'components/offers/Cashback_Offers_List.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst playgroundModes = configuration.playground_modes;\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nlet thisComponent;\r\n\r\nclass Playground extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.category = UserData.getItem(userDataKeys.category);\r\n this.openEarningList = UserData.getItem(userDataKeys.open_earning_list);\r\n\r\n const mode = this.openEarningList ?\r\n playgroundModes.in_progress :\r\n this.category ?\r\n playgroundModes.cashback :\r\n playgroundModes.earn_more;\r\n\r\n this.state = {\r\n mode,\r\n offer: null\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n customEventListener(event) {\r\n const { detail: offer } = event;\r\n thisComponent.setState(prev => ({ ...prev, offer }));\r\n };\r\n\r\n componentDidMount() {\r\n this.openEarningList && UserData.removeItem(userDataKeys.open_earning_list);\r\n UserData.removeItem(userDataKeys.category);\r\n window.addEventListener('openOfferDetails', thisComponent.customEventListener);\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.playground });\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('openOfferDetails', thisComponent.customEventListener);\r\n UserData.removeItem(userDataKeys.offer_events);\r\n UserData.removeItem(userDataKeys.offer_wall_visit_id);\r\n UserData.removeItem(userDataKeys.offer_wall_visit_start);\r\n }\r\n\r\n toggleMode(newMode) {\r\n const { mode } = thisComponent.state;\r\n if (newMode === mode) return;\r\n\r\n thisComponent.setState({\r\n mode: newMode\r\n });\r\n let incompleteTab = document.getElementById(\"incomplete-tab\");\r\n let completeTab = document.getElementById(\"complete-tab\");\r\n let cashbackTab = document.getElementById(\"cashback-tab\");\r\n if (newMode === playgroundModes.earn_more) {\r\n incompleteTab.className = \"offers-section-child marked desktop\";\r\n cashbackTab.className = \"offers-section-child desktop\";\r\n if (completeTab) completeTab.className = cashbackTab.className;\r\n }\r\n else if (newMode === playgroundModes.cashback) {\r\n cashbackTab.className = \"offers-section-child marked desktop\";\r\n incompleteTab.className = \"offers-section-child desktop\";\r\n if (completeTab) completeTab.className = incompleteTab.className;\r\n }\r\n else {\r\n completeTab.className = \"offers-section-child marked desktop\";\r\n cashbackTab.className = incompleteTab.className = \"offers-section-child desktop\";\r\n }\r\n }\r\n\r\n render() {\r\n thisComponent.category = UserData.getItem(userDataKeys.category);\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n const { mode, offer } = thisComponent.state;\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    { var focusedApps = document.getElementsByClassName('app-wrapper focused'); if (focusedApps.length === 1) focusedApps[0].className = 'app-wrapper'; }}>\r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.playground.title}

    \r\n
    {Content.getValue(\"playground_description\")}
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    thisComponent.toggleMode(playgroundModes.earn_more)} id=\"incomplete-tab\">{Content.getValue(\"offers_subtitle\")}
    \r\n
    thisComponent.toggleMode(playgroundModes.cashback)} id=\"cashback-tab\">{Content.getValue(\"cashback_subtitle\")}
    \r\n {\r\n UserData.getItem(userDataKeys.jwt_token) !== null ?\r\n (\r\n
    thisComponent.toggleMode(playgroundModes.in_progress)} id=\"complete-tab\">{Content.getValue(\"in_progress_subtitle\")}
    \r\n ) :\r\n (null)\r\n }\r\n
    \r\n\r\n {\r\n (mode === playgroundModes.in_progress || UserData.getItem(userDataKeys.open_earning_list)) ?\r\n () :\r\n (mode === playgroundModes.cashback) ?\r\n () :\r\n ()\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Playground;","import React, { Component } from 'react';\r\nimport { RedirectWithLang } from 'utils/RedirectWithLang.js';\r\n\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst websiteConnection = globalConf.website_connection;\r\nconst host = websiteConnection.frontend_host;\r\n\r\nclass PrivacyText extends Component {\r\n\r\n render() {\r\n return (\r\n
    \r\n

    Last Updated: October 2023

    \r\n
    Introduction
    \r\n

    Pythia Plus Ltd., including its affiliates (collectively, the \"Company\", \"we\", \"our\" or \"us\") are deeply committed to safeguarding the privacy expectations of its users (\"User(s)\", \"you\" or \"your\"). Accordingly, we have put in place this privacy policy (\"Policy\"), which outlines our data protection practices, including how we collect, use, disclose and protect your personal information, as well as your rights with respect to your personal information.

    \r\n

    Please read this Policy very carefully and use it to make informed decisions, as your access to and use of our service, whether by visiting our website (\"Websites\") or by creating an account through our service (collectively \"Service\"), signifies that you have read and understand all the terms detailed herein and you hereby agree to this Policy and to the collection, use, retention and disclosure of your personal information in accordance with these terms. If you do not agree to the terms of this Policy, please do not use our Services. You are not legally required to provide us with any personal information, but without it, we will not be able to provide you with the full range or with the best experience of using our Services.

    \r\n

    Personal information is defined as any information that identifies an individual or could reasonably identify an individual with reasonable effort, including without limitation: your name, surname, date of birth, residing address, IP address, email address or telephone number, ID documentation, financial documents as utility bill or bank statements as well as other non-public information about you that is associated with or linked to any foregoing, hereinafter referred to as the \"Personal Information\". Processing activities include, among other things, the collection, use, retention and disclosure of such data.

    \r\n

    Your Personal Information will be processed by us (including any of our agents and/or employees), and (where appropriate) any other company in our company group and/or our partners and subcontractors, in accordance with this Policy.

    \r\n

    If you have any questions regarding this Policy or the way we use your Personal Information, please refer to our table of contents and to the section 12. \"HOW TO CONTACT US?\" below. The Company is the controller of the Personal Information collected, and is responsible for the processing of your Personal Information.

    \r\n

    In this Policy, you can learn about:

    \r\n

    1.\tWHAT INFORMATION WE COLLECT?

    \r\n

    2.\tMINORS

    \r\n

    3.\tPURPOSES AND CONDITIONS FOR PROCESSING PERSONAL INFORMATION

    \r\n

    4.\tMARKETING

    \r\n

    5.\tWITH WHOM WE SHARE INFORMATION?

    \r\n

    6.\tINTERNATIONAL TRANSFER OF INFORMATION

    \r\n

    7.\tTHIRD PARTY TRACKING TECHNOLOGIES

    \r\n

    8.\tRETENTION OF PERSONAL INFORMATION

    \r\n

    9.\tYOUR RIGHTS

    \r\n

    10.\tCHANGES TO THE PRIVACY POLICY

    \r\n

    11.\tLANGUAGE VERSION

    \r\n

    12.\tHOW TO CONTACT US?

    \r\n\r\n
    1. WHAT INFORMATION WE COLLECT?
    \r\n

    We collect Personal Information from our Users and visitors of our Service, which consists of the following:

    \r\n
      \r\n
    • Registration and login: When you open an account and register to use our Service, you will be asked to provide us with certain details about yourself, such as: your email address, zip code, username or similar identifier and password. Please note that when you wish to update your account profile, we also collect Personal Information from you.

    • \r\n
    • Identification documentation: We collect and store uploaded documents, in order to identify customers, to process your requests and/or to comply with effective laws and regulations. These documents are also used for the purpose of prevention and detection of fraud, prevention of money-laundering and terrorist funding.

    • \r\n
    • Payment information: we do not collect your payment information, however in order for you to enjoy all of the functions of the Service, our trusted third party payment processors may collect certain payment information from you, such as your credit card number.

    • \r\n
    • Voluntary information: We also collect information which you provide us voluntarily in order to personalize your account or for a specific function, which you voluntarily provide to us at your discretion for a specific function. In addition, we collect your communication when you respond to communications from us, provide us with feedback, communicate with us via email or share additional information about yourself through your use of the Service.

    • \r\n
    • Device information: We collect specific types of connection details and information with regard to your device, software or hardware that could identify you, such as: device’s unique identifiers (e.g. UDID, IMEI, MAC address), browser fingerprinting, IP address, blockchain address, wallet type, and geo-location data.

    • \r\n
    • Information we collect from third parties: We sometimes collect Personal Information from third party service providers, such as information which is gathered in order to verify your identity and prevent fraudulent or illegal activity.

    • \r\n
    • Log-in history and technical information: To enhance the functionality of the Service and to provide you with a better user experience, we collect technical information transmitted by your device, including certain software and hardware information (e.g. the type of browser and operating system your device uses, language preference, access time and the domain name of the website from which you linked to the Service; etc.).

    • \r\n
    \r\n\r\n
    2. MINORS
    \r\n

    The Service are not designed or directed to persons under the age of 18 or persons under the age of legal consent with respect to the use of the Service of any jurisdiction, whichever is higher (\"Legally of Age\").

    \r\n

    We do not collect Personal Information of a minor.

    \r\n

    If you are not Legally of Age, you are prohibited to access or use the Service and you are prohibited to provide any Personal Information to us.

    \r\n

    We reserve the right to access and verify any Personal Information collected from you. In the event that we become aware that a user who is not Legally of Age has shared any information, we shall discard such information.

    \r\n \r\n
    3. PURPOSES AND CONDITIONS FOR PROCESSING PERSONAL INFORMATION
    \r\n

    This section outlines the underlying purposes and legal bases for the processing of your Personal Information:

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    PurposeLegal basis
    Provision of our Service; support and customer relations. We use your Personal Information, such as your username and email address for customer services purposes as well as to present our Websites to you. This includes, for example, managing and updating your account, providing and operating the Service, keeping you informed about our last updates or responding to any of your inquiries, as well as your request to exercise your User rights.The legal bases for processing this data are the performance of our contractual obligations towards you for example as described under this Policy and/or Terms of Use (Art. 6.1(b) GDPR); your consent (for example, when you agree to provide Personal Information by accepting our Cookie Notice, Policy and Terms of Use) (Art. 6.1(a) GDPR); compliance with our legal obligations (Art. 6.1(c) GDPR); and our legitimate interests (Art. 6.1(f) GDPR). Our legitimate interests in this case are enforcing our policies, protection against fraud and misuse of our Service.
    Improving our Services. We collect and analyze information about you and your usage of our Service to improve the usability and effectiveness of our Service, including debugging to identify and repair errors or undertaking internal research for technological development and demonstration.The legal basis for processing this data is our legitimate interests (Art. 6.1(f) GDPR), in this case – providing and improving our Service.
    Marketing, advertising and analytics. We use your Personal Information in order to provide you with personalized advertisements, including behavioral advertising when you visit our Service, to market our Service and to gather aggregate usage information for analytics, statistical and research purposes, including notification of promotional offers.The legal bases for processing this data are your consent (when required) and our legitimate interests (Art. 6.1(a), 6.1(f) GDPR). Our legitimate interests in this case are providing you with tailored services, content and advertisements that better fit your interests as well as to promote our Service.
    Integrity. We process certain information about you and your usage of the Services in order to keep the integrity and security of the Services.The legal bases for processing this data are compliance with our legal obligations (Art. 6.1(c) GDPR) and our legitimate interests (Art. 6.1(f) GDPR). Our legitimate interests in this case are keeping the integrity of our Services and the safety of our end-users.
    Dispute resolution and protection of our legal claims. We collect your Personal Information in order to investigate violation of our policies, enable us to resolve disputes in connection with your use of the Service and to establish and defend our legal claims.The legal basis for processing this data is our legitimate interests (Art. 6.1(f) GDPR). Our legitimate interests in this case are to establish and defend our legal claims.
    Payments. We collect from our third-party payment processors certain information about your payment instruments for the purpose of connecting your payment instrument to your account on our Services.The legal bases for processing this data are the performance of our contractual obligations (Art. 6.1(b) GDPR); the protection of our legitimate interests (Art. 6.1(f) GDPR), in this case enforcing our policies and preventing misuse of our Services; and compliance with legal obligations to which we are subject (Art. 6.1(c) GDPR).
    Corporate transactions. We will share your Personal Information with a potential purchasers, successors or investors in the Company or in the event of a corporate transaction (e.g. sale of a substantial part of our business, merger, reorganization, bankruptcy, consolidation or asset sale of an asset or transfer in the operation thereof) in relation to the Company.The legal basis for processing this data is our legitimate interests (Art. 6.1(f) GDPR).
    Prevention of fraud or violation of our policies. We process your Personal Information to detect and prevent fraudulent and illegal activity or any other type of activity that jeopardizes or negatively affect the integrity of the Service, including by identifying risks associated with your activity on our Service. We will also investigate any violations of our policies and enforce them.The legal basis for processing this data is our legitimate interests (Art. 6.1(f) GDPR). Our legitimate interests in this case are to protect our Company and other Users against fraud.
    Compliance with applicable laws. We process your Personal Information to comply with our various legal obligations such as adult content legislation (where applicable), anti-money laundering, identity verification (e.g., suspicion of minor using our Service), prevention of fraud, complying with data subject rights etc.The legal basis for processing this data is to comply with our various legal obligations (Art. 6.1(c) GDPR) and our legitimate interests (Art. 6.1(f) GDPR).
    \r\n

    Where you have not consented (or have withdrawn your consent) to the processing of your Personal Information by us, we will continue to process your Personal Information : (a) where processing is required for the performance of the contract (i.e. the Terms of Use) between you and us; and/or (b) where processing is necessary for compliance with a legal obligation to which we are subject; (c) where processing is necessary for the purposes of a legitimate interest of the Company and its affiliates (including for marketing).

    \r\n\r\n
    4. MARKETING
    \r\n

    We will use your Personal Information, such as your email address, collected by ourselves or through our trusted third party subcontractors for the purpose of providing you with promotional materials via different marketing techniques such as direct email, telephone marketing, SMS and post concerning the Service as well as products, services, websites and applications which relate to the Company's business partners and its affiliates (collectively: \"Marketing Affiliates\"), which we believe could interest you.

    \r\n

    We also share and disclose Personal Information with our Marketing Affiliates for the purpose of providing you different marketing offers, which we, or our Marketing Affiliates, believe are relevant for you.

    \r\n

    We will use your Personal Information for the purpose of providing you with promotional materials solely where we have a legitimate interest in doing so, or where we have obtained your affirmative consent.

    \r\n

    You have the possibility at any time to decline receiving further marketing offers from us or from our business partners and marketing affiliates by either: following the links inserted in the promotional emails (e.g., selecting the opt-out link) or contacting our customer support. Please note that even if you unsubscribe from our marketing mailing list, we shall continue to send you service-related updates and notifications.

    \r\n \r\n
    5. WITH WHOM WE SHARE INFORMATION?
    \r\n

    We do not rent, sell, or share your Personal Information with third parties (\"Recipients\") except as described in this Policy. The Personal Information will be disclosed to Recipients only to the extent required for the specific purpose, as stipulated in this Policy.

    \r\n

    We disclose Personal Information with any of the following recipients:

    \r\n\r\n
      \r\n
    • \r\n

      Companies within the Company and other affiliated companies;

      \r\n
    • \r\n
    • \r\n

      Subcontractors and third party service providers, as well as their subcontractors, which by way of example include (but is not limited to) cloud computing companies, marketing affiliates, identity verification and fraud prevention services, and other data verifiers;

      \r\n
    • \r\n
    • \r\n

      Payment service providers, payment processors

      \r\n
    • \r\n
    • \r\n

      To any third parties who provide services in relation to the operation or promotion of the Service;

      \r\n
    • \r\n
    • \r\n

      Auditors, contractors or advisers of any of the Company’s business processes;

      \r\n
    • \r\n
    • \r\n

      To any third parties who investigate, detect or prevent fraudulent or illegal activity (e.g. governmental authorities, police, banks and other investigatory organizations);

      \r\n
    • \r\n
    • \r\n

      Governmental and regulatory bodies, in accordance with applicable laws and regulations;

      \r\n
    • \r\n
    • \r\n

      Law enforcement agencies or authorities, as a response to their request; and

      \r\n
    • \r\n
    • \r\n

      Potential purchasers or investors in any of the companies within the Company's group (if applicable), or in the event of a corporate transaction (e.g. sale of a substantial part of our business, merger, reorganization, bankruptcy, consolidation or asset sale of an asset or transfer in the operation thereof) in relation to any company within the Company (in such event, the acquiring company or transferee will assume the rights and obligations as described in this Policy).

      \r\n
    • \r\n
    • \r\n

      Research, technical diagnostics and analytics vendors;

      \r\n
    • \r\n
    • \r\n

      Marketing and advertising partners, in accordance with our marketing policy (see above, under \"Marketing\"); and

      \r\n
    • \r\n
    • \r\n

      Whenever we believe in good faith that disclosure is necessary to protect our rights or legal claims, enforce our policies (including our Terms of Use and Policy), protect your safety or the safety of others, as well as to investigate or prevent any fraud, for security reasons or to help us with any other related technical issue.

      \r\n
    • \r\n
    \r\n
    6. INTERNATIONAL TRANSFER OF INFORMATION
    \r\n

    Since we operate globally, it is necessary for the provision of the Service and to the extent required for the specific purpose, as stipulated in this Policy to transfer your Personal Information to countries outside the European Economic Area (\"EEA\"). The data protection and other laws of these countries are not as comprehensive as those in the EEA.

    \r\n

    In these circumstances, we use our best efforts to ensure that your Personal Information is protected in accordance with our Policy, through contractual means (such as by using the standard contractual clauses approved by the relevant European Commission for data transfer, as available here) or other means (such as ensuring that the European Commission decisions determined that such jurisdictions offer an adequate level of protection as available here).

    \r\n

    For more information about the transfer of your Personal Information outside of the EEA, our contact details are available under the section 12. \"HOW TO CONTACT US?\".

    \r\n \r\n
    7. THIRD PARTY TRACKING TECHNOLOGIES
    \r\n

    We use third-party advertising technology across our Websites to serve advertisements when you visit or use our Service. We use and authorize third parties to use web beacons, cookies, pixels, scripts, tags and other technologies (\"Tracking Technologies\").

    \r\n

    The Tracking Technologies automatically collect information about you, your online behavior on the Websites, and your device (for example your computer or mobile device), for different purposes, including improving and personalizing your navigation on our Service and enhancing our Service’ performance. Third parties use this information to provide you with targeted content.

    \r\n

    You can set your browser to refuse all third party cookies, or to alert you when cookies are being sent, also you can opt-out of many third party ad networks, including those operated by members of the Network Advertising Initiative (\"NAI\") and the Digital Advertising Alliance (\"DAA\").

    \r\n

    We also allow third parties to collect information about you through Tracking Technologies. To learn more please visit our Cookie Notice.

    \r\n

    For more information regarding this practice by NAI members and DAA members, and your choices regarding having this information used by these companies, including how to opt-out of third party ad networks operated by NAI and DAA members, please visit their respective websites: optout.networkadvertising.org and www.aboutads.info/choices.

    \r\n\r\n
    8. RETENTION OF PERSONAL INFORMATION
    \r\n

    If you have registered with an account through our Service, the Company will retain your Personal Information during the period your account is active. In addition, the Company will retain your Personal Information for additional periods, to enable the Company to meet its legal obligations under applicable laws or regulations.

    \r\n

    In addition, the Company shall retain your Personal Information for longer periods, provided that retaining such information is only necessary for the Company’s legitimate interests, such as fraud prevention and record keeping, resolving or excising claims regarding potential disputes.

    \r\n \r\n
    9. YOUR RIGHTS
    \r\n

    You have certain rights regarding the collection and processing of Personal Information. To the extent these rights apply to and concern you, you can exercise them by contacting us via the contact details available under the section below \"HOW TO CONTACT US?\" and exercise the following rights:

    \r\n
      \r\n
    1. Rights of access – You can obtain a copy of the Personal Information held by the Company at any time;

    2. \r\n
    3. Right of data portability – You have the right to receive your Personal Information, in a structured, commonly used and machine-readable format and to request that your Personal Information be transmitted to a third party of your choice;

    4. \r\n
    5. Right of rectification – In the event that the data held about you by the Company is inaccurate, incomplete or outdated, you have the possibility to request the rectification of said data (except in cases where the information is required to be kept in its original format under any applicable laws and regulations);

    6. \r\n
    7. Right of erasure – You have the possibility at any time to request that the Company erases data held about you by sending an email to the Company as outlined in this Policy. However, you are advised that with the deletion of your Personal Information, you might not be able to use the Service anymore or the account might be totally closed;

    8. \r\n
    9. Right to restriction of processing, objection to processing – At any time, you have the right to request that the Company restricts or ceases to conduct certain data processes provided that there exists no other lawful basis on which the Company is authorized to process said data;

    10. \r\n
    11. Right to withdraw your consent – You have the right to withdraw your given consent at any time. The withdrawal of consent will not affect the lawfulness of processing;

    12. \r\n
    13. Right to lodge a complaint – All requests, complaints or queries should be addressed to the Company with the subject ‘Privacy’. We will consider any requests, complaints or queries and provide you with a reply in a timely manner. You can also file a complaint with the relevant data protection authority should you not be satisfied with the way in which we handle your Personal Information. We take our obligations seriously and we ask that any concerns be first brought to our attention, so that we can try to resolve this.

    14. \r\n
    \r\n

    Please note that these rights are not absolute, and can be subject to our own legitimate interests and regulatory requirements. You are welcome to contact us for any questions, requests or complaints through our contact details below.

    \r\n

    We will make an effort to reply within a reasonable timeframe. Please feel free to reach out to us at any time. If you are unsatisfied with our response, you can lodge a complaint with the competent supervisory authority.

    \r\n

    Also, you should be aware that unless you have registered and created an account on our Website, we could not be able to respond to your request as we do not have sufficient information to identify you. We could also rectify, replenish or remove incomplete or inaccurate information, at any time and at our own discretion, in accordance with our internal policies. Similarly, we will ask you to provide us with additional information in order to adequately verify your identity upon your request.

    \r\n \r\n
    10. CHANGES TO THE PRIVACY POLICY
    \r\n

    We reserve the right to change this Policy at any time, so please re-visit this page frequently. We will use reasonable efforts to notify you in the event substantial changes are made to this Policy, as required by law. Any modifications, updates, alteration will be effective upon our publishing of this Privacy on our Websites and as of the stated “Last Revised” date, and your continued use of the Service after the Last Revised date will constitute acceptance of, and agreement to be bound by those changes.

    \r\n \r\n
    11. LANGUAGE VERSION
    \r\n

    The Policy has been drafted in the English language, which is the original and controlling version of this Policy. All translations of this Policy into other languages shall be solely for convenience and shall not control the meaning or application of this Policy. In the event of any discrepancy between the meanings of any translated versions of the Policy and the English language version, the meaning of the English language version shall prevail.

    \r\n \r\n
    12. HOW TO CONTACT US
    \r\n

    If you have any general questions about the Service or the information that we collect about you and how we process it, please contact us via email:

    \r\n \r\n

    We will make an effort to reply within a reasonable timeframe. Please feel free to reach out to us at any time. If you are unsatisfied with our response, you can reach out to the applicable data protection supervisory authority.

    \r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default PrivacyText;","import ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components//seo/Breadcrumb.js\";\r\nimport PrivacyText from 'components/text/Privacy_Text.js';\r\nimport MetaTags from 'components//seo/Meta_Tags.js';\r\nimport Footer from 'components/sections/Footer.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect } from \"react\";\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nconst PrivacyPolicy = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.privacy_policy });\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.privacy_policy.title}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default PrivacyPolicy;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import React from 'react';\r\n\r\nimport Backend from 'Backend.js';\r\nimport Images from 'utils/Images.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Checkbox } from '@mui/material';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang.js';\r\nimport Consent from 'utils/Consent.js';\r\nimport UserData from 'User_Data.js';\r\nimport Redirects from 'utils/Redirects.js';\r\n\r\nconst backendURLs = Backend.backendURLs;\r\nconst verifyBotURL = backendURLs.verifyBotURL;\r\n\r\nconst globalConf = require('global_conf.json');\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst cookies = configuration.cookies;\r\nconst queryVariables = configuration.query_variables;\r\nconst tokenSourceTypes = configuration.token_source_types;\r\n\r\nconst captchaConnection = globalConf.captcha_connection;\r\n\r\nconst captchaSiteKey = captchaConnection.site_key;\r\n\r\nlet thisComponent;\r\n\r\nclass EmailSignupForm extends React.Component {\r\n\r\n webviewClose() {\r\n window.close();\r\n }\r\n\r\n \r\n getQueryVariable(variable) {\r\n var query = window.location.search.substring(1);\r\n var vars = query.split('&');\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) === variable) {\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: null,\r\n btnDisabled: true,\r\n checkboxDisabled: false,\r\n checkboxChecked: false\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n render() {\r\n const { error, btnDisabled, checkboxDisabled, checkboxChecked } = this.state;\r\n return (\r\n <>\r\n
    \r\n \r\n

    \r\n {Content.getValue('start_your_journey_title_1')}\r\n \r\n {Content.getValue('start_your_journey_title_2')}\r\n \r\n \r\n {Content.getValue('start_your_journey_title_3')}\r\n \r\n

    \r\n
    \r\n {\r\n thisComponent.setState(prev => ({ error: null, checkboxDisabled: true }));\r\n this.processRegistration();\r\n }}\r\n />\r\n

    {Content.getValue('start_your_checkbox')}

    \r\n
    \r\n \r\n {\r\n Redirects.makeRedirectAfterLogin(false);\r\n }}\r\n >\r\n {Content.getValue('start_now_button')}\r\n \r\n \r\n

    {Content.getValue('above_18_yo')}

    \r\n
    \r\n \r\n );\r\n }\r\n\r\n removeCaptcha() {\r\n\r\n let captchaScript = document.getElementById('google-captcha');\r\n if (captchaScript) {\r\n captchaScript.remove();\r\n }\r\n\r\n const nodeBadge = document.querySelector('.grecaptcha-badge');\r\n if (nodeBadge) {\r\n document.body.removeChild(nodeBadge.parentNode);\r\n }\r\n\r\n }\r\n\r\n componentWillUnmount() {\r\n this.removeCaptcha();\r\n }\r\n\r\n sendRequest(url, body) {\r\n\r\n const verificationToken = this.getQueryVariable(queryVariables.verification_token);\r\n fetch(url, {\r\n credentials: \"include\",\r\n method: Backend.backendMethods.post,\r\n headers: Backend.generateVerificationHeader(verificationToken),\r\n body: JSON.stringify(body)\r\n })\r\n .then(async function (res) {\r\n if (res.status === Backend.backendResponseCodes.internalServerErrorCode || res.status === Backend.backendResponseCodes.serviceUnavailableCode) {\r\n thisComponent.setState({\r\n error: Backend.loadBackendMessages().errorMessage,\r\n });\r\n setTimeout(function () {\r\n thisComponent.setState(prev => ({ ...prev, error: null }));\r\n },\r\n 3000);\r\n return;\r\n }\r\n let result = await res.json();\r\n if (res.ok) {\r\n await Backend.setUserData(result, tokenSourceTypes.telegram);\r\n thisComponent.setState(prev => ({ error: null, btnDisabled: false, checkboxChecked: true }));\r\n } else {\r\n thisComponent.setState(prev => ({ error: null, btnDisabled: true }));\r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n processRegistration() {\r\n\r\n window.grecaptcha.ready(function () {\r\n window.grecaptcha.execute(captchaSiteKey, { action: 'submit' }).then(function (token) {\r\n const startRegistration = function() {\r\n const gclient_id = UserData.getItem(userDataKeys.gclient_id);\r\n const fbclid = UserData.getCookie(cookies.fbc) || UserData.getItem(userDataKeys.fbclid);\r\n const fbp = UserData.getCookie(cookies.fbp);\r\n const postBody = { \r\n captchaToken: token, \r\n gclient_id: gclient_id, \r\n fbclid: fbclid,\r\n fbp: fbp\r\n };\r\n thisComponent.sendRequest(verifyBotURL, postBody);\r\n };\r\n Backend.startAfterAnalyticsInitialized(startRegistration);\r\n\r\n });\r\n });\r\n\r\n }\r\n}\r\n\r\nexport default EmailSignupForm;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${ownerState.color === 'default' ? theme.vars.palette.action.activeChannel : theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: (theme.vars || theme).palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n}));\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium',\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.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 * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: 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/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), 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 * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import AccountAccessPageHeader from 'components/sections/Account_Access_Page_Header.js';\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport StartYourJourneyForm from 'components/forms/Start_Your_Journey_Form.js';\r\nimport Footer from 'components/sections/Footer.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { useEffect } from 'react';\r\n\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst captchaConnection = globalConf.captcha_connection;\r\n\r\nconst captchaSiteKey = captchaConnection.site_key;\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\nconst urls = configuration.urls;\r\n\r\nconst googleCaptchaURL = urls.google_captcha_url;\r\n\r\nconst StartYourJourney = () => {\r\n const menuOptions = Content.getValue('menu_options');\r\n const existingScript = document.getElementById('google-captcha');\r\n if (!existingScript) {\r\n const script = document.createElement('script');\r\n script.src = Formatting.format(googleCaptchaURL, [\"(captchaSiteKey)\"], [captchaSiteKey]);\r\n script.id = 'google-captcha';\r\n document.body.appendChild(script);\r\n }\r\n\r\n useEffect(() => {\r\n const menu = document.getElementById('menu-div');\r\n menu.style.display = 'none';\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.email_signup });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default StartYourJourney;","import React, { Component } from 'react';\r\nimport { RedirectWithLang } from 'utils/RedirectWithLang.js';\r\n\r\nconst globalConf = require('global_conf.json');\r\n\r\nconst websiteConnection = globalConf.website_connection;\r\nconst host = websiteConnection.frontend_host;\r\n\r\nclass TermsText extends Component {\r\n\r\n render() {\r\n return (\r\n
    \r\n

    Last Updated: October 2023

    \r\n

    These Terms of Use (\"Terms\") constitute a binding legal agreement between Pythia Plus Ltd., (\"Company\", \"us\", or \"we\") and yourself (\"End User\", \"you\" or \"your\"), and govern your access and use of all features and other services provided by the Company, including without limitation our website www.treatcoin.com (\"Website\"; collectively the \"Services\").

    \r\n

    By registering an account and accessing the Services, you affirmatively signify that you have read, understood, and agreed to be bound by these Terms as well as our Privacy Policy and Cookies Policy, which we may update from time to time, each incorporated herein by reference (\"Policies\"). If you do not agree to these Policies, you must not register an account or otherwise use or access the Services.

    \r\n

    We may revise the Terms at any time by updating the Terms on our Services. You should periodically visit these Terms to review the current terms that apply to your use of the Services. Any use of the Services by you after our publication of any such changes shall constitute your acceptance of these Terms as modified. We may, at our sole discretion and at any time, discontinue providing the Services, or any part thereof without notice.

    \r\n

    THE SERVICES ARE STRICTLY FOR ENTERTAINMENT PURPOSES ONLY. THE SERVICES ARE FREE OF CHARGE, NO ACTUAL MONEY OR PURCHASE IS REQUIRED IN ORDER TO PLAYOR TO ENGAGE WITH THE SERVICES.

    \r\n

    By registering an account or otherwise accessing the Services, to the maximum extent permitted under Applicable Law (as defined further below), you agree that any claim, dispute or controversy of whatever nature arising out of or relating to these Terms, or your use of the Services shall be resolved accordance with the process described in Section 15. \"Miscellaneous\" below.

    \r\n\r\n
    1. DEFINITIONS
    \r\n

    For the purpose of this Agreement, the following capitalized terms shall have the meaning ascribed to them hereunder:

    \r\n
      \r\n
    1. \"Account\" means an account you created via our Website, including through any third party (such as Facebook, Telegram, Google), that allows you to access the Services.

    2. \r\n
    3. \"Account Information\" means any type of information that we may require from End User at the registration process, including but not limited to email address, username, password and your social accounts ID details.

    4. \r\n
    5. \"Affiliate\" means Company's subsidiaries, joint ventures and other corporate entities and their agents, consultant, employees, officers and directors.

    6. \r\n
    7. \"Applicable Law\" means any law, statute, rule, regulation, order, circular, decree, directive, judgment, decision or other similar mandate of any applicable central, national, state or local governmental authority having competent jurisdiction over, or application, related to the End-User, or subject matter in question.

    8. \r\n
    9. \"Intellectual Property Rights\" means any patents, trademarks, copyrights, design rights (whether registrable or not), logos, copyright, trade, business and domain names, moral rights, know-how, trade secrets, rights in databases, rights in computer software and any other similar rights or obligations whether registrable or not (and including all applications and renewals or extensions of such rights) in any country.

    10. \r\n
    11. \"Quarterly Treat Coins Program\" means any ongoing periodical programs, as presented onsite from time to time, awarding Treat Coins to the top one hundred (100) End Users who earned the most Treat Coins during a specific month (such as by participating in Offers and/or by referring Referred Users). The Company may change the number of winners for each program, as well as the program’s winning threshold and/or the period of the program, at any time and at its sole discretion. The program does not require payment or purchase of any kind.

    12. \r\n
    13. \"Offers\" means special programs, offers, activities (e.g. commercials to watch, surveys to fill out, apps to download, etc.) as presented onsite and may change from time to time, by the Partners on the Services in which End User can participate to earn Treat Coin. The rules for participating in each Offers are available on the Partner's websites.

    14. \r\n
    15. \"Partner(s)\" means Affiliates as well as any third-party service provider that provide Offers to the End User on or through the Services.

    16. \r\n
    17. \"Personal Wallet\" as defined in Section 7.

    18. \r\n
    19. \"Prizes\" or \"Payouts\" as defined in Section 6.

    20. \r\n
    21. \"Provider\" as defined in Section 6.

    22. \r\n
    23. \"Referred User(s)\" means a natural person and/or legal entity who is referred directly by an End User and who registers to the Services via our Website, Facebook, Telegram, Google or email.

    24. \r\n
    25. \r\n

      \"Restricted Territories\" means\r\n

        \r\n
      1. territories listed below; and/or

      2. \r\n
      3. a country or territory that is the subject of country wide or territory wide sanctions, embargoes, or other restrictive measures administered or enforced by any country or government or inter-governmental organization; and/or

      4. \r\n
      5. any other jurisdiction which prohibits the use of the Services or receipt of Services or any such similar activity.

      6. \r\n
      \r\n

      The Restricted Territories shall include Crimea, Donetsk, Luhansk, Kherson and Zaporizhia regions of Ukraine, Russia, Lebanon, Cuba, Sudan, Myanmar, Iran, North Korea, or Syria, Mainland China, Algeria, Egypt, Bangladesh, Afghanistan, Bolivia, Iraq, Kuwait, North Macedonia, Nepal, Morocco, Qatar, and any other jurisdiction which is subject to sanctions, embargoes or trade restrictions by any applicable body or authority.

      \r\n

      \r\n
    26. \r\n
    27. \"Restricted Persons\" means any restricted persons who are not permitted to use or access the Services and shall refer to any person, firm, company, partnership, trust, corporation, entity, government, state or agency of a state or any other incorporated or unincorporated body or association, association or partnership (whether or not having separate legal personality) that is (a) established or lawfully existing under the laws of a Restricted Territories or (b) is listed on a sanctions list by the governments of the United States or Israel.

    28. \r\n
    29. \"Team\" means a group created and led by an End User (\"Prime End User\") and which may contain up to three (3) Referred Users, whereby the 1st Referred User was referred by the Prime End User, the 2nd Referred User was referred by the 1st Referred User, and the 3rd Referred User was referred by the 2nd Referred User.

    30. \r\n
    31. \"Team Group\" means a group comprised of a Team (\"Prime Team\") whereby each of the Referred Users in the Prime Team has composed a Team.

    32. \r\n
    33. a Team Group is limited to up to 9 Referred Users (i.e. three rounds of generated Referred Users) . \"Treat Coins\" means virtual credits, including without limitation, virtual points which can be earned for example by participating in and completing Offers or winning Quarterly Treat Coins Program or as detailed in these Terms and which are exclusively for use in the Services.

    34. \r\n
    35. \"Use Period\" as defined in Section 5.

    36. \r\n
    37. \"USDT\" means the digital stablecoin issued by Tether Limited originally designed to be pegged to the United States dollar.

    38. \r\n
    39. \"Website(s)\" means the site, www.treatcoin.com and any other sites as defined by the Company, at its sole discretion, from time to time.

    40. \r\n
    \r\n\r\n
    2. Use of our Services
    \r\n

    To access or participate in the Offers that are made available on our Website by our Partners, you must create an Account with us. You may create an Account to register to our Services via our Website, your Facebook account, Telegram, Google or your email address.

    \r\n

    Please note that the Services may not be fully compatible with all platforms, devices, and operating systems, therefore we encourage you to verify all the compatibility requirements yourself and update where it is needed third party software from time to time in order to receive the Services, updates, and to participate in the Offers available on our Website.

    \r\n

    When you create an Account, you will be asked to provide Account Information, which may involve:

    \r\n
      \r\n
    1. Registering a unique username and password;

    2. \r\n
    3. Providing contact information, such as your email address;

    4. \r\n
    5. Providing any other information that we request during the account registration process.

    6. \r\n
    \r\n

    By accessing or using our Services, you agree to abide by all the following:

    \r\n
      \r\n
    1. You are solely responsible for keeping your Account Information secure and for anything that occurs on your Account, whether or not the actions were taken by you or an unauthorized third party that has gained access to your Account;

    2. \r\n
    3. You shall only register for a single Account and you shall not use or access multiple Accounts at the same time;

    4. \r\n
    5. You shall not create an Account with a false identity or provide incorrect information, or create an Account on behalf of someone other than yourself;

    6. \r\n
    7. You shall not share or give access to your Account Information to anyone, or do anything else that might jeopardize your Account's security;

    8. \r\n
    9. You shall notify us immediately, as detailed in Section 18 \"Contact Us\" of these Terms, if you have lost control of your password or you suspect there is an unauthorized activity in your Account, including theft or unauthorized disclosure of your Account Information;

    10. \r\n
    11. You shall ensure that you log out or exit from your Account (if applicable) at the end of each login to our Services;

    12. \r\n
    13. You have reached the age of majority both in the territory in which you reside;

    14. \r\n
    15. You are legally capable of entering into a binding contract, and you are not aware of any legal, regulatory, commercial, contractual or other restriction against your participation in our Service, the Offers in accordance with these Terms;

    16. \r\n
    17. Your use of the Services does not violate any Applicable Law;

    18. \r\n
    19. You are not a Restricted Person or a citizen, national, resident (tax or otherwise) of Restricted Territories;

    20. \r\n
    21. You will not hold us responsible or liable, for any loss, damage, unauthorized access, or any breach of your Account and the disclosure of your Account Information.

    22. \r\n
    \r\n

    As the holder of your Account, you are solely responsible for complying with these Terms, and only you are entitled to all benefits accruing thereto.

    \r\n\r\n
    3. Account Verification
    \r\n

    We reserve the right to verify your registration details, such as name, address, age, at any time, by requesting certain documents. In the event that you do not provide the required documentation, we may at our sole discretion refuse to provide you with the Services and withhold any Prizes, funds, Treat Coins where applicable.

    \r\n

    You agree to update any information or data you provided or to provide additional documentation as part of ongoing efforts to prevent illegal and fraudulent activities, or to comply with any other policies or protocols we elect to put in place. You agree that all information and data that you provide to us, either at the time you register for an account or at any subsequent time, will be truthful, accurate and verifiable in all respects, and that by providing such information and data, you consent to us submitting it to third party verification providers.

    \r\n

    To access or use the Services, including to access certain Offers you may be required at Company's sole discretion, to –

    \r\n
      \r\n
    1. Undergo and successfully pass know-your-customer (KYC) and customer due diligence procedures and/or screening. In any event, you acknowledge that you may be subject to additional KYC and screening procedure when you withdrawal Treat Coins that worth more than five thousand dollars (USD $5.000) from your account or in any other circumstances deemed necessary by the Company;

    2. \r\n
    3. Execute and deliver to the Company, or to any other entity on its behalf, documents related to the Services under any Applicable Law, including any anti-money laundering and counterterrorism financing laws in any jurisdiction.

    4. \r\n
    \r\n
    4. Device and Personal Information
    \r\n

    Using the Services require an internet connection to our servers and you understand and acknowledge that you are solely responsible to pay for any fees, including Internet connection or mobile fees necessary to access or use our Services.

    \r\n

    We may need to collect certain information from you and your internet-enabled device in order to make the software and Services available to you, such as your Account Information, hardware system, internet connection data and any other data related to the operation and provision of the Services. Please note that we will use and retain such information in accordance with our Privacy Policy.

    \r\n\r\n
    5. Offers and Treat Coins
    \r\n

    When accessing or using our Services, you may choose to select and participate in different types of Offers, as presented onsite and may be change from time to time.\r\n
    You understand and acknowledge that our Services will provide you with Offers, and when you choose to participate in an Offer, you will be redirected to the Partner's website.\r\n

    \r\n

    It is important that you understand that you will be bound by the Partner's terms and conditions as well as the rules that apply to each type of Offer.

    \r\n

    The amounts and numbers set in this section may be amended for time to time, as presented onsite, as per the Company's sole discretion.

    \r\n

    Please review and understand the rules of each Offer as well as any related terms and conditions thereof. Upon your use of the Services, you acknowledge and understand that you may –

    \r\n
      \r\n
    1. Participate in the Offer individually, or collectively as part of a Team or a Team Group;

    2. \r\n
    3. Earn Treat Coins in one of the following ways –\r\n

        \r\n
      1. In each Team, for each Referred User who completed the registration process successfully in accordance with the Terms, the Prime End User may earn ten (10) Treat Coins for the 1st Referred User, four (4) Treat Coins for the 2nd Referred User and two (2) Treat Coins for the 3rd Referred User;

      2. \r\n
      3. For each Offer you complete successfully according to the Terms and the terms of the respective Offer, the Partner's rules and policies;

      4. \r\n
      5. In each Team, for each Offer completed successfully by the Referred User according to the Terms, the Partner's rules and policies, the Prime End User shall earn the following percentage of Treat Coins, limited to three (3) Referred Users only –\r\n

          \r\n
        • 1st Referred User: The Prime End User will receive 13% from the total of Treat Coins received by the 1st Referred User;

        • \r\n
        • 2nd Referred User: The End User will receive 5% from the total of Treat Coins received by the 2nd Referred User;

        • \r\n
        • 3rd Referred User: The End User will receive 2% from the total of Treat Coins received by the 3rd Referred User;

        • \r\n
        \r\n

      6. \r\n
      7. By winning Quarterly Treat Coins Programs. You understand and accept that you –\r\n

          \r\n
        • May redeem only Treat Coins earned by winning the Quarterly Treat Coin Program for cash, only after reaching a threshold of $32USD worth of Treat Coins.

        • \r\n
        • Cannot use Treat Coins received as part of a given Quarterly Treat Coins Program for any other Quarterly Treat Coins Program;

        • \r\n
        • Cannot use the Treat Coins received as part of the Quarterly Treat Coins Program for any other use, except as stated otherwise by the Company.

        • \r\n
        \r\n

      8. \r\n
      \r\n

    4. \r\n
    5. Win Prizes as described further below in Section 6.

    6. \r\n
    \r\n

    You agree that our Services include an opportunity to earn Treat Coins only, and that we do not require you to buy Treat Coins or to make any purchase of any kind when accessing or using the Services.

    \r\n

    However, please note that we may be required to collect a fee when you decide to receive USDT for your Treat Coins converted into USDT, subject to these Terms and additional specific terms which may appear on the Services.

    \r\n

    You may not distribute, transfer, share, sublicense, trade, assign, exchange, purchase or sell Treat Coins to any End User or anyone outside the Services or perform any action with your Treat Coins that is considered illegal by us or contravene to these Terms or any Applicable Law.

    \r\n

    We do not recognize any purchase or transfer made outside of our Services, and you acknowledge and accept that we will not be liable for any claims or damages incurred by you or any End User as a result of Treat Coins purchased or obtained from illegitimate sources, rather than through the means provided by the Services. Any attempt to distribute, transfer, share, sublicense, trade, assign, exchange, purchase or sell Treat Coins to any End User or anyone outside the Services or perform any other action related to your Treat Coins in violation of these Terms are prohibited and void and may subject the End User to the termination of his or her Account, a lifetime ban from using the Services and/or any legal action.

    \r\n

    Please note that you are able to access all the information about your rank in the Quarterly Treat Coins Program, your Treat Coins balance, the Treat Coins balance of your Referred Users, as well as other statistics in the settings in our Website.

    \r\n

    Notwithstanding your possession of Treat Coins, you acknowledge and agree that you –

    \r\n
      \r\n
    1. Do not in fact own Treat Coins, and the amounts of any Treat Coins in your Account balance do not constitute a real world balance, or refer to any stored value, credit balance of fiat currency or its equivalent;

    2. \r\n
    3. Have no right, ownership, title or interest in Treat Coins that appear on your Account balance whether earned or won by you and/or awarded by us.

    4. \r\n
    \r\n

    We strongly recommend you to save or screenshot each Offer you completed successfully, as you may be required to provide us with such proof in the event of any issue that may occur or arise related to the Offer, the distribution of Treat Coins and/or payments.\r\n
    In the event your Account balance with respect to Treat Coins is incorrect due to system maintenance or other technical failures, we will use commercially reasonable efforts to correct your Account balance.\r\n

    \r\n

    Your use of any Treat Coins must be solely for legitimate purposes within the Services, and must comply with these Terms at any and all times.

    \r\n

    You acknowledge and agree that we may change, modify or update the Terms in connection with earning or receiving Treat Coins from time to time, and that such revised terms will apply to your use of the Services as well as all subsequent Offer in which you participate. You further agree that you will review these Terms and any terms regarding how to earn or receive Treat Coins prior to entering or participating in any Offer.

    \r\n

    It is important to understand that your Treat Coins have an expiration date (\"Use Period\") as presented onsite, and which may differ according to the following –

    \r\n
      \r\n
    1. Treat Coins that you earned through Referred User are only valid and available for one (1) given Quarterly Treat Coins Program;

    2. \r\n
    3. In any event, please note that we reserve the right to permanently confiscate, forfeit, revoke, remove, deduct from your Account any Treat Coins not used within the Use Period or in the event that we determine, in our sole discretion, that you have not logged in to your Account during such Use Period. In this case, you acknowledge and accept that we are under no obligation to provide you with a refund for any other reason, and that you will not receive any money or any other compensation for unused Treat Coins whether your Account is closed, terminated, voluntary or involuntary, or the Use Period of your Treat Coins has expired.

    4. \r\n
    \r\n

    We take fraud very seriously. Please note that in addition to taking any desirable or necessary legal action, we reserve the right to terminate your use of the Services and/or to permanently confiscate, forfeit, revoke, remove any Treat Coins from your Account that we determine, in our sole discretion, were acquired using fraudulent or otherwise improper means.

    \r\n

    We will notify you prior to such confiscation in order to provide an opportunity for you to make an appeal via the Services; provided, however, that our determination, in our sole discretion, shall be final and binding on you.

    \r\n\r\n
    6. Prizes and Payouts
    \r\n

    By using our Services, you understand and acknowledge that you may select different Prizes by earning Treat Coins as detailed in Section 5 of these Terms and as presented onsite.

    \r\n

    The Prizes can be changed from time to time, per the Company's sole discretion.

    \r\n

    Each Treat Coins has a virtual value of $0.01 USD, therefore if you have sufficient Treat Coins in your Account balance, you may be able to use these Treat Coins to obtain Prizes.\r\n
    You understand and accept that you may only use your Treat Coins to select one of the following Prizes -\r\n

    \r\n
      \r\n
    1. Receive Gift cards (e.g. accessories, electronics, prepaid card, home and living, wellness and sports) or experience vouchers (e.g. tour, arts and culture, adventure, culinary) or certain virtual cards (as offered and available within your region) to be used only on our third party gift provider XOXOday (Plum) or any other third party gift provider of our choice;

    2. \r\n
    3. Redeem your Treat Coins for cash to your bank account. This will be made by our third party payment provider Paxum or any other third party payment provider of our choice;

    4. \r\n
    5. Redeem your Treat Coins for USDT by connecting your Personal Wallet to our third party provider Faucetpay or any other third party provider of our choice, subject to your compliance with these Terms, as well as Applicable Law (collectively, referred as (\"Prizes\")); or

    6. \r\n
    7. Your right to redeem or use Treat Coins for Prizes is subject to earning an amount of three thousand two hundred Treat Coins that has an equivalent value of at least twenty five USD ($25USD), and contingent upon your compliance with all of the provisions of the Terms and Applicable Law. The Company may amend this threshold from time to time, as presented onsite.

    8. \r\n
    \r\n

    Failure to comply with any of the provisions contained in the Terms will result in the termination of your Account and forfeiture of your Treat Coins.

    \r\n

    We reserve the right to perform background checks on each End User when the End User have accumulated on its Account balance a certain amount of Treat Coins and wishes to select a Prize, or at any time where we believe that the End User's Account involves suspicious or illegal activities.

    \r\n

    We may request the End User to provide us with further documentation, for any reason, including (but not limited to) any investigation into the End User's identity and registration details. We are under no obligation to advise the End User that such investigation is taking place. In the event the Company's requests for documents are not completed or if the Company suspects that the documents have been tampered with, or are in any way misleading or misrepresenting, the Company shall be under no obligation to accept such documents as valid and may withhold any past or future Treat Coins which have accrued or which shall accrue to the End User benefit as well as forfeit any Treat Coins on your Account balance and/or terminate these Terms with immediate effect.

    \r\n

    Please note that as described above, some of the Prizes made available on our Services may grant End User the opportunity to access and use their Treat Coins as credits on our Affiliate websites.

    \r\n

    You understand and acknowledge that in such case, you are solely responsible for the Prize you choose and we will not be liable for any action you undertake that might be considered as illegal in your jurisdiction and/or under Applicable Law.

    \r\n

    You also agree and confirm that you will not redistribute your Treat Coins and/or your Prizes to anyone and you will not permit any minor or any other person to benefit from the Treat Coins and/or Prizes that you have earned or won through the Services.

    \r\n

    You hereby release the Company from all liability relating in any way to any of your action that you may take or any activity in which you may engage that relates in any way to the Company or use of the Services.

    \r\n

    As described above, you have the possibility to redeem your Treat Coins for cash in your bank account. Please note that the payments are made through a third-party payment provider service to be paid with. The payment (less any deductions) shall be transferred by us to you through a third-party payment provider of our choice usually within 7 business days, after the completion of such payment. It is agreed that once the Company has forwarded payment to the third-party service provider chosen by us, then the Company will be deemed to have satisfied all its duties and obligations to make such payment to you.

    \r\n

    You accept that when you use your Treat Coins for the purpose of selecting Prizes, upon the selection of your Prize, your action performed is final and is not refundable, transferable or exchangeable, except at our sole discretion. It is important to understand and accept, that all Prizes may –

    \r\n
      \r\n
    1. Vary depending on your jurisdiction, Applicable Law, or our own discretion;

    2. \r\n
    3. Be available for a certain period of time;

    4. \r\n
    5. Be changed, modified, removed, suppressed, adapted, or replaced by us for other Prizes of our choice, at any time and at our own discretion;

    6. \r\n
    7. Be provided by other third party.

    8. \r\n
    \r\n

    Please note: We may use other third parties to perform certain business-related functions such as processing payments or providing gift cards on our behalf (\"Providers\").

    \r\n

    You are solely responsible for reviewing the terms and conditions governing your use of the Provider's services. You understand and acknowledge that the Provider's terms of services may differ from these Terms.

    \r\n

    The Prizes are solely for End User that registered successfully on our Services, who has a valid active Account and who complies with these Terms. You understand and accept that the Prizes to which you may be entitled are strictly for your own benefit and that no one else is entitled to them or to benefit from them. Failure to comply with these Terms may result in the closing of your Account and the loss of all Treat Coins accumulated through your use of the Services.

    \r\n

    Please note that we determine the value (i.e. the exchange rate) of Treat Coins in our sole discretion, and we further reserve the right to modify the exchange rate between actual currency and Treat Coins from time to time, with or without reason, in our sole discretion. By your use of the Services, you confirm your understanding of and accept the modified exchange rate of any Treat Coins at the time you wish to use, redeem Treat Coins for Prizes.

    \r\n

    When you redeem Treat Coins for USDT or cash you agree to pay all applicable charges for such action, including applicable taxes incurred by you or applicable gas fee. We do not provide refunds for any fees which might be related to any transaction.

    \r\n

    You agree to notify us about any billing problems or discrepancies within 10 days after they first appear on your Account statement. If you do not bring them to our attention within 10 days, you agree that you waive your right to dispute such problems or discrepancies.

    \r\n

    You are solely responsible for and agree to reimburse us for all reversals, charge-backs, claims, fees, fines, penalties and other liability incurred by us (including costs and related expenses) that were caused by you.

    \r\n

    You understand that we may be required to ask you to use or redeem your Treat Coins through an alternative payment method of our choice at any time and at our sole discretion.

    \r\n

    All Treat Coins may be confiscated, revoked, deleted, deemed void, if your Account is terminated or suspended for any reason, in our sole and absolute discretion, or if the Services are no longer available. If your Account is terminated, suspended and/or if any Treat Coins of your Account are selectively confiscated, revoked, deleted, deemed void, no refund will be granted, no Treat Coins will be credited to you or converted to Prizes, cash or other forms of reimbursement.

    \r\n\r\n
    7. Receipt of USDT
    \r\n

    We may give you, at Company's sole discretion, the possibility to receive USDT for your Treat Coins subject to Applicable Laws, these Terms and to the ratio and additional terms specified on the Website, however you understand and accept that the Services are not, nor should they be considered as (1) the provision of investment advice; (2) portfolio management; (3) financial advice; (4) exchange, custody, or transfer of crypto-assets (including USDT and any other crypto-assets) or electronic money; (5) money transmission; (6) payment service; (7) investment services or activities; (8) ancillary services under any Applicable Law; (9) any other financial, crypto-asset or otherwise regulated service, or service the provision of which requires any license, registration, permit or any regulatory or other authorization; or (10) endorsement of any third party providing one of the aforementioned activities, or equivalent of any of the above under any Applicable Law.

    \r\n

    The Services are not regulated by any financial services or investor protection laws, and you will not benefit from protections and remedies which are available to clients of regulated services against any damages which may arise from your use of the Services.

    \r\n

    In addition, with regard to the redemption of Treat Coins for USDT from our Services, you understand and acknowledge that –

    \r\n
      \r\n
    1. Redemption of Treat Coins for USDT is not permitted where it is or where it may be prohibited or in any way restricted by any Applicable Law, and it is your responsibility to ensure the compliance of such transaction with all Applicable Laws;

    2. \r\n
    3. As a prerequisite for receiving such USDT, you must provide your crypto-asset wallet address to a third party which will be chosen at our sole discretion (\"Personal Wallet\"), and such crypto-asset wallet must be compatible with the relevant type of USDT and with requirements of such third party. The Company, or any Affiliates, accept no responsibility or liability whatsoever in the event you provide the third party chosen by the Company at its sole discretion with an incorrect or an incompatible Personal Wallet. For the avoidance of doubt, we do not provide you with any crypto-asset wallet;

    4. \r\n
    5. We do not have any control over or access to your crypto-asset wallet, or any of your crypto-assets or cryptographic keys thereof.

    6. \r\n
    \r\n\r\n
    8. End Users' Representations and Prohibited Uses
    \r\n

    You may use the Services only for lawful purposes. You are solely responsible for all of your activity in connection with the Services.

    \r\n

    You warrant and represent that you are prohibited to (and shall not permit any third party to) either take any action that:

    \r\n
      \r\n
    1. s illegal, violent, threatening, abusive, invasive of any person's privacy, harassing, defamatory, libelous, false, deceptive, fraudulent, misleading, untruthful, tortuous, offensive or otherwise inappropriate, as we may determine in our sole discretion;

    2. \r\n
    3. Infringes, violates, or misappropriate any third-party right, including any copyright, trademark, patent, trade secret, moral right, privacy right or any other intellectual property or proprietary right as may now exist or hereafter come into existence;

    4. \r\n
    5. Violates any right of publicity, or other right of any person or entity, or any law or contractual obligation, including without limitation rights pursuant to data protection, anti-spam and privacy laws and regulations;

    6. \r\n
    7. Copies, modifies, adapts, translates into any language, distributes, or creates derivative works based on the Services;

    8. \r\n
    9. Sublicenses, subleases, leases, lends, assigns, sells, licenses, distributes, rent, exports, re-exports or grants other rights in the Services and any attempt by you to take such action shall be void;

    10. \r\n
    11. Decompiles, disassembles, reverses engineer, or attempts to reconstruct, identifies or discovers any source code, underlying ideas, underlying user interface techniques, or algorithms of the Services by any means whatsoever;

    12. \r\n
    13. Removes, obscures or alters any copyright and/or other proprietary notices contained on or in or otherwise connected to the Services;

    14. \r\n
    15. Involves commercial activity not expressly permitted by us;

    16. \r\n
    17. Contains any harmful or malicious software or computer codes, files or programs that are designed or intended to damage, disrupt, interfere with, or limit, the proper functionality of any software or hardware, or that enables to obtain unauthorized access to any system, data, password or other information of us, our End Users, or any other individual or entity;

    18. \r\n
    19. Uses or launches any automated system, including without limitation, \"robots,\" \"spiders,\" \"offline readers\", etc., that accesses the Services in a manner that sends more request messages to our servers than a human can reasonably produce in the same period of time;

    20. \r\n
    21. Transmits invalid data, worms, viruses, Trojan horses or any code of a destructive nature;

    22. \r\n
    23. Transmits spam, chain letters, materials related to any political campaigns, commercial solicitations, mass mailings, or any form of spam or other unsolicited texts or emails;

    24. \r\n
    25. Impersonates any individual or entity, including, without limitation, our employees or representatives;

    26. \r\n
    27. Uses a false phone number or email, identity, or attempt to use another user's Account;

    28. \r\n
    29. Uses the Services for money laundering, terrorist financing, or other illicit finance or activity;

    30. \r\n
    31. Targets children or individual under the age of majority in any jurisdiction where the Services are made available;

    32. \r\n
    33. Engages in any activity that interrupts or attempts to interrupt the operation of the Services.

    34. \r\n
    35. Performs any activity intended to defraud the Company or any third party or circumvent any contractual or legal restriction, regardless of whether such attempted act has caused Company any actual harm.

    36. \r\n
    \r\n

    Anyone who engages in, participates in, or displays behavior that may be interpreted, in our sole discretion, as unfair methods in participating in the Services, including but not limited to – (i) the opening or use of multiple accounts; (ii) collusion with or harassment of other End User; (iii) breach of these Terms; (iv) breach of security of your Account; or (v) any other act or omission (whether through the use of automated technology or otherwise), will be subject to immediate sanction (as determined by us in our sole discretion), which may include, without limitation, disabling the ability to use or access to our Services in whole or in part, as well as other legal actions. We reserve the right to disclose or report any money laundering or other suspicious activity to law enforcements and regulatory authorities.

    \r\n

    Any attempt to deliberately damage the Services or violation of criminal or civil laws and should such an attempt be made, we reserve the right to seek damages and other remedies from you to the fullest extent, as permitted under Applicable Law.

    \r\n

    We reserve the right to exercise whatever lawful means we deem necessary to prevent unauthorized use of the Services, including, but not limited to, technological barriers, IP mapping, and directly contacting your wireless (cellular) carrier regarding such unauthorized use.

    \r\n\r\n
    9. Third Party Links
    \r\n

    Portions of the Services will involve linking to websites belonging to third parties (such as Partners' websites).

    \r\n

    We have no control over third-party websites, and all use of third-party websites is at your own risk.

    \r\n

    We encourage you to carefully read the terms of use and privacy policy of such third party websites and/or services, as their terms and privacy policy, not ours, will apply to any of your interactions with such third parties as well as any specific requirements or limitation associated with their Offers or services.

    \r\n

    You should always review their practices carefully before accepting the provision of any services by these third parties.

    \r\n\r\n
    10. Treat Coin Rewards Upon Purchase
    \r\n

    Regardless of the above, Company may reward you, from time to time, with additional Treat Coins by carrying out purchases on specific Partner's website.

    \r\n

    In this regard, you accept and acknowledge all the following -

    \r\n
      \r\n
    1. The quantity of Treat Coins you earned through each specific purchase may vary and is subject to the Company's sole discretion;

    2. \r\n
    3. The allocation of Treat Coins depends solely on End Users' compliance with specific purchase conditions defined by the Company, including minimum purchase amounts, product types or any other conditions defined, from time to time, by the Company;

    4. \r\n
    5. We may ask you to provide any evidence that you have fulfilled the conditions of purchase, including sending us the confirmations or receipts. You understand that you may not be entitled to receive the Treat Coins if you do not comply with our request;

    6. \r\n
    7. We may forfeit your Treat Coins received in connection with your purchase if we identify any fraudulent or deceptive activity or deem that the confirmation or receipt that we received from you are not legitimate;

    8. \r\n
    9. You will not hold us responsible or liable for any product or service purchased on Provider's website;

    10. \r\n
    11. Any issue or dispute related to any of your purchase on Partner's website should be resolved directly with that same Partner.

    12. \r\n
    \r\n

    In addition, note that we may display, at our own discretion, Offers from Providers operating in some regulated areas (e.g., forex, finance, gambling).

    \r\n

    In these circumstances, you accept all the following –

    \r\n
      \r\n
    1. Any Providers' Offer made available on our Services does not constitute financial advice, legal advice or any kind of advice to participate or purchase Providers' services or products;

    2. \r\n
    3. If you intend to use or purchase Providers' services or products, this is at your own risk and you should seek professional advice before making any decisions;

    4. \r\n
    5. You are solely responsible to comply with any applicable laws and regulations if you intend to engage with Providers;

    6. \r\n
    7. The availability of Offers may vary based on your location and eligibility;

    8. \r\n
    9. You are of the legal age in your jurisdiction to participate in or purchase the Partner's services or products;

    10. \r\n
    11. You are responsible for complying with tax laws in your jurisdiction.

    12. \r\n
    \r\n

    Additionally, we do not accept responsibility for any products or content or services, of any kind, including but not limited to loans, credit card, investment products made available, or payments processed or submitted, through such third-party websites, nor for their privacy or any other practices.

    \r\n

    We do not endorse any third parties' websites and we urge our End Users to exercise caution in using any third-party websites.

    \r\n

    Any dispute or issues related to Provider's Offers should be resolved directly with the Provider.

    \r\n

    Therefore, you agree not to hold us responsible from any liability arising from your access to or use of any third-party website, content, service through the Website.

    \r\n\r\n
    11. License
    \r\n

    Subject to your compliance with the Terms, we grant you a personal, limited, non-commercial, non-exclusive, non-sublicensable, non-assignable, non-transferable, freely revocable license to use the Services.\r\n
    The Services include materials such as Treat Coins, that we own or license and are protected by copyrights, trademarks, patent, and other worldwide Intellectual Property Rights and by Applicable Law.\r\n

    \r\n

    We do not grant you or any other party any right, title or interest in the Services or any materials available on our Services.

    \r\n

    You understand and acknowledge all of the following -

    \r\n
      \r\n
    1. The use of the Services is for personal, non-commercial entertainment only and not for any other purpose;

    2. \r\n
    3. Any material available on our Services, including those appearing on our Website should not be reproduced, copied, edited, published, transmitted or uploaded in any way without our written permission. Registering to our Services or participating in Offers do not grant you any express or implied right under any of the Company's trademarks, copyrights or other proprietary information;

    4. \r\n
    5. If you violate or do not agree to the Terms, your license to access and/or use the Services shall be immediately terminated and you will no longer be able to access and/or use our Services, including your Treat Coins.

    6. \r\n
    \r\n\r\n
    12. Assumption of Risk
    \r\n

    By using our Services, you accept and acknowledge that:

    \r\n
      \r\n
    1. You are solely responsible for determining what, if any, taxes or fees apply to any transactions you made through the Services, including receipt of USDT. Company is not responsible for determining the taxes or fees that apply to such transactions;

    2. \r\n
    3. USDT is not legal tender nor backed by any governments in the vast majority of jurisdictions, and its price and availability may be highly volatile;

    4. \r\n
    5. All transactions, including any transaction involving USDT are irreversible, and, accordingly, losses due to fraudulent or accidental transactions may not be recoverable. Specifically, the Company will not be able to reverse or recover any transaction or transfer of Treat Coins to USDT if you provide the third party chosen by the Company at its sole discretion with an incorrect or an incompatible (including, but not limited to, compatibility with the type of blockchain or USDT) crypto-asset wallet address. Some transactions in cryptocurrency shall be deemed to be made when recorded on a public ledger, which is not necessarily the date or time that you initiated the transaction;

    6. \r\n
    7. You accept and acknowledge that there are risks associated with the use of blockchain products and Internet (e.g., malicious software, unauthorized access) and, therefore, the Company will not be responsible for any communications failures, disruptions, errors, distortions or delays you may experience when using the Services or any other third party service or product, including but not limited to the Personal Wallet, for transactions, however caused;

    8. \r\n
    9. The regulatory regime governing blockchain technologies, crypto-assets (including USDT and other stablecoins) is uncertain, and new regulations or policies may materially adversely affect the development of the Services.

    10. \r\n
    \r\n\r\n
    13. No Warranty
    \r\n

    You expressly agree that your use of the Services is at your own risk and you are aware that the Services, the Offers, the Treat Coins and Prizes are provided on an \"as is\" and \"as available\" basis without any representation or warranty, whether express, implied (whether by law, statute or otherwise), including but not limited to any implied warranties of merchantability, fitness for a particular purpose and non-infringement (whether under Applicable Law or otherwise).

    \r\n

    The Company does not make any representations or warranties, express or implied, that your access to and/or use of the Services will be accurate, free of error, complete, uninterrupted, continuous, or that any defects will be corrected, or that the Website is free of viruses and bugs.

    \r\n

    The Company makes no representation concerning the full or partial functionality, accuracy, or reliability of any information or materials obtained by you through the Services.

    \r\n\r\n
    14. Limitation of Liability
    \r\n

    To the maximum extent permitted by Applicable Law, in no event will the Company, its Affiliates, licensors or service providers, or any of their respective officers, directors, agents, joint venturers, employees or representatives, be liable or assume any obligation whatsoever to you or anyone on your behalf, regardless of the form of action, for any direct, indirect, special, incidental, or consequential damages or loss of any kind, including without limitation, loss of business, loss of profits, loss of revenue, loss of data, loss of contracts or loss of anticipated savings, loss of any cryptographic key or any passphrase (including with regard to any crypto-asset wallet), any loss or any damage arising out of or relating to your authorized or unauthorized use of the Services, of the Treat Coins, Prizes, any service, product or content provided by any third party, Providers, whether based in contract, tort, negligence, strict liability. In the event of any complaint your sole and exclusive remedy is to discontinue using the Services. The Company shall not be liable for any acts or omissions made by your internet service provider or other third party with whom you have contracted to gain access to the Services. Furthermore, the Company shall not be liable in the event you provide the Company with an incorrect or an incompatible crypto-asset wallet address, including but without limitation if Treat Coins are transferred by the service payment provider to such incorrect or incompatible crypto-asset wallet address.

    \r\n

    You agree and confirm that: (i) you are free to choose whether to use the Services and do so at your sole option, discretion and risk; (ii) the Company shall not be liable to you or any third party for any modification to, suspension of or discontinuance of the Services; (iii) any claim or cause of action, regardless of the form of action, which you may have arising out of or related to use of the Services or these Terms, must be filed within one (1) year after such claim or cause of action arose.

    \r\n\r\n
    15. Indemnification
    \r\n

    You hereby agree to indemnify and hold the Company, its officers, directors, employees, or agents harmless for any claims, matters, complaints, costs, liabilities and actions arising out of or related to your use of the Services, including but not limited to:

    \r\n
      \r\n
    1. Your failure to comply with any Applicable Law;

    2. \r\n
    3. Any claim of infringement or misappropriation of any third party rights, including but not limited to any, copyright, privacy rights or Intellectual Property Rights in the Services;

    4. \r\n
    5. Your breach of any provision of these Terms; or

    6. \r\n
    7. Your use or misuse of the Services.

    8. \r\n
    \r\n

    You agree to promptly notify the Company of any third party claims and fully cooperate with the Company in defending such claims at your sole expense. You further agree that at Company's sole discretion, the Company shall have control of the defense or settlement of any such claims.

    \r\n\r\n
    16. Miscellaneous
    \r\n

    These Terms shall be governed by, and interpreted in accordance with the law of the Republic of Cyprus, without giving effect to its principles or rules of conflict of laws. Any action to be brought in connection with these Terms shall be brought exclusively in the courts of Principality of Republic of Cyprus, and you irrevocably consent to their jurisdiction. In the event that any provision of these Terms is held to be unenforceable, such provision shall be replaced with an enforceable provision that most closely achieves the effect of the original provision, and the remaining provisions of these Terms shall remain in full force and effect. We may assign our rights and obligations hereunder to any third party without prior notice.

    \r\n

    You shall not assign any of your rights or obligations hereunder, and any assignment shall be null and void. Any provisions hereof which expressly or by their nature are required to survive termination or expiration of these Terms in order to achieve their purpose shall survive the termination or expiration, including without limitation Sections 2/5/6/7/8/9/10/11/12/13/14 of these Terms. Any translation of these Terms of Use is provided solely for your convenience. The meanings of terms, conditions and representations herein are subject to definitions and interpretations in the English language and in the event of a dispute, the English language version shall prevail. Any translation provided may not accurately represent the information in the original English language version of these Terms.

    \r\n\r\n
    17. Terms and Termination
    \r\n

    These Terms apply to you and to us from the date that you accept them as provided above. We reserve the right, without notice and in our sole discretion, to terminate these Terms, revoke or forfeit your Treat Coins you accumulated or terminate or suspend your access to or use of all or any part of the Services effective immediately, at any time including, inter alia, if we suspect in our sole discretion that (i) you were engaged or are being engaged in fraudulent activity or any illegal activity under any Applicable Law; (ii) you have provided false information to, or concealed any information from us; or (iii) you have engaged in activity in violation (including alleged violations) of these Terms.

    \r\n\r\n
    18. Changes
    \r\n

    We reserve the right to amend any of the Terms at any time by publishing the revised versions on our Website or by otherwise providing notice of such amendment by email, via the Services or posting on our Website. Notice will be deemed given twenty-four (24) hours after email is sent to you. Notice posted on our Website is deemed given ten (10) days following the initial posting.\r\n
    We reserve the right to determine the form and means of providing notifications to our End User.\r\n
    The revised versions shall become effective following the applicable notice period, unless you expressly accept the revised versions earlier by clicking on the accept button. Your express acceptance or continued use of the Services after the applicable notice period shall constitute your acceptance to be bound by the revised Terms, as applicable.\r\n
    If any provision of the Terms is held to be unenforceable, such provision shall be modified only to the extent necessary to make it enforceable and shall not affect the enforceability or validity of the remaining provisions, which shall remain in full force and effect.\r\n

    \r\n\r\n
    19. Contact Us
    \r\n

    If you have any questions, would like to provide us feedback or receive more information about us, please feel free to contact us through our Help Center.

    \r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default TermsText;","import ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport TermsText from \"components/text/Terms_Text.js\";\r\nimport MetaTags from \"components/seo/Meta_Tags.js\";\r\nimport Footer from \"components/sections/Footer.js\";\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect } from \"react\";\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nconst TermsOfUse = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.terms_of_use });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.terms_of_use.title}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default TermsOfUse;","import React, { useRef } from 'react';\r\nimport Images from 'utils/Images.js';\r\nimport Content from 'utils/Content.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\n\r\nfunction OfferReportStatus({\r\n ReportStatus,\r\n possibleToSubmit = false,\r\n handleOpenSubmitForm,\r\n reportContentKey,\r\n iconSize = 24,\r\n ForeignTicketID,\r\n disableBtn,\r\n}) {\r\n const formRef = useRef(null);\r\n const inputRef = useRef(null);\r\n const handleZendeskCreds = () => {\r\n if (ReportStatus !== null) {\r\n const tokenReq = ApiFacade.getReportToken();\r\n tokenReq.then((res) => {\r\n const response = res.response;\r\n formRef.current.action = response?.ssoUrl + ForeignTicketID;\r\n inputRef.current.value = response?.jwt;\r\n if (response?.jwt) {\r\n formRef.current.submit();\r\n }\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n

    {Content.getValue(`report_status_heading_${reportContentKey}`)}

    \r\n {ReportStatus !== null &&

    {Content.getValue(`report_status_text_${reportContentKey}`)}

    }\r\n
    \r\n
    \r\n {ReportStatus === null &&\r\n { handleOpenSubmitForm({ open: true }); }}\r\n className={`offer-popup-report-btn button-hidden disable-submit ${possibleToSubmit ? 'possible-submit' : 'disable-submit'}`}>\r\n {Content.getValue('submit_report')}\r\n \r\n }\r\n
    \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default OfferReportStatus;","import UserData from 'User_Data.js';\r\nimport CompletedLayout from 'components/offers/Completed_Layout.js';\r\nimport Content from 'utils/Content.js';\r\nimport Images from 'utils/Images.js';\r\nimport Joining from 'utils/Joining.js';\r\nimport Offers from 'utils/Offers.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport { useContext } from 'react';\r\nimport { OfferPopupContext } from 'context/Offer_Popup_Context.js';\r\nimport OfferReportStatus from '../offers/Offer_Report_Status';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst eventTypes = configuration.event_types;\r\n\r\nconst offerMainType = configuration.offer_main_type;\r\nlet authorized = Boolean(UserData.getItem(userDataKeys.jwt_token));\r\n\r\n\r\nconst ReferralEarnings = ({ idx, value }) => (\r\n
    \r\n {value ?\r\n <>

    {Content.getValue('get')}

    \r\n \"TreatCoin\"\r\n

    {value}

    \r\n

    {Content.getValue(`get_gen_complete_${idx}`)}

    \r\n \r\n : <>\r\n }\r\n
    );\r\n\r\n\r\nconst MultipleStep = ({ step }) => {\r\n const {\r\n ID,\r\n desc,\r\n coins,\r\n stepNumber,\r\n isCompleted,\r\n url,\r\n multiple,\r\n appName,\r\n category,\r\n isFree,\r\n offerType,\r\n coinsReferral,\r\n coins2ndGenReferral,\r\n coins3rdGenReferral,\r\n offer,\r\n uniqueID,\r\n prefixCpx,\r\n } = step;\r\n return (\r\n
  • \r\n
    \r\n \r\n
    \r\n
    {Formatting.shortenText(desc, 35)}
    \r\n
    \r\n
    \r\n
    \r\n
    {Content.getValue('complete_get')}
    \r\n
    \r\n
    \r\n \"TreatCoin\"\r\n

    {prefixCpx ? '1 - ' : ''} {coins.toLocaleString()}

    \r\n
    \r\n

    = ${(coins * 0.01).toFixed(2)}

    \r\n

    USD

    \r\n
    \r\n
    \r\n

    Treat Coins

    \r\n
    \r\n
    \r\n {Math.floor(coinsReferral) ?\r\n [\r\n coinsReferral,\r\n coins2ndGenReferral,\r\n coins3rdGenReferral,\r\n ].map((item, index) => ) : <>}\r\n \"Play\r\n
    \r\n
  • \r\n );\r\n};\r\n\r\nfunction Top12OfferPageCard({ offer, index, showReportStatus = false }) {\r\n const {\r\n uniqueID,\r\n description,\r\n topHeading,\r\n imageURL,\r\n category,\r\n appName,\r\n multiSteps,\r\n coins,\r\n coinsReferral,\r\n coins2ndGenReferral,\r\n coins3rdGenReferral,\r\n isCompleted,\r\n url,\r\n isFree,\r\n offerType,\r\n ID,\r\n ReportStatus,\r\n ClickthroughID,\r\n CategoryImageURL,\r\n CategoryHPID,\r\n } = offer;\r\n const { handleOfferIsOpened } = useContext(OfferPopupContext);\r\n const prefixCpx = uniqueID.substring(0, 3) === 'cpx';\r\n\r\n const multiStepsData = multiSteps ? JSON.parse(multiSteps) : false;\r\n // let possibleToSubmit = !multiSteps?.map(step => step.isCompleted).includes(false);\r\n\r\n return (\r\n
  • \r\n
  • \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Top12OfferPageCard;","import KeyboardArrowLeftIcon from '@mui/icons-material/KeyboardArrowLeft';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport JWTUtils from 'utils/JWT_Utils.js';\r\nimport UserData from 'User_Data';\r\nimport ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from \"components/seo/Meta_Tags.js\";\r\nimport Footer from \"components/sections/Footer.js\";\r\nimport jwt from 'jwt-decode';\r\nimport { useEffect, useState } from 'react';\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\nimport Platform from 'utils/Platform';\r\nimport Content from 'utils/Content';\r\nimport { redirectWithLangFunc } from 'utils/RedirectWithLang';\r\nimport Top12OfferPageCard from 'components/top_12_offers/Top_12_Offer_Page_Card';\r\nimport Formatting from 'utils/Formatting';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder';\r\nimport OneTwoTreatIcon from '../components/one_two_treat_area/One_Two_Treat_Icon';\r\n\r\nconst configuration = require('configuration.json');\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\n\r\nfunction Top12Offers() {\r\n const [hotOffer, setHotOffer] = useState(null);\r\n const [items, setItems] = useState(null);\r\n const customEventListener = event => {\r\n const { detail: offer } = event;\r\n setHotOffer(offer);\r\n };\r\n\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n window.addEventListener('openOfferDetails', customEventListener);\r\n let platform = Platform.getPlatformName();\r\n let preferredLanguage = Content.getPreferredLanguage();\r\n let currentCountry = JWTUtils.getJWTCountry();\r\n\r\n //let calledOffersURL = `${Backend.backendURLs.top12OffersURL}?language=${encodeURIComponent(preferredLanguage)}&country=${encodeURIComponent(currentCountry)}&platformName=${encodeURIComponent(platform)}`;\r\n const req = ApiFacade.top12Offers(preferredLanguage, currentCountry, platform);\r\n req.then( (res) => {\r\n let result = res.response;\r\n setItems(result.offers);\r\n });\r\n const cards = document.querySelectorAll('.top-12-offer-page-card');\r\n\r\n // Find the maximum height among all cards\r\n let maxHeight = 0;\r\n cards.forEach(card => {\r\n const cardHeight = card.getBoundingClientRect().height;\r\n maxHeight = Math.max(maxHeight, cardHeight);\r\n });\r\n \r\n // Apply the maximum height as minHeight to all cards\r\n cards.forEach(card => {\r\n card.style.minHeight = `${maxHeight}px`;\r\n });\r\n \r\n return () => {\r\n window.removeEventListener('openOfferDetails', customEventListener);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.top_12_offers });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {Formatting.format(Content.getValue(\"earn_from_top_12\"), [\"(offers)\"], [items?.length || ''])}\r\n

    \r\n

    {Content.getValue('how_to_earn')}

    \r\n
    \r\n \r\n
    \r\n
      \r\n {items && items.map((i, idx) => )}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default Top12Offers;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Payments from 'utils/Payments.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\n\r\nconst paymentMethodTypes = configuration.payment_method_types;\r\n\r\n// let paxumPaymentMethodType = paymentMethodTypes.paxum;\r\nlet plumPaymentMethodType = paymentMethodTypes.plum;\r\n// let faucetPayPaymentMethodType = paymentMethodTypes.faucetpay;\r\n\r\nlet thisComponent;\r\n\r\nclass PaymentMethodsList extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n paymentMethods: null\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n componentDidMount() {\r\n const req = ApiFacade.paymentMethodsList();\r\n req.then(\r\n function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n paymentMethods: result.paymentMethods\r\n });\r\n } else if (res.unauthorized) {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n );\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, isRestricted, paymentMethods } = thisComponent.state;\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (isRestricted) {\r\n return
    {Backend.loadBackendMessages().restrictedMessage}
    ;\r\n } else if (!isLoaded) {\r\n return
    {Backend.loadBackendMessages().loadingMessage}
    ;\r\n } else {\r\n const plum = paymentMethods.plum;\r\n // const paxum = paymentMethods.paxum;\r\n // const faucetPay = paymentMethods.faucetPay;\r\n return
    \r\n
    {\r\n new Payments().addPaymentMethod(plumPaymentMethodType, thisComponent, 'list');\r\n }}>\r\n
    \r\n \"Plum\r\n
    \r\n
    \r\n
    {Content.getValue(\"you_will_get_a_voucher_to\")}
    \r\n
    \r\n
    \r\n \r\n

    {(plum) ? plum : Content.getValue(\"not_connected_label\")}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {/* \r\n
    {\r\n if (paxum === null) { new Payments().addPaymentMethod(paxumPaymentMethodType, thisComponent, 'list'); }\r\n }}>\r\n
    \r\n \"Paxum\r\n
    \r\n
    \r\n
    {Content.getValue(\"paxum_account_label\")}
    \r\n {(paxum !== null) ? (\r\n \r\n ) : (null)}\r\n
    \r\n
    \r\n \"Payment\r\n

    {(paxum) ? paxum : Content.getValue(\"not_connected_label\")}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {\r\n if (faucetPay === null) { new Payments().addPaymentMethod(faucetPayPaymentMethodType, thisComponent, 'list'); }\r\n }}>\r\n
    \r\n \"FaucetPay\r\n
    \r\n
    \r\n
    {Content.getValue(\"faucetpay_account_label\")}
    \r\n {(faucetPay !== null) ? (\r\n \r\n ) : (null)}\r\n
    \r\n
    \r\n \"Payment\r\n

    {(faucetPay) ? faucetPay : Content.getValue(\"not_connected_label\")}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n */} \r\n
    ;\r\n }\r\n }\r\n}\r\n\r\nexport default PaymentMethodsList;","import React from 'react';\r\nimport Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport Images from 'utils/Images.js';\r\nimport Payments from 'utils/Payments.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst paymentMethodTypes = configuration.payment_method_types;\r\nconst UISettings = configuration.ui_settings;\r\n\r\nconst maxWithdrawalInactivityTime = UISettings.max_withdrawal_inactivity_time;\r\n\r\nlet thisComponent;\r\n\r\nlet plumPaymentMethodType = paymentMethodTypes.plum;\r\n\r\nclass WithdrawalMethodSelector extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.parent = props.parent;\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n isRestricted: false,\r\n paymentMethods: null\r\n };\r\n thisComponent = this;\r\n }\r\n\r\n componentDidMount() {\r\n const req = ApiFacade.paymentMethodsList();\r\n req.then(\r\n function (res) {\r\n if (res.ok)\r\n {\r\n let result = res.response;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n paymentMethods: result.paymentMethods\r\n });\r\n } else if (res.unauthorized){\r\n thisComponent.setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n });\r\n }\r\n\r\n toggleSelectedMethod(type) {\r\n let elementToMark = document.getElementById(type.toLowerCase() + '-option-container');\r\n\r\n if (elementToMark !== null) {\r\n clearTimeout(this.parent.inactivityTimeout);\r\n this.parent.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n let elementClass = elementToMark.className;\r\n if (elementClass === \"withdrawal-payment-method desktop\") {\r\n let paymentCtaDiv = document.getElementById('payment-method-cta-div');\r\n if (paymentCtaDiv !== null) document.getElementById('content').removeChild(paymentCtaDiv);\r\n let markedElements = document.getElementsByClassName(\"withdrawal-payment-method highlighted desktop\");\r\n if (markedElements.length === 1) markedElements[0].className = \"withdrawal-payment-method desktop\";\r\n elementToMark.className = \"withdrawal-payment-method highlighted desktop\";\r\n thisComponent.parent.setState({\r\n platform: type,\r\n platformSelected: true\r\n });\r\n }\r\n else {\r\n elementToMark.className = \"withdrawal-payment-method desktop\";\r\n thisComponent.parent.setState({\r\n platform: null,\r\n manualSelection: true\r\n });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, isRestricted, paymentMethods } = this.state;\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (isRestricted) {\r\n return
    {Backend.loadBackendMessages().restrictedMessage}
    ;\r\n } else if (!isLoaded) {\r\n return
    {Backend.loadBackendMessages().loadingMessage}
    ;\r\n } else {\r\n const plum = paymentMethods.plum;\r\n setTimeout(function() {\r\n if (plum && !thisComponent.parent.state.platform && !thisComponent.parent.state.platformSelected) {\r\n thisComponent.toggleSelectedMethod(plumPaymentMethodType);\r\n }\r\n }, 100);\r\n // const paxum = paymentMethods.paxum;\r\n // const faucetPay = paymentMethods.faucetPay;\r\n return
    \r\n
    \r\n \"Payment\r\n \"Plum\r\n
    {Content.getValue(\"plum_withdrawal_text\")}
    \r\n
    \r\n {/*\r\n
    \r\n \"Payment\r\n \"Paxum\r\n
    {Content.getValue(\"paxum_withdrawal_text\")}
    \r\n
    \r\n
    \r\n \"Payment\r\n \"FaucetPay\r\n
    {Content.getValue(\"faucetpay_withdrawal_text\")}
    \r\n
    \r\n */} \r\n
    ;\r\n }\r\n }\r\n}\r\n\r\nexport default WithdrawalMethodSelector;","import Backend from 'Backend.js';\r\nimport ApiFacade from 'ApiFacade.js';\r\nimport PaymentMethodSelector from 'components/payouts/Withdrawal_Method_Selector.js';\r\nimport React from 'react';\r\nimport { Spinner } from 'react-spinners-css';\r\nimport Content from 'utils/Content.js';\r\nimport Formatting from 'utils/Formatting.js';\r\nimport Payments from 'utils/Payments.js';\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const myCoinsURL = backendURLs.myCoinsURL;\r\n\r\nlet thisComponent;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst businessLogic = configuration.business_logic;\r\nconst UISettings = configuration.ui_settings;\r\nconst withdrawalModes = configuration.withdrawal_modes;\r\nconst withdrawalHintModes = configuration.withdrawal_hint_modes;\r\n\r\nconst minTreatCoinWithdrawal = businessLogic.min_treat_coin_withdrawal;\r\nconst usdValuePerTreatCoin = businessLogic.usd_value_per_treatcoin;\r\n\r\nconst maxWithdrawalInactivityTime = UISettings.max_withdrawal_inactivity_time;\r\n\r\nclass WithdrawalCalculator extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n //this.loadURL = myCoinsURL;\r\n this.state = {\r\n error: null,\r\n isLoaded: false,\r\n usdAmountLoaded: true,\r\n isRestricted: false,\r\n coins: null,\r\n lifetimeCoins: null,\r\n monthlyCoins: null,\r\n treatCoinAmount: null,\r\n treatCoinAmountStr: '',\r\n usdAmount: null,\r\n amountHintMessage: Formatting.format(Content.getValue(\"min_treat_coin_withdrawal_hint\"), [\"(minTreatCoinWithdrawal)\"], [Formatting.formatTreatCoinAmount(minTreatCoinWithdrawal)]),\r\n amountAcceptable: false,\r\n withdrawalMode: null,\r\n platform: null,\r\n platformSelected: false\r\n };\r\n\r\n thisComponent = this;\r\n }\r\n\r\n updateUSDAmount() {\r\n const { treatCoinAmount } = thisComponent.state;\r\n\r\n if (treatCoinAmount !== null) {\r\n thisComponent.setState({\r\n usdAmountLoaded: false\r\n });\r\n\r\n let usdAmount = (treatCoinAmount * usdValuePerTreatCoin).toFixed(2);\r\n thisComponent.setState({\r\n usdAmountLoaded: true,\r\n usdAmount: usdAmount\r\n });\r\n }\r\n\r\n else {\r\n thisComponent.setState({\r\n usdAmountLoaded: true,\r\n usdAmount: null\r\n });\r\n }\r\n }\r\n\r\n initiateWithdrawal() {\r\n clearTimeout(this.inactivityTimeout);\r\n this.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n\r\n const { treatCoinAmount, platform } = thisComponent.state;\r\n\r\n const usdAmount = treatCoinAmount * usdValuePerTreatCoin;\r\n\r\n const mixpanelObject = {\r\n withdraw_type: this.state.platform,\r\n withdraw_treatcoin_value: this.state.treatCoinAmount,\r\n withdraw_dollar_value: this.state.usdAmount,\r\n withdraw_account: this.state.usdAmount,\r\n is_withdraw_all: this.state.withdrawalMode === withdrawalModes.maximum,\r\n is_withdraw_minimum: this.state.withdrawalMode === withdrawalModes.minimum,\r\n treatcoin_available: this.state.coins,\r\n current_month_balance: this.state.monthlyCoins,\r\n }\r\n\r\n Payments.confirmWithdrawal({ treatCoinsAmount: treatCoinAmount, usdAmount: usdAmount.toFixed(2), platform: platform, mixpanelObject: mixpanelObject });\r\n }\r\n\r\n updateWithdrawalMode(newMode) {\r\n clearTimeout(this.inactivityTimeout);\r\n this.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n\r\n const { coins, withdrawalMode } = this.state;\r\n\r\n if (withdrawalMode === newMode) {\r\n thisComponent.setState({\r\n withdrawalMode: null,\r\n treatCoinAmount: null,\r\n treatCoinAmountStr: '',\r\n amountHintMessage: Formatting.format(Content.getValue(\"min_treat_coin_withdrawal_hint\"), [\"(minTreatCoinWithdrawal)\"], [Formatting.formatTreatCoinAmount(minTreatCoinWithdrawal)]),\r\n amountAcceptable: false\r\n });\r\n }\r\n else if (newMode === withdrawalModes.minimum || newMode === withdrawalModes.maximum) {\r\n\r\n let newTreatCoinAmount = null;\r\n if (newMode === withdrawalModes.minimum) newTreatCoinAmount = Math.min(minTreatCoinWithdrawal, coins);\r\n else if (newMode === withdrawalModes.maximum) newTreatCoinAmount = coins;\r\n thisComponent.setState({\r\n withdrawalMode: newMode,\r\n treatCoinAmount: newTreatCoinAmount,\r\n treatCoinAmountStr: newTreatCoinAmount.toFixed(2),\r\n amountAcceptable: (newTreatCoinAmount >= minTreatCoinWithdrawal)\r\n });\r\n setTimeout(thisComponent.updateUSDAmount, 100);\r\n }\r\n }\r\n\r\n updateCoinsAmount(buttonPressed) {\r\n clearTimeout(this.inactivityTimeout);\r\n this.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n\r\n const { treatCoinAmountStr, coins } = this.state;\r\n\r\n let newAmountStr = null;\r\n\r\n if (!isNaN(buttonPressed) && !(treatCoinAmountStr.includes(\".\") && treatCoinAmountStr.split(\".\")[1].length === 2)) {\r\n newAmountStr = treatCoinAmountStr + buttonPressed;\r\n }\r\n else if (buttonPressed === '.' && treatCoinAmountStr.length > 0 && !treatCoinAmountStr.includes(\".\")) {\r\n newAmountStr = treatCoinAmountStr + buttonPressed;\r\n }\r\n else if (buttonPressed === 'del' && treatCoinAmountStr.length > 0) {\r\n newAmountStr = treatCoinAmountStr.slice(0, -1);\r\n }\r\n\r\n if (newAmountStr !== null) {\r\n let newAmountAcceptable;\r\n let newHintMessage;\r\n let newAmount = (newAmountStr.length > 0) ? Number(newAmountStr) : null;\r\n\r\n if (newAmount === null || newAmount < minTreatCoinWithdrawal || newAmount > coins) {\r\n if (newAmount === null) {\r\n newHintMessage = Formatting.format(Content.getValue(\"min_treat_coin_withdrawal_hint\"), [\"(minTreatCoinWithdrawal)\"], [Formatting.formatTreatCoinAmount(minTreatCoinWithdrawal)]);\r\n }\r\n else if (newAmount < minTreatCoinWithdrawal) {\r\n newHintMessage = Formatting.format(Content.getValue(\"min_treat_coin_withdrawal_hint\"), [\"(minTreatCoinWithdrawal)\"], [Formatting.formatTreatCoinAmount(minTreatCoinWithdrawal)]);\r\n }\r\n else if (newAmount > coins) {\r\n newHintMessage = Formatting.format(Content.getValue(\"max_treat_coin_withdrawal_hint\"), [\"(maxTreatCoinWithdrawal)\"], [Formatting.formatTreatCoinAmount(coins)]);\r\n }\r\n newAmountAcceptable = false;\r\n }\r\n else {\r\n newAmountAcceptable = true;\r\n }\r\n\r\n thisComponent.setState({\r\n treatCoinAmount: newAmount,\r\n treatCoinAmountStr: newAmountStr,\r\n amountAcceptable: newAmountAcceptable,\r\n withdrawalMode: null,\r\n amountHintMessage: newHintMessage,\r\n });\r\n\r\n setTimeout(thisComponent.updateUSDAmount, 100);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n const req = ApiFacade.myCoins();\r\n req.then(function (res) {\r\n if (res.ok){\r\n let result = res.response;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n coins: result.coins,\r\n lifetimeCoins: result.lifetimeCoins,\r\n monthlyCoins: result.monthlyCoins\r\n });\r\n } else if (res.unauthorized){\r\n thisComponent.setState({\r\n isLoaded: true,\r\n isRestricted: true\r\n });\r\n } else {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error: res.error\r\n });\r\n }\r\n },\r\n (error) => {\r\n thisComponent.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n );\r\n\r\n this.inactivityTimeout = setTimeout(function () { window.location.reload(); }, maxWithdrawalInactivityTime * 1000);\r\n }\r\n\r\n componentWillUnmount() {\r\n clearTimeout(this.inactivityTimeout);\r\n }\r\n\r\n render() {\r\n const { error, isLoaded, isRestricted, coins, amountHintMessage, withdrawalMode, treatCoinAmount, treatCoinAmountStr, amountAcceptable, platform, usdAmount, usdAmountLoaded } = this.state;\r\n if (error) {\r\n return
    {Backend.loadBackendMessages().errorMessage}
    ;\r\n } else if (isRestricted) {\r\n return (null);\r\n } else if (!isLoaded) {\r\n return <>\r\n
    {Content.getValue(\"treat_coins_balance_label\")}
    \r\n ;\r\n } else {\r\n let buttonEnabled = (amountAcceptable && platform !== null);\r\n let displayedHintMessage = '';\r\n let hintMode;\r\n\r\n if (amountAcceptable === false) {\r\n displayedHintMessage = amountHintMessage;\r\n }\r\n else if (platform === null) {\r\n displayedHintMessage = Content.getValue(\"select_payment_method_withdrawal_hint\");\r\n }\r\n\r\n if (treatCoinAmount !== null) {\r\n hintMode = withdrawalHintModes.error;\r\n }\r\n else {\r\n hintMode = withdrawalHintModes.hint;\r\n }\r\n return (\r\n <>\r\n
    \r\n {Formatting.format(Content.getValue(\"treat_coins_balance_indicator\"), [\"(coins)\"], [Formatting.formatTreatCoinAmount(coins)])}\r\n
    \r\n \r\n
    \r\n
    \r\n {(treatCoinAmountStr === \"\") ? \"---\" : treatCoinAmountStr}\r\n |\r\n \r\n \r\n {(usdAmount !== null || !usdAmountLoaded) ? Formatting.format(Content.getValue(\"calculated_usd_amount\"), [\"(usdAmount)\"], (usdAmount !== null) ? [usdAmount.toLocaleString()] : [null]) : (null)}\r\n \r\n {(!usdAmountLoaded) ? () : (null)}\r\n
    \r\n
    {Content.getValue(\"treat_coins\")}
    \r\n
    {displayedHintMessage}
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default WithdrawalCalculator;","import ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport MetaTags from 'components/seo/Meta_Tags.js';\r\nimport PaymentMethodsList from 'components/payment_methods/Payment_Methods_List.js';\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport Footer from 'components/sections/Footer.js';\r\nimport React from 'react';\r\nimport Payments from 'utils/Payments.js';\r\nimport UseTreatCoinsWithdrawal from 'components/payouts/Use_Treat_Coins_Withdrawal.js';\r\nimport NewsTrack from 'components/live_news/News_Track.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\nimport Content from 'utils/Content.js';\r\nimport Images from 'utils/Images.js';\r\nimport { useEffect } from \"react\";\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\n\r\nimport 'design/payment_methods.css';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\nconst urls = configuration.urls;\r\n\r\nconst useTreatCoinsModes = configuration.use_treat_coins_modes;\r\nlet thisComponent;\r\n\r\nclass Cashout extends React.Component {\r\n\r\nconstructor(props) {\r\n super(props);\r\n this.state = {\r\n mode: useTreatCoinsModes.overview\r\n };\r\n thisComponent = this;\r\n}\r\n\r\ncomponentDidMount() {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.cashout });\r\n}\r\n\r\nrender() {\r\n const { mode } = thisComponent.state;\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n if (mode === useTreatCoinsModes.overview) return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {menuOptions.cashout.title}

    \r\n
    \r\n
    \r\n \r\n {/*
    \r\n
    \r\n \"Cashout\r\n \"Cashout\r\n \"Cashout\r\n \"Cashout\r\n \"Cashout\r\n \"Cashout\r\n \"Cashout\r\n \"Cashout\r\n \"Cashout\r\n
    \r\n
    \r\n */}\r\n \"Cashout\r\n \"Cashout\r\n {Content.getValue(\"payment_methods_available_country\")}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n else if (mode === useTreatCoinsModes.withdrawal) return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {\r\n if (document.getElementById('payment-method-cta-div') !== null) document.getElementById('content').removeChild(document.getElementById('payment-method-cta-div'));\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\n}\r\n\r\nexport default Cashout;","import React from 'react';\r\nimport ApiFacade from 'ApiFacade.js';\r\n\r\nimport Joining from 'utils/Joining.js';\r\nimport Images from 'utils/Images.js';\r\nimport LinkCreator from 'utils/Link_Creator.js';\r\nimport UserData from 'User_Data.js';\r\nimport Content from 'utils/Content.js';\r\nimport { Mixpanel } from 'utils/User_Events_Util.js';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst loginTypes = configuration.login_types;\r\nconst userDataKeys = configuration.user_data_keys;\r\nconst uiSettings = configuration.ui_settings;\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\n\r\n//const backendURLs = Backend.backendURLs;\r\n//const connectedToBotURL = backendURLs.connectedToBotURL;\r\n\r\nconst connectedToBotCheckPeriod = uiSettings.connected_to_bot_check_period;\r\nconst connectedToBotCheckDuration = uiSettings.connected_to_bot_check_duration;\r\nconst connectedToBotCheckCount = Math.floor(connectedToBotCheckDuration/connectedToBotCheckPeriod);\r\n\r\nlet connectionCheckInterval = null;\r\nlet connectedCheckCount = 0;\r\nlet thisComponent;\r\n\r\nclass MenuJoinButton extends React.Component {\r\n\r\n\r\n constructor(props) {\r\n\r\n super(props);\r\n\r\n thisComponent = this;\r\n\r\n if (UserData.getItem(userDataKeys.login_type) === loginTypes.telegram || \r\n UserData.getItem(userDataKeys.connected_to_bot) === \"true\") {\r\n this.state = {\r\n connectedToBot: true,\r\n isLoaded: true,\r\n clickHandler: props.clickHandler\r\n };\r\n }\r\n else {\r\n this.state = {\r\n connectedToBot: null,\r\n isLoaded: false,\r\n clickHandler: props.clickHandler\r\n };\r\n }\r\n\r\n }\r\n\r\n checkBotConnection() {\r\n ApiFacade.connectedToBot().then(function (res) {\r\n if (res.ok) {\r\n let result = res.response;\r\n let connectedToBot = result.connectedToBot;\r\n thisComponent.setState({\r\n isLoaded: true,\r\n connectedToBot: connectedToBot\r\n });\r\n connectedCheckCount++;\r\n if (connectedToBot === true) {\r\n UserData.setItem(userDataKeys.connected_to_bot, connectedToBot);\r\n if (connectionCheckInterval !== null) {\r\n clearInterval(connectionCheckInterval);\r\n }\r\n }\r\n if (connectedCheckCount >= connectedToBotCheckCount && connectionCheckInterval !== null) {\r\n clearInterval(connectionCheckInterval);\r\n }\r\n }\r\n },\r\n (error) => {\r\n\r\n }\r\n );\r\n }\r\n\r\n\r\n componentWillUnmount() {\r\n if (connectionCheckInterval !== null) clearInterval(connectionCheckInterval);\r\n }\r\n\r\n navigateTo = (link) => {\r\n window.open(link, '_blank');\r\n };\r\n\r\n render() {\r\n\r\n const { connectedToBot, isLoaded, clickHandler } = this.state;\r\n\r\n if (UserData.getItem(userDataKeys.jwt_token) === null) {\r\n let showTriangle = this.showTriangle || false;\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n if (isLoaded === false) {\r\n thisComponent.checkBotConnection();\r\n }\r\n\r\n let botLinkAddress = LinkCreator.createBotLink();\r\n\r\n if (isLoaded === false || connectedToBot === false) {\r\n\r\n return (\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default withRouter(MenuJoinButton);","import React from 'react';\r\nimport UserData from 'User_Data.js';\r\nimport OneTwoTreatAlert from 'components/one_two_treat_area/One_Two_Treat_Alert.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nlet thisComponent;\r\nlet removeFilterTimeout = null;\r\n\r\nconst configuration = require('configuration.json');\r\n\r\nconst userDataKeys = configuration.user_data_keys;\r\n\r\nconst telegramReferralLink = UserData.getItem(userDataKeys.telegram_referral_link);\r\nconst websiteReferralLink = UserData.getItem(userDataKeys.website_referral_link);\r\n\r\nclass ReferMenuButton extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n openDialog() {\r\n thisComponent.addFilter();\r\n OneTwoTreatAlert.showOneTwoTreatAlert(telegramReferralLink, websiteReferralLink);\r\n }\r\n\r\n addFilter() {\r\n if (removeFilterTimeout !== null) clearTimeout(removeFilterTimeout);\r\n document.getElementById('refer-users-widget').className = 'refer-float-button hovered';\r\n removeFilterTimeout = setTimeout(function () {\r\n thisComponent.removeFilter();\r\n }, 3000);\r\n }\r\n\r\n removeFilter() {\r\n if (removeFilterTimeout !== null) clearTimeout(removeFilterTimeout);\r\n document.getElementById('refer-users-widget').className = 'refer-float-button';\r\n }\r\n\r\n render() {\r\n\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n const buildYourTeamOption = menuOptions.build_your_team;\r\n\r\n if (UserData.getItem(userDataKeys.jwt_token) !== null) {\r\n return <>\r\n \r\n \r\n }\r\n else {\r\n return (null);\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default ReferMenuButton;","import React from 'react';\r\nimport Sharing from 'utils/Sharing.js';\r\nimport Images from 'utils/Images.js';\r\n\r\nimport Content from 'utils/Content.js';\r\n\r\nlet thisComponent;\r\n\r\nclass ReferComponent extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n thisComponent = this;\r\n }\r\n\r\n async copyLink() {\r\n let linkToCopy = 'https://' + document.getElementById('copy-link-input').value;\r\n await Sharing.copyToClipboard(linkToCopy, Content.getValue(\"copy_to_clipboard_fallback_title\"), Content.getValue(\"copy_to_clipboard_fallback_text\"));\r\n document.getElementById('copy-link-input').value = Content.getValue(\"copied_to_clipboard\");\r\n setTimeout(function () {\r\n document.getElementById('copy-link-input').value = linkToCopy.replace('https://', '');\r\n }, 1500);\r\n }\r\n\r\n shareLink() {\r\n let linkToShare = 'https://' + document.getElementById('copy-link-input').value;\r\n Sharing.shareLink(\r\n {\r\n title: Content.getValue(\"join_treatcoin\"),\r\n text: Content.getValue(\"share_link_cta_message\"),\r\n url: linkToShare,\r\n fallbackTitle: Content.getValue(\"share_link_fallback_title\"),\r\n fallbackMessage: Content.getValue(\"share_link_fallback_message\"),\r\n detailsImageURL: null\r\n });\r\n }\r\n\r\n render() {\r\n return <>\r\n Hidden\r\n
    \r\n \r\n \r\n \r\n }\r\n\r\n}\r\n\r\nexport default ReferComponent;","import React, { Component } from 'react';\r\nimport Content from 'utils/Content.js';\r\n\r\nclass TreatCoinsMissionText extends Component {\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default TreatCoinsMissionText;","import ContentPageHeader from \"components/sections/Content_Page_Header.js\";\r\nimport Organization from \"components/seo/Organization.js\";\r\nimport Breadcrumb from \"components/seo/Breadcrumb.js\";\r\nimport TreatCoinsMissionText from \"components/text/TreatCoins_Mission_Text.js\";\r\nimport MetaTags from \"components/seo/Meta_Tags.js\";\r\nimport Footer from \"components/sections/Footer.js\";\r\nimport OneTwoTreatIcon from 'components/one_two_treat_area/One_Two_Treat_Icon.js';\r\nimport OfferDetailsPlaceholder from 'components/offers/Offer_Details_Placeholder.js';\r\n\r\nimport Content from 'utils/Content.js';\r\nimport { useEffect } from \"react\";\r\nimport { Mixpanel } from \"utils/User_Events_Util.js\";\r\n\r\nconst configuration = require('configuration.json');\r\nconst mixpanelEvents = configuration.mixpanel_events;\r\nconst pages = configuration.pages;\r\n\r\nconst TreatCoinsMission = () => {\r\n const menuOptions = Content.getValue(\"menu_options\");\r\n\r\n useEffect(() => {\r\n Mixpanel.trackByArgs(mixpanelEvents.page_view, { page_name: pages.treatcoins_mission });\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {Content.getValue(\"meta_content\").treatcoins_mission.title}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default TreatCoinsMission;","import React from 'react';\r\nimport Payments from 'utils/Payments.js';\r\nimport Images from 'utils/Images.js';\r\nimport WithdrawalCalculator from 'components/payouts/Withdrawal_Calculator.js';\r\nimport Content from 'utils/Content.js';\r\n\r\nconst configuration = require('configuration.json');\r\nconst useTreatCoinsModes = configuration.use_treat_coins_modes;\r\nconst paymentMethodTypes = configuration.payment_method_types;\r\n\r\nlet allPaymentMethodTypes = paymentMethodTypes.all;\r\n\r\nclass UseTreatCoinsWithdrawal extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.parent = props.parent;\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \"Close { this.parent.setState({ mode: useTreatCoinsModes.overview }); }} />\r\n
    \r\n {Content.getValue(\"withdraw_label\")}\r\n \"Withdrawal { Payments.showHint(allPaymentMethodTypes) }} />\r\n
    \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default UseTreatCoinsWithdrawal;","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst ListContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\nexport default ListContext;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getDividerUtilityClass(slot) {\n return generateUtilityClass('MuiDivider', slot);\n}\nconst dividerClasses = generateUtilityClasses('MuiDivider', ['root', 'absolute', 'fullWidth', 'inset', 'middle', 'flexItem', 'light', 'vertical', 'withChildren', 'withChildrenVertical', 'textAlignRight', 'textAlignLeft', 'wrapper', 'wrapperVertical']);\nexport default dividerClasses;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getListItemIconUtilityClass(slot) {\n return generateUtilityClass('MuiListItemIcon', slot);\n}\nconst listItemIconClasses = generateUtilityClasses('MuiListItemIcon', ['root', 'alignItemsFlexStart']);\nexport default listItemIconClasses;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getListItemTextUtilityClass(slot) {\n return generateUtilityClass('MuiListItemText', slot);\n}\nconst listItemTextClasses = generateUtilityClasses('MuiListItemText', ['root', 'multiline', 'dense', 'inset', 'primary', 'secondary']);\nexport default listItemTextClasses;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getMenuItemUtilityClass(slot) {\n return generateUtilityClass('MuiMenuItem', slot);\n}\nconst menuItemClasses = generateUtilityClasses('MuiMenuItem', ['root', 'focusVisible', 'dense', 'disabled', 'divider', 'gutters', 'selected']);\nexport default menuItemClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"component\", \"dense\", \"divider\", \"disableGutters\", \"focusVisibleClassName\", \"role\", \"tabIndex\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ListContext from '../List/ListContext';\nimport ButtonBase from '../ButtonBase';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport useForkRef from '../utils/useForkRef';\nimport { dividerClasses } from '../Divider';\nimport { listItemIconClasses } from '../ListItemIcon';\nimport { listItemTextClasses } from '../ListItemText';\nimport menuItemClasses, { getMenuItemUtilityClass } from './menuItemClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.dense && styles.dense, ownerState.divider && styles.divider, !ownerState.disableGutters && styles.gutters];\n};\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n dense,\n divider,\n disableGutters,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root', dense && 'dense', disabled && 'disabled', !disableGutters && 'gutters', divider && 'divider', selected && 'selected']\n };\n const composedClasses = composeClasses(slots, getMenuItemUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst MenuItemRoot = styled(ButtonBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiMenuItem',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.body1, {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n position: 'relative',\n textDecoration: 'none',\n minHeight: 48,\n paddingTop: 6,\n paddingBottom: 6,\n boxSizing: 'border-box',\n whiteSpace: 'nowrap'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.divider && {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`,\n backgroundClip: 'padding-box'\n}, {\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${menuItemClasses.selected}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${menuItemClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n },\n [`&.${menuItemClasses.selected}:hover`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n },\n [`&.${menuItemClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${menuItemClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity\n },\n [`& + .${dividerClasses.root}`]: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n [`& + .${dividerClasses.inset}`]: {\n marginLeft: 52\n },\n [`& .${listItemTextClasses.root}`]: {\n marginTop: 0,\n marginBottom: 0\n },\n [`& .${listItemTextClasses.inset}`]: {\n paddingLeft: 36\n },\n [`& .${listItemIconClasses.root}`]: {\n minWidth: 36\n }\n}, !ownerState.dense && {\n [theme.breakpoints.up('sm')]: {\n minHeight: 'auto'\n }\n}, ownerState.dense && _extends({\n minHeight: 32,\n // https://m2.material.io/components/menus#specs > Dense\n paddingTop: 4,\n paddingBottom: 4\n}, theme.typography.body2, {\n [`& .${listItemIconClasses.root} svg`]: {\n fontSize: '1.25rem'\n }\n})));\nconst MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMenuItem'\n });\n const {\n autoFocus = false,\n component = 'li',\n dense = false,\n divider = false,\n disableGutters = false,\n focusVisibleClassName,\n role = 'menuitem',\n tabIndex: tabIndexProp,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const context = React.useContext(ListContext);\n const childContext = React.useMemo(() => ({\n dense: dense || context.dense || false,\n disableGutters\n }), [context.dense, dense, disableGutters]);\n const menuItemRef = React.useRef(null);\n useEnhancedEffect(() => {\n if (autoFocus) {\n if (menuItemRef.current) {\n menuItemRef.current.focus();\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: Unable to set focus to a MenuItem whose component has not been rendered.');\n }\n }\n }, [autoFocus]);\n const ownerState = _extends({}, props, {\n dense: childContext.dense,\n divider,\n disableGutters\n });\n const classes = useUtilityClasses(props);\n const handleRef = useForkRef(menuItemRef, ref);\n let tabIndex;\n if (!props.disabled) {\n tabIndex = tabIndexProp !== undefined ? tabIndexProp : -1;\n }\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(MenuItemRoot, _extends({\n ref: handleRef,\n role: role,\n tabIndex: tabIndex,\n component: component,\n focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),\n className: clsx(classes.root, className)\n }, other, {\n ownerState: ownerState,\n classes: classes\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuItem.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 * If `true`, the list item is focused during the first mount.\n * Focus will also be triggered if the value changes from false to true.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * The content of the component.\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 * If `true`, compact vertical padding designed for keyboard and mouse input is used.\n * The prop defaults to the value inherited from the parent Menu component.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * @ignore\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, a 1px light border is added to the bottom of the menu item.\n * @default false\n */\n divider: PropTypes.bool,\n /**\n * This prop can help identify which element has keyboard focus.\n * The class name will be applied when the element gains the focus through keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).\n * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components\n * if needed.\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * @ignore\n */\n role: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * If `true`, the component is selected.\n * @default false\n */\n selected: PropTypes.bool,\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 * @default 0\n */\n tabIndex: PropTypes.number\n} : void 0;\nexport default MenuItem;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getListUtilityClass(slot) {\n return generateUtilityClass('MuiList', slot);\n}\nconst listClasses = generateUtilityClasses('MuiList', ['root', 'padding', 'dense', 'subheader']);\nexport default listClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ListContext from './ListContext';\nimport { getListUtilityClass } from './listClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePadding,\n dense,\n subheader\n } = ownerState;\n const slots = {\n root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']\n };\n return composeClasses(slots, getListUtilityClass, classes);\n};\nconst ListRoot = styled('ul', {\n name: 'MuiList',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];\n }\n})(({\n ownerState\n}) => _extends({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative'\n}, !ownerState.disablePadding && {\n paddingTop: 8,\n paddingBottom: 8\n}, ownerState.subheader && {\n paddingTop: 0\n}));\nconst List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiList'\n });\n const {\n children,\n className,\n component = 'ul',\n dense = false,\n disablePadding = false,\n subheader\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const context = React.useMemo(() => ({\n dense\n }), [dense]);\n const ownerState = _extends({}, props, {\n component,\n dense,\n disablePadding\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsxs(ListRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [subheader, children]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? List.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 content of the component.\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 * If `true`, compact vertical padding designed for keyboard and mouse input is used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, vertical padding is removed from the list.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node,\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} : void 0;\nexport default List;","import { unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\nexport default getScrollbarSize;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return disableListWrap ? null : list.firstChild;\n}\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return disableListWrap ? null : list.lastChild;\n}\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n let text = nextFocus.innerText;\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n text = text.trim().toLowerCase();\n if (text.length === 0) {\n return false;\n }\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n return text.indexOf(textCriteria.keys.join('')) === 0;\n}\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return false;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return true;\n }\n }\n return false;\n}\n\n/**\n * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/.\n * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n autoFocus = false,\n autoFocusItem = false,\n children,\n className,\n disabledItemsFocusable = false,\n disableListWrap = false,\n onKeyDown,\n variant = 'selectedMenu'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const listRef = React.useRef(null);\n const textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(() => {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, () => ({\n adjustStyleForScrollbar: (containerElement, theme) => {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n const noExplicitWidth = !listRef.current.style.width;\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;\n listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n }\n return listRef.current;\n }\n }), []);\n const handleKeyDown = event => {\n const list = listRef.current;\n const key = event.key;\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n const currentFocus = ownerDocument(list).activeElement;\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n const criteria = textCriteriaRef.current;\n const lowerKey = key.toLowerCase();\n const currTime = performance.now();\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n const handleRef = useForkRef(listRef, ref);\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.forEach(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n if (activeItemIndex === index && (child.props.disabled || child.props.muiSkipListHighlight || child.type.muiSkipListHighlight)) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n });\n const items = React.Children.map(children, (child, index) => {\n if (index === activeItemIndex) {\n const newChildProps = {};\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n return child;\n });\n return /*#__PURE__*/_jsx(List, _extends({\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1\n }, other, {\n children: items\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.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 * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n * @default false\n */\n autoFocusItem: PropTypes.bool,\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the menu items will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef } from '@mui/utils';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { getTransitionProps, reflow } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getScale(value) {\n return `scale(${value}, ${value ** 2})`;\n}\nconst styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n\n/*\n TODO v6: remove\n Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.\n */\nconst isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\\/)15(.|_)4/i.test(navigator.userAgent);\n\n/**\n * The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and\n * [Popover](/material-ui/react-popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = 'auto',\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const timer = React.useRef();\n const autoTimeout = React.useRef();\n const theme = useTheme();\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, children.ref, ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay,\n easing: transitionTimingFunction\n })].join(',');\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay: isWebKit154 ? delay : delay || duration * 0.333,\n easing: transitionTimingFunction\n })].join(',');\n node.style.opacity = 0;\n node.style.transform = getScale(0.75);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.current || 0);\n }\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n React.useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: appear,\n in: inProp,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.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 * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getPopoverUtilityClass(slot) {\n return generateUtilityClass('MuiPopover', slot);\n}\nconst popoverClasses = generateUtilityClasses('MuiPopover', ['root', 'paper']);\nexport default popoverClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onEntering\"],\n _excluded2 = [\"action\", \"anchorEl\", \"anchorOrigin\", \"anchorPosition\", \"anchorReference\", \"children\", \"className\", \"container\", \"elevation\", \"marginThreshold\", \"open\", \"PaperProps\", \"transformOrigin\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { chainPropTypes, integerPropType, elementTypeAcceptingRef, refType, HTMLElementType } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport debounce from '../utils/debounce';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow';\nimport useForkRef from '../utils/useForkRef';\nimport Grow from '../Grow';\nimport Modal from '../Modal';\nimport Paper from '../Paper';\nimport { getPopoverUtilityClass } from './popoverClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getOffsetTop(rect, vertical) {\n let offset = 0;\n if (typeof vertical === 'number') {\n offset = vertical;\n } else if (vertical === 'center') {\n offset = rect.height / 2;\n } else if (vertical === 'bottom') {\n offset = rect.height;\n }\n return offset;\n}\nexport function getOffsetLeft(rect, horizontal) {\n let offset = 0;\n if (typeof horizontal === 'number') {\n offset = horizontal;\n } else if (horizontal === 'center') {\n offset = rect.width / 2;\n } else if (horizontal === 'right') {\n offset = rect.width;\n }\n return offset;\n}\nfunction getTransformOriginValue(transformOrigin) {\n return [transformOrigin.horizontal, transformOrigin.vertical].map(n => typeof n === 'number' ? `${n}px` : n).join(' ');\n}\nfunction resolveAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper']\n };\n return composeClasses(slots, getPopoverUtilityClass, classes);\n};\nconst PopoverRoot = styled(Modal, {\n name: 'MuiPopover',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nconst PopoverPaper = styled(Paper, {\n name: 'MuiPopover',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})({\n position: 'absolute',\n overflowY: 'auto',\n overflowX: 'hidden',\n // So we see the popover when it's empty.\n // It's most likely on issue on userland.\n minWidth: 16,\n minHeight: 16,\n maxWidth: 'calc(100% - 32px)',\n maxHeight: 'calc(100% - 32px)',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n});\nconst Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPopover'\n });\n const {\n action,\n anchorEl,\n anchorOrigin = {\n vertical: 'top',\n horizontal: 'left'\n },\n anchorPosition,\n anchorReference = 'anchorEl',\n children,\n className,\n container: containerProp,\n elevation = 8,\n marginThreshold = 16,\n open,\n PaperProps = {},\n transformOrigin = {\n vertical: 'top',\n horizontal: 'left'\n },\n TransitionComponent = Grow,\n transitionDuration: transitionDurationProp = 'auto',\n TransitionProps: {\n onEntering\n } = {}\n } = props,\n TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const paperRef = React.useRef();\n const handlePaperRef = useForkRef(paperRef, PaperProps.ref);\n const ownerState = _extends({}, props, {\n anchorOrigin,\n anchorReference,\n elevation,\n marginThreshold,\n PaperProps,\n transformOrigin,\n TransitionComponent,\n transitionDuration: transitionDurationProp,\n TransitionProps\n });\n const classes = useUtilityClasses(ownerState);\n\n // Returns the top/left offset of the position\n // to attach to on the anchor element (or body if none is provided)\n const getAnchorOffset = React.useCallback(() => {\n if (anchorReference === 'anchorPosition') {\n if (process.env.NODE_ENV !== 'production') {\n if (!anchorPosition) {\n console.error('MUI: You need to provide a `anchorPosition` prop when using ' + '.');\n }\n }\n return anchorPosition;\n }\n const resolvedAnchorEl = resolveAnchorEl(anchorEl);\n\n // If an anchor element wasn't provided, just use the parent body element of this Popover\n const anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : ownerDocument(paperRef.current).body;\n const anchorRect = anchorElement.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'production') {\n const box = anchorElement.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n return {\n top: anchorRect.top + getOffsetTop(anchorRect, anchorOrigin.vertical),\n left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)\n };\n }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]);\n\n // Returns the base transform origin using the element\n const getTransformOrigin = React.useCallback(elemRect => {\n return {\n vertical: getOffsetTop(elemRect, transformOrigin.vertical),\n horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)\n };\n }, [transformOrigin.horizontal, transformOrigin.vertical]);\n const getPositioningStyle = React.useCallback(element => {\n const elemRect = {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n\n // Get the transform origin point on the element itself\n const elemTransformOrigin = getTransformOrigin(elemRect);\n if (anchorReference === 'none') {\n return {\n top: null,\n left: null,\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n }\n\n // Get the offset of the anchoring element\n const anchorOffset = getAnchorOffset();\n\n // Calculate element positioning\n let top = anchorOffset.top - elemTransformOrigin.vertical;\n let left = anchorOffset.left - elemTransformOrigin.horizontal;\n const bottom = top + elemRect.height;\n const right = left + elemRect.width;\n\n // Use the parent window of the anchorEl if provided\n const containerWindow = ownerWindow(resolveAnchorEl(anchorEl));\n\n // Window thresholds taking required margin into account\n const heightThreshold = containerWindow.innerHeight - marginThreshold;\n const widthThreshold = containerWindow.innerWidth - marginThreshold;\n\n // Check if the vertical axis needs shifting\n if (top < marginThreshold) {\n const diff = top - marginThreshold;\n top -= diff;\n elemTransformOrigin.vertical += diff;\n } else if (bottom > heightThreshold) {\n const diff = bottom - heightThreshold;\n top -= diff;\n elemTransformOrigin.vertical += diff;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (elemRect.height > heightThreshold && elemRect.height && heightThreshold) {\n console.error(['MUI: The popover component is too tall.', `Some part of it can not be seen on the screen (${elemRect.height - heightThreshold}px).`, 'Please consider adding a `max-height` to improve the user-experience.'].join('\\n'));\n }\n }\n\n // Check if the horizontal axis needs shifting\n if (left < marginThreshold) {\n const diff = left - marginThreshold;\n left -= diff;\n elemTransformOrigin.horizontal += diff;\n } else if (right > widthThreshold) {\n const diff = right - widthThreshold;\n left -= diff;\n elemTransformOrigin.horizontal += diff;\n }\n return {\n top: `${Math.round(top)}px`,\n left: `${Math.round(left)}px`,\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n }, [anchorEl, anchorReference, getAnchorOffset, getTransformOrigin, marginThreshold]);\n const [isPositioned, setIsPositioned] = React.useState(open);\n const setPositioningStyles = React.useCallback(() => {\n const element = paperRef.current;\n if (!element) {\n return;\n }\n const positioning = getPositioningStyle(element);\n if (positioning.top !== null) {\n element.style.top = positioning.top;\n }\n if (positioning.left !== null) {\n element.style.left = positioning.left;\n }\n element.style.transformOrigin = positioning.transformOrigin;\n setIsPositioned(true);\n }, [getPositioningStyle]);\n const handleEntering = (element, isAppearing) => {\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n setPositioningStyles();\n };\n const handleExited = () => {\n setIsPositioned(false);\n };\n React.useEffect(() => {\n if (open) {\n setPositioningStyles();\n }\n });\n React.useImperativeHandle(action, () => open ? {\n updatePosition: () => {\n setPositioningStyles();\n }\n } : null, [open, setPositioningStyles]);\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n const handleResize = debounce(() => {\n setPositioningStyles();\n });\n const containerWindow = ownerWindow(anchorEl);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [anchorEl, open, setPositioningStyles]);\n let transitionDuration = transitionDurationProp;\n if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n transitionDuration = undefined;\n }\n\n // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n const container = containerProp || (anchorEl ? ownerDocument(resolveAnchorEl(anchorEl)).body : undefined);\n return /*#__PURE__*/_jsx(PopoverRoot, _extends({\n BackdropProps: {\n invisible: true\n },\n className: clsx(classes.root, className),\n container: container,\n open: open,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n onEntering: handleEntering,\n onExited: handleExited,\n timeout: transitionDuration\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(PopoverPaper, _extends({\n elevation: elevation\n }, PaperProps, {\n ref: handlePaperRef,\n className: clsx(classes.paper, PaperProps.className)\n }, isPositioned ? undefined : {\n style: _extends({}, PaperProps.style, {\n opacity: 0\n })\n }, {\n ownerState: ownerState,\n children: children\n }))\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Popover.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 * A ref for imperative actions.\n * It currently only supports updatePosition() action.\n */\n action: refType,\n /**\n * An HTML element, or a function that returns one.\n * It's used to set the position of the popover.\n */\n anchorEl: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), props => {\n if (props.open && (!props.anchorReference || props.anchorReference === 'anchorEl')) {\n const resolvedAnchorEl = resolveAnchorEl(props.anchorEl);\n if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n const box = resolvedAnchorEl.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', `It should be an Element instance but it's \\`${resolvedAnchorEl}\\` instead.`].join('\\n'));\n }\n }\n return null;\n }),\n /**\n * This is the point on the anchor where the popover's\n * `anchorEl` will attach to. This is not used when the\n * anchorReference is 'anchorPosition'.\n *\n * Options:\n * vertical: [top, center, bottom];\n * horizontal: [left, center, right].\n * @default {\n * vertical: 'top',\n * horizontal: 'left',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n /**\n * This is the position that may be used to set the position of the popover.\n * The coordinates are relative to the application's client area.\n */\n anchorPosition: PropTypes.shape({\n left: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired\n }),\n /**\n * This determines which anchor prop to refer to when setting\n * the position of the popover.\n * @default 'anchorEl'\n */\n anchorReference: PropTypes.oneOf(['anchorEl', 'anchorPosition', 'none']),\n /**\n * The content of the component.\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 * An HTML element, component instance, or function that returns either.\n * The `container` will passed to the Modal component.\n *\n * By default, it uses the body of the anchorEl's top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The elevation of the popover.\n * @default 8\n */\n elevation: integerPropType,\n /**\n * Specifies how close to the edge of the window the popover can appear.\n * @default 16\n */\n marginThreshold: PropTypes.number,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * Props applied to the [`Paper`](/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n component: elementTypeAcceptingRef\n }),\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 * This is the point on the popover which\n * will attach to the anchor's origin.\n *\n * Options:\n * vertical: [top, center, bottom, x(px)];\n * horizontal: [left, center, right, x(px)].\n * @default {\n * vertical: 'top',\n * horizontal: 'left',\n * }\n */\n transformOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Grow\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Popover;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getMenuUtilityClass(slot) {\n return generateUtilityClass('MuiMenu', slot);\n}\nconst menuClasses = generateUtilityClasses('MuiMenu', ['root', 'paper', 'list']);\nexport default menuClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onEntering\"],\n _excluded2 = [\"autoFocus\", \"children\", \"disableAutoFocusItem\", \"MenuListProps\", \"onClose\", \"open\", \"PaperProps\", \"PopoverClasses\", \"transitionDuration\", \"TransitionProps\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { HTMLElementType } from '@mui/utils';\nimport MenuList from '../MenuList';\nimport Paper from '../Paper';\nimport Popover from '../Popover';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getMenuUtilityClass } from './menuClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RTL_ORIGIN = {\n vertical: 'top',\n horizontal: 'right'\n};\nconst LTR_ORIGIN = {\n vertical: 'top',\n horizontal: 'left'\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper'],\n list: ['list']\n };\n return composeClasses(slots, getMenuUtilityClass, classes);\n};\nconst MenuRoot = styled(Popover, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiMenu',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nconst MenuPaper = styled(Paper, {\n name: 'MuiMenu',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})({\n // specZ: The maximum height of a simple menu should be one or more rows less than the view\n // height. This ensures a tappable area outside of the simple menu with which to dismiss\n // the menu.\n maxHeight: 'calc(100% - 96px)',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch'\n});\nconst MenuMenuList = styled(MenuList, {\n name: 'MuiMenu',\n slot: 'List',\n overridesResolver: (props, styles) => styles.list\n})({\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n});\nconst Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMenu'\n });\n const {\n autoFocus = true,\n children,\n disableAutoFocusItem = false,\n MenuListProps = {},\n onClose,\n open,\n PaperProps = {},\n PopoverClasses,\n transitionDuration = 'auto',\n TransitionProps: {\n onEntering\n } = {},\n variant = 'selectedMenu'\n } = props,\n TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const ownerState = _extends({}, props, {\n autoFocus,\n disableAutoFocusItem,\n MenuListProps,\n onEntering,\n PaperProps,\n transitionDuration,\n TransitionProps,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const autoFocusItem = autoFocus && !disableAutoFocusItem && open;\n const menuListActionsRef = React.useRef(null);\n const handleEntering = (element, isAppearing) => {\n if (menuListActionsRef.current) {\n menuListActionsRef.current.adjustStyleForScrollbar(element, theme);\n }\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n };\n const handleListKeyDown = event => {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (onClose) {\n onClose(event, 'tabKeyDown');\n }\n }\n };\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.map(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n return /*#__PURE__*/_jsx(MenuRoot, _extends({\n onClose: onClose,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: isRtl ? 'right' : 'left'\n },\n transformOrigin: isRtl ? RTL_ORIGIN : LTR_ORIGIN,\n PaperProps: _extends({\n as: MenuPaper\n }, PaperProps, {\n classes: _extends({}, PaperProps.classes, {\n root: classes.paper\n })\n }),\n className: classes.root,\n open: open,\n ref: ref,\n transitionDuration: transitionDuration,\n TransitionProps: _extends({\n onEntering: handleEntering\n }, TransitionProps),\n ownerState: ownerState\n }, other, {\n classes: PopoverClasses,\n children: /*#__PURE__*/_jsx(MenuMenuList, _extends({\n onKeyDown: handleListKeyDown,\n actions: menuListActionsRef,\n autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),\n autoFocusItem: autoFocusItem,\n variant: variant\n }, MenuListProps, {\n className: clsx(classes.list, MenuListProps.className),\n children: children\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Menu.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 * An HTML element, or a function that returns one.\n * It's used to set the position of the menu.\n */\n anchorEl: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true` (Default) will focus the `[role=\"menu\"]` if no focusable child is found. Disabled\n * children are not focusable. If you set this prop to `false` focus will be placed\n * on the parent modal container. This has severe accessibility implications\n * and should only be considered if you manage focus otherwise.\n * @default true\n */\n autoFocus: PropTypes.bool,\n /**\n * Menu contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * When opening the menu will not focus the active item but the `[role=\"menu\"]`\n * unless `autoFocus` is also set to `false`. Not using the default means not\n * following WAI-ARIA authoring practices. Please be considerate about possible\n * accessibility implications.\n * @default false\n */\n disableAutoFocusItem: PropTypes.bool,\n /**\n * Props applied to the [`MenuList`](/material-ui/api/menu-list/) element.\n * @default {}\n */\n MenuListProps: PropTypes.object,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`, `\"tabKeyDown\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * @ignore\n */\n PaperProps: PropTypes.object,\n /**\n * `classes` prop applied to the [`Popover`](/material-ui/api/popover/) element.\n */\n PopoverClasses: 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 length of the transition in `ms`, or 'auto'\n * @default 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default Menu;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getNativeSelectUtilityClasses(slot) {\n return generateUtilityClass('MuiNativeSelect', slot);\n}\nconst nativeSelectClasses = generateUtilityClasses('MuiNativeSelect', ['root', 'select', 'multiple', 'filled', 'outlined', 'standard', 'disabled', 'icon', 'iconOpen', 'iconFilled', 'iconOutlined', 'iconStandard', 'nativeInput', 'error']);\nexport default nativeSelectClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"error\", \"IconComponent\", \"inputRef\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport nativeSelectClasses, { getNativeSelectUtilityClasses } from './nativeSelectClasses';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n disabled,\n multiple,\n open,\n error\n } = ownerState;\n const slots = {\n select: ['select', variant, disabled && 'disabled', multiple && 'multiple', error && 'error'],\n icon: ['icon', `icon${capitalize(variant)}`, open && 'iconOpen', disabled && 'disabled']\n };\n return composeClasses(slots, getNativeSelectUtilityClasses, classes);\n};\nexport const nativeSelectSelectStyles = ({\n ownerState,\n theme\n}) => _extends({\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n // When interacting quickly, the text can end up selected.\n // Native select can't be selected either.\n userSelect: 'none',\n borderRadius: 0,\n // Reset\n cursor: 'pointer',\n '&:focus': _extends({}, theme.vars ? {\n backgroundColor: `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.05)`\n } : {\n backgroundColor: theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.05)' : 'rgba(255, 255, 255, 0.05)'\n }, {\n borderRadius: 0 // Reset Chrome style\n }),\n\n // Remove IE11 arrow\n '&::-ms-expand': {\n display: 'none'\n },\n [`&.${nativeSelectClasses.disabled}`]: {\n cursor: 'default'\n },\n '&[multiple]': {\n height: 'auto'\n },\n '&:not([multiple]) option, &:not([multiple]) optgroup': {\n backgroundColor: (theme.vars || theme).palette.background.paper\n },\n // Bump specificity to allow extending custom inputs\n '&&&': {\n paddingRight: 24,\n minWidth: 16 // So it doesn't collapse.\n }\n}, ownerState.variant === 'filled' && {\n '&&&': {\n paddingRight: 32\n }\n}, ownerState.variant === 'outlined' && {\n borderRadius: (theme.vars || theme).shape.borderRadius,\n '&:focus': {\n borderRadius: (theme.vars || theme).shape.borderRadius // Reset the reset for Chrome style\n },\n\n '&&&': {\n paddingRight: 32\n }\n});\nconst NativeSelectSelect = styled('select', {\n name: 'MuiNativeSelect',\n slot: 'Select',\n shouldForwardProp: rootShouldForwardProp,\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.select, styles[ownerState.variant], ownerState.error && styles.error, {\n [`&.${nativeSelectClasses.multiple}`]: styles.multiple\n }];\n }\n})(nativeSelectSelectStyles);\nexport const nativeSelectIconStyles = ({\n ownerState,\n theme\n}) => _extends({\n // We use a position absolute over a flexbox in order to forward the pointer events\n // to the input and to support wrapping tags..\n position: 'absolute',\n right: 0,\n top: 'calc(50% - .5em)',\n // Center vertically, height is 1em\n pointerEvents: 'none',\n // Don't block pointer events on the select under the icon.\n color: (theme.vars || theme).palette.action.active,\n [`&.${nativeSelectClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled\n }\n}, ownerState.open && {\n transform: 'rotate(180deg)'\n}, ownerState.variant === 'filled' && {\n right: 7\n}, ownerState.variant === 'outlined' && {\n right: 7\n});\nconst NativeSelectIcon = styled('svg', {\n name: 'MuiNativeSelect',\n slot: 'Icon',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.icon, ownerState.variant && styles[`icon${capitalize(ownerState.variant)}`], ownerState.open && styles.iconOpen];\n }\n})(nativeSelectIconStyles);\n\n/**\n * @ignore - internal component.\n */\nconst NativeSelectInput = /*#__PURE__*/React.forwardRef(function NativeSelectInput(props, ref) {\n const {\n className,\n disabled,\n error,\n IconComponent,\n inputRef,\n variant = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n disabled,\n variant,\n error\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(NativeSelectSelect, _extends({\n ownerState: ownerState,\n className: clsx(classes.select, className),\n disabled: disabled,\n ref: inputRef || ref\n }, other)), props.multiple ? null : /*#__PURE__*/_jsx(NativeSelectIcon, {\n as: IconComponent,\n ownerState: ownerState,\n className: classes.icon\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? NativeSelectInput.propTypes = {\n /**\n * The option elements to populate the select with.\n * Can be some `